Guillaume Chatelet | a897bf8 | 2019-01-15 10:36:17 +0100 | [diff] [blame] | 1 | #!/usr/bin/env bash |
Guillaume Chatelet | a25b5cb | 2018-02-14 09:41:51 +0100 | [diff] [blame] | 2 | |
Guillaume Chatelet | 9233afb | 2018-02-16 14:38:05 +0100 | [diff] [blame] | 3 | readonly SCRIPT_FOLDER=$(cd -P -- "$(dirname -- "$0")" && pwd -P) |
| 4 | readonly PROJECT_FOLDER="${SCRIPT_FOLDER}/.." |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 5 | readonly ARCHIVE_FOLDER=~/cpu_features_archives |
Guillaume Chatelet | 9233afb | 2018-02-16 14:38:05 +0100 | [diff] [blame] | 6 | readonly QEMU_INSTALL=${ARCHIVE_FOLDER}/qemu |
| 7 | readonly DEFAULT_CMAKE_ARGS=" -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON" |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 8 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 9 | function extract() { |
| 10 | case $1 in |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 11 | *.tar.bz2) tar xjf "$1" ;; |
| 12 | *.tar.xz) tar xJf "$1" ;; |
| 13 | *.tar.gz) tar xzf "$1" ;; |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 14 | *) |
| 15 | echo "don't know how to extract '$1'..." |
| 16 | exit 1 |
| 17 | esac |
| 18 | } |
| 19 | |
| 20 | function unpackifnotexists() { |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 21 | mkdir -p "${ARCHIVE_FOLDER}" |
| 22 | cd "${ARCHIVE_FOLDER}" || exit |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 23 | local URL=$1 |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 24 | local RELATIVE_FOLDER=$2 |
| 25 | local DESTINATION="${ARCHIVE_FOLDER}/${RELATIVE_FOLDER}" |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 26 | if [[ ! -d "${DESTINATION}" ]] ; then |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 27 | local ARCHIVE_NAME=$(echo ${URL} | sed 's/.*\///') |
| 28 | test -f "${ARCHIVE_NAME}" || wget -q "${URL}" |
| 29 | extract "${ARCHIVE_NAME}" |
Guillaume Chatelet | 89ec4b0 | 2019-01-18 11:48:06 +0100 | [diff] [blame] | 30 | rm -f "${ARCHIVE_NAME}" |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 31 | fi |
| 32 | } |
| 33 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 34 | function installqemuifneeded() { |
| 35 | local VERSION=${QEMU_VERSION:=2.11.1} |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 36 | local ARCHES=${QEMU_ARCHES:=arm aarch64 i386 x86_64 mips mipsel mips64 mips64el} |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 37 | local TARGETS=${QEMU_TARGETS:=$(echo "$ARCHES" | sed 's#$# #;s#\([^ ]*\) #\1-linux-user #g')} |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 38 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 39 | if echo "${VERSION} ${TARGETS}" | cmp --silent ${QEMU_INSTALL}/.build -; then |
| 40 | echo "qemu ${VERSION} up to date!" |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 41 | return 0 |
| 42 | fi |
| 43 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 44 | echo "VERSION: ${VERSION}" |
| 45 | echo "TARGETS: ${TARGETS}" |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 46 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 47 | rm -rf ${QEMU_INSTALL} |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 48 | |
| 49 | # Checking for a tarball before downloading makes testing easier :-) |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 50 | local QEMU_URL="http://wiki.qemu-project.org/download/qemu-${VERSION}.tar.xz" |
| 51 | local QEMU_FOLDER="qemu-${VERSION}" |
| 52 | unpackifnotexists ${QEMU_URL} ${QEMU_FOLDER} |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 53 | cd ${QEMU_FOLDER} || exit |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 54 | |
| 55 | ./configure \ |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 56 | --prefix="${QEMU_INSTALL}" \ |
| 57 | --target-list="${TARGETS}" \ |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 58 | --disable-docs \ |
| 59 | --disable-sdl \ |
| 60 | --disable-gtk \ |
| 61 | --disable-gnutls \ |
| 62 | --disable-gcrypt \ |
| 63 | --disable-nettle \ |
| 64 | --disable-curses \ |
| 65 | --static |
| 66 | |
| 67 | make -j4 |
| 68 | make install |
| 69 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 70 | echo "$VERSION $TARGETS" > ${QEMU_INSTALL}/.build |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 71 | } |
| 72 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 73 | function assert_defined(){ |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 74 | local VALUE=${1} |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 75 | : "${VALUE?"${1} needs to be defined"}" |
Guillaume Chatelet | 5a9819c | 2018-02-14 14:34:46 +0100 | [diff] [blame] | 76 | } |
| 77 | |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 78 | function integrate() { |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 79 | cd "${PROJECT_FOLDER}" |
| 80 | case "${OS}" in |
| 81 | "Windows_NT") CMAKE_BUILD_ARGS="--config Debug --target ALL_BUILD" |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 82 | CMAKE_TEST_FILES="${BUILD_DIR}/test/Debug/*_test.exe" |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 83 | DEMO=${BUILD_DIR}/Debug/list_cpu_features.exe |
| 84 | ;; |
| 85 | *) CMAKE_BUILD_ARGS="--target all" |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 86 | CMAKE_TEST_FILES="${BUILD_DIR}/test/*_test" |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 87 | DEMO=${BUILD_DIR}/list_cpu_features |
| 88 | ;; |
| 89 | esac |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 90 | |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 91 | # Generating CMake configuration |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 92 | cmake -H. -B"${BUILD_DIR}" ${DEFAULT_CMAKE_ARGS} "${CMAKE_ADDITIONAL_ARGS[@]}" -G"${CMAKE_GENERATOR:-Unix Makefiles}" |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 93 | |
| 94 | # Building |
| 95 | cmake --build "${BUILD_DIR}" ${CMAKE_BUILD_ARGS} |
| 96 | |
| 97 | # Running tests if needed |
| 98 | if [[ "${QEMU_ARCH}" == "DISABLED" ]]; then |
| 99 | return |
Guillaume Chatelet | a25b5cb | 2018-02-14 09:41:51 +0100 | [diff] [blame] | 100 | fi |
Guillaume Chatelet | 1ee19cd | 2019-01-17 15:04:14 +0100 | [diff] [blame] | 101 | RUN_CMD="" |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 102 | if [[ -n "${QEMU_ARCH}" ]]; then |
| 103 | installqemuifneeded |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 104 | RUN_CMD="${QEMU_INSTALL}/bin/qemu-${QEMU_ARCH} ${QEMU_ARGS[@]}" |
Guillaume Chatelet | 1da4bf2 | 2019-01-15 17:39:44 +0100 | [diff] [blame] | 105 | fi |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 106 | for test_binary in ${CMAKE_TEST_FILES}; do |
| 107 | ${RUN_CMD} ${test_binary} |
Guillaume Chatelet | 1ee19cd | 2019-01-17 15:04:14 +0100 | [diff] [blame] | 108 | done |
Guillaume Chatelet | 718647a | 2019-01-17 15:12:01 +0100 | [diff] [blame] | 109 | ${RUN_CMD} ${DEMO} |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 110 | } |
| 111 | |
| 112 | function expand_linaro_config() { |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 113 | assert_defined TARGET |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 114 | local LINARO_ROOT_URL=https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11 |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 115 | |
| 116 | local GCC_URL=${LINARO_ROOT_URL}/${TARGET}/gcc-linaro-7.2.1-2017.11-x86_64_${TARGET}.tar.xz |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 117 | local GCC_RELATIVE_FOLDER="gcc-linaro-7.2.1-2017.11-x86_64_${TARGET}" |
| 118 | unpackifnotexists "${GCC_URL}" "${GCC_RELATIVE_FOLDER}" |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 119 | |
| 120 | local SYSROOT_URL=${LINARO_ROOT_URL}/${TARGET}/sysroot-glibc-linaro-2.25-2017.11-${TARGET}.tar.xz |
| 121 | local SYSROOT_RELATIVE_FOLDER=sysroot-glibc-linaro-2.25-2017.11-${TARGET} |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 122 | unpackifnotexists "${SYSROOT_URL}" "${SYSROOT_RELATIVE_FOLDER}" |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 123 | |
| 124 | local SYSROOT_FOLDER=${ARCHIVE_FOLDER}/${SYSROOT_RELATIVE_FOLDER} |
| 125 | local GCC_FOLDER=${ARCHIVE_FOLDER}/${GCC_RELATIVE_FOLDER} |
| 126 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 127 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_SYSTEM_NAME=Linux) |
| 128 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_SYSTEM_PROCESSOR=${TARGET}) |
Guillaume Chatelet | 5177c69 | 2019-01-15 10:19:06 +0100 | [diff] [blame] | 129 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 130 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_SYSROOT=${SYSROOT_FOLDER}) |
| 131 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_C_COMPILER=${GCC_FOLDER}/bin/${TARGET}-gcc) |
| 132 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_CXX_COMPILER=${GCC_FOLDER}/bin/${TARGET}-g++) |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 133 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 134 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER) |
| 135 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY) |
| 136 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY) |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 137 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 138 | QEMU_ARGS+=(-L ${SYSROOT_FOLDER}) |
| 139 | QEMU_ARGS+=(-E LD_LIBRARY_PATH=/lib) |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 140 | } |
| 141 | |
Guillaume Chatelet | c1de7c9 | 2018-02-15 14:16:25 +0100 | [diff] [blame] | 142 | function expand_codescape_config() { |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 143 | assert_defined TARGET |
Guillaume Chatelet | 8ba03e9 | 2018-09-07 15:54:51 +0200 | [diff] [blame] | 144 | local DATE=2017.10-08 |
| 145 | local CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tools.Package.${DATE}.for.MIPS.MTI.Linux.CentOS-5.x86_64.tar.gz |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 146 | local GCC_URL=${CODESCAPE_URL} |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 147 | local GCC_RELATIVE_FOLDER="mips-mti-linux-gnu/${DATE}" |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 148 | unpackifnotexists "${GCC_URL}" "${GCC_RELATIVE_FOLDER}" |
Guillaume Chatelet | c1de7c9 | 2018-02-15 14:16:25 +0100 | [diff] [blame] | 149 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 150 | local GCC_FOLDER=${ARCHIVE_FOLDER}/${GCC_RELATIVE_FOLDER} |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 151 | local MIPS_FLAGS="" |
| 152 | local LIBC_FOLDER_SUFFIX="" |
| 153 | local FLAVOUR="" |
| 154 | case "${TARGET}" in |
| 155 | "mips32") MIPS_FLAGS="-EB -mabi=32"; FLAVOUR="mips-r2-hard"; LIBC_FOLDER_SUFFIX="lib" ;; |
| 156 | "mips32el") MIPS_FLAGS="-EL -mabi=32"; FLAVOUR="mipsel-r2-hard"; LIBC_FOLDER_SUFFIX="lib" ;; |
| 157 | "mips64") MIPS_FLAGS="-EB -mabi=64"; FLAVOUR="mips-r2-hard"; LIBC_FOLDER_SUFFIX="lib64" ;; |
| 158 | "mips64el") MIPS_FLAGS="-EL -mabi=64"; FLAVOUR="mipsel-r2-hard"; LIBC_FOLDER_SUFFIX="lib64" ;; |
| 159 | *) echo 'unknown mips platform'; exit 1;; |
| 160 | esac |
| 161 | |
Guillaume Chatelet | 9613390 | 2019-01-25 15:25:19 +0100 | [diff] [blame] | 162 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_FIND_ROOT_PATH=${GCC_FOLDER}) |
| 163 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_SYSTEM_NAME=Linux) |
| 164 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_SYSTEM_PROCESSOR=${TARGET}) |
| 165 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_C_COMPILER=mips-mti-linux-gnu-gcc) |
| 166 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_CXX_COMPILER=mips-mti-linux-gnu-g++) |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 167 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_C_COMPILER_ARG1="${MIPS_FLAGS}") |
| 168 | CMAKE_ADDITIONAL_ARGS+=(-DCMAKE_CXX_COMPILER_ARG1="${MIPS_FLAGS}") |
| 169 | |
| 170 | local SYSROOT_FOLDER=${GCC_FOLDER}/sysroot/${FLAVOUR} |
Guillaume Chatelet | 9613390 | 2019-01-25 15:25:19 +0100 | [diff] [blame] | 171 | |
| 172 | # Keeping only the sysroot of interest to save on travis cache. |
| 173 | if [[ "${CONTINUOUS_INTEGRATION}" = "true" ]]; then |
| 174 | for folder in ${GCC_FOLDER}/sysroot/*; do |
| 175 | if [[ "${folder}" != "${SYSROOT_FOLDER}" ]]; then |
| 176 | rm -rf ${folder} |
| 177 | fi |
| 178 | done |
| 179 | fi |
| 180 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 181 | local LIBC_FOLDER=${GCC_FOLDER}/mips-mti-linux-gnu/lib/${FLAVOUR}/${LIBC_FOLDER_SUFFIX} |
| 182 | QEMU_ARGS+=(-L ${SYSROOT_FOLDER}) |
| 183 | QEMU_ARGS+=(-E LD_PRELOAD=${LIBC_FOLDER}/libstdc++.so.6:${LIBC_FOLDER}/libgcc_s.so.1) |
Guillaume Chatelet | c1de7c9 | 2018-02-15 14:16:25 +0100 | [diff] [blame] | 184 | } |
| 185 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 186 | function expand_environment_and_integrate() { |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 187 | assert_defined PROJECT_FOLDER |
| 188 | assert_defined TARGET |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 189 | |
| 190 | BUILD_DIR="${PROJECT_FOLDER}/cmake_build/${TARGET}" |
Guillaume Chatelet | 894c2dc | 2018-02-16 16:45:33 +0100 | [diff] [blame] | 191 | mkdir -p "${BUILD_DIR}" |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 192 | |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 193 | declare -a CONFIG_NAMES=() |
| 194 | declare -a QEMU_ARGS=() |
Guillaume Chatelet | 51693b8 | 2019-01-22 09:06:14 +0100 | [diff] [blame] | 195 | declare -a CMAKE_ADDITIONAL_ARGS=() |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 196 | |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 197 | case ${TOOLCHAIN} in |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 198 | LINARO) expand_linaro_config ;; |
| 199 | CODESCAPE) expand_codescape_config ;; |
| 200 | NATIVE) QEMU_ARCH="" ;; |
Guillaume Chatelet | 53ea243 | 2019-01-21 22:40:16 +0100 | [diff] [blame] | 201 | *) echo "Unknown toolchain '${TOOLCHAIN}'..."; exit 1;; |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 202 | esac |
Guillaume Chatelet | 6446b42 | 2018-02-16 14:17:10 +0100 | [diff] [blame] | 203 | integrate |
Guillaume Chatelet | 245c812 | 2018-02-15 13:51:08 +0100 | [diff] [blame] | 204 | } |
Guillaume Chatelet | 59cb104 | 2018-02-15 13:57:06 +0100 | [diff] [blame] | 205 | |
| 206 | if [ "${CONTINUOUS_INTEGRATION}" = "true" ]; then |
Guillaume Chatelet | c1de7c9 | 2018-02-15 14:16:25 +0100 | [diff] [blame] | 207 | QEMU_ARCHES=${QEMU_ARCH} |
Guillaume Chatelet | 59cb104 | 2018-02-15 13:57:06 +0100 | [diff] [blame] | 208 | expand_environment_and_integrate |
| 209 | fi |