xref: /cloud-hypervisor/scripts/common-aarch64.sh (revision 2b2d00653cf0a31ebc9663875f39ce593f3f9b45)
191fe48d5SPhilipp Schuster#!/usr/bin/env bash
2944d0920SAnatol Belski
3944d0920SAnatol BelskiWORKLOADS_DIR="$HOME/workloads"
4944d0920SAnatol Belski
5944d0920SAnatol Belskimkdir -p "$WORKLOADS_DIR"
6944d0920SAnatol Belski
7944d0920SAnatol Belskibuild_edk2() {
8944d0920SAnatol Belski    EDK2_BUILD_DIR="$WORKLOADS_DIR/edk2_build"
9944d0920SAnatol Belski    EDK2_REPO="https://github.com/tianocore/edk2.git"
10944d0920SAnatol Belski    EDK2_DIR="$EDK2_BUILD_DIR/edk2"
11944d0920SAnatol Belski    EDK2_PLAT_REPO="https://github.com/tianocore/edk2-platforms.git"
12944d0920SAnatol Belski    EDK2_PLAT_DIR="$EDK2_BUILD_DIR/edk2-platforms"
13944d0920SAnatol Belski    ACPICA_REPO="https://github.com/acpica/acpica.git"
14944d0920SAnatol Belski    ACPICA_DIR="$EDK2_BUILD_DIR/acpica"
15944d0920SAnatol Belski    export WORKSPACE="$EDK2_BUILD_DIR"
16944d0920SAnatol Belski    export PACKAGES_PATH="$EDK2_DIR:$EDK2_PLAT_DIR"
17944d0920SAnatol Belski    export IASL_PREFIX="$ACPICA_DIR/generate/unix/bin/"
18944d0920SAnatol Belski
19944d0920SAnatol Belski    if [ ! -d "$EDK2_BUILD_DIR" ]; then
20944d0920SAnatol Belski        mkdir -p "$EDK2_BUILD_DIR"
21944d0920SAnatol Belski    fi
22944d0920SAnatol Belski
23944d0920SAnatol Belski    # Prepare source code
24944d0920SAnatol Belski    checkout_repo "$EDK2_DIR" "$EDK2_REPO" master "46b4606ba23498d3d0e66b53e498eb3d5d592586"
25*2b2d0065SRuslan Mstoi    pushd "$EDK2_DIR" || exit
26944d0920SAnatol Belski    git submodule update --init
27*2b2d0065SRuslan Mstoi    popd || exit
28944d0920SAnatol Belski    checkout_repo "$EDK2_PLAT_DIR" "$EDK2_PLAT_REPO" master "8227e9e9f6a8aefbd772b40138f835121ccb2307"
29944d0920SAnatol Belski    checkout_repo "$ACPICA_DIR" "$ACPICA_REPO" master "b9c69f81a05c45611c91ea9cbce8756078d76233"
30944d0920SAnatol Belski
31318caeb9SRuslan Mstoi    if [[ ! -f "$EDK2_DIR/.built" ||
32318caeb9SRuslan Mstoi        ! -f "$EDK2_PLAT_DIR/.built" ||
33944d0920SAnatol Belski        ! -f "$ACPICA_DIR/.built" ]]; then
34*2b2d0065SRuslan Mstoi        pushd "$EDK2_BUILD_DIR" || exit
35944d0920SAnatol Belski        # Build
36*2b2d0065SRuslan Mstoi        make -C acpica -j "$(nproc)"
37*2b2d0065SRuslan Mstoi        # shellcheck disable=SC1091
38944d0920SAnatol Belski        source edk2/edksetup.sh
39*2b2d0065SRuslan Mstoi        make -C edk2/BaseTools -j "$(nproc)"
40944d0920SAnatol Belski        build -a AARCH64 -t GCC5 -p ArmVirtPkg/ArmVirtCloudHv.dsc -b RELEASE -n 0
41944d0920SAnatol Belski        cp Build/ArmVirtCloudHv-AARCH64/RELEASE_GCC5/FV/CLOUDHV_EFI.fd "$WORKLOADS_DIR"
42944d0920SAnatol Belski        touch "$EDK2_DIR"/.built
43944d0920SAnatol Belski        touch "$EDK2_PLAT_DIR"/.built
44944d0920SAnatol Belski        touch "$ACPICA_DIR"/.built
45*2b2d0065SRuslan Mstoi        popd || exit
46944d0920SAnatol Belski    fi
47944d0920SAnatol Belski}
48