• Home
  • Raw
  • Download

Lines Matching +full:install +full:- +full:libssh

2 set -eo pipefail
17 mkdir -p "${ARCHIVE_DIR}"
19 local -r URL=$1
20 local -r RELATIVE_DIR=$2
21 local -r DESTINATION="${ARCHIVE_DIR}/${RELATIVE_DIR}"
22 if [[ ! -d "${DESTINATION}" ]] ; then
24 local -r ARCHIVE_NAME=$(basename "${URL}")
25 [[ -f "${ARCHIVE_NAME}" ]] || wget --no-verbose "${URL}"
27 rm -f "${ARCHIVE_NAME}"
36 local -r QEMU_VERSION=${QEMU_VERSION:=7.1.0}
37 local -r QEMU_TARGET=${QEMU_ARCH}-linux-user
39 if echo "${QEMU_VERSION} ${QEMU_TARGET}" | cmp --silent "${QEMU_INSTALL}/.build" -; then
47 rm -rf "${QEMU_INSTALL}"
49 # Checking for a tarball before downloading makes testing easier :-)
50 local -r QEMU_URL="http://wiki.qemu-project.org/download/qemu-${QEMU_VERSION}.tar.xz"
51 local -r QEMU_DIR="qemu-${QEMU_VERSION}"
57 --prefix="${QEMU_INSTALL}" \
58 --target-list="${QEMU_TARGET}" \
59 --audio-drv-list= \
60 --disable-brlapi \
61 --disable-curl \
62 --disable-curses \
63 --disable-docs \
64 --disable-gcrypt \
65 --disable-gnutls \
66 --disable-gtk \
67 --disable-libnfs \
68 --disable-libssh \
69 --disable-nettle \
70 --disable-opengl \
71 --disable-sdl \
72 --disable-virglrenderer \
73 --disable-vte
76 make -j8
77 make install
83 if [[ -z "${!1}" ]]; then
91 rm -rf "${BUILD_DIR}"
92 mkdir -p "${BUILD_DIR}"
97 local -r LINARO_VERSION=7.5-2019.12
98 …local -r LINARO_ROOT_URL=https://releases.linaro.org/components/toolchain/binaries/${LINARO_VERSIO…
100 local -r GCC_VERSION=7.5.0-2019.12
101 local -r GCC_URL=${LINARO_ROOT_URL}/${TARGET}/gcc-linaro-${GCC_VERSION}-x86_64_${TARGET}.tar.xz
102 local -r GCC_RELATIVE_DIR="gcc-linaro-${GCC_VERSION}-x86_64_${TARGET}"
105 local -r SYSROOT_VERSION=2.25-2019.12
106 …local -r SYSROOT_URL=${LINARO_ROOT_URL}/${TARGET}/sysroot-glibc-linaro-${SYSROOT_VERSION}-${TARGET…
107 local -r SYSROOT_RELATIVE_DIR=sysroot-glibc-linaro-${SYSROOT_VERSION}-${TARGET}
110 local -r SYSROOT_DIR=${ARCHIVE_DIR}/${SYSROOT_RELATIVE_DIR}
111 local -r STAGING_DIR=${ARCHIVE_DIR}/${SYSROOT_RELATIVE_DIR}-stage
112 local -r GCC_DIR=${ARCHIVE_DIR}/${GCC_RELATIVE_DIR}
117 …# ref: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
126 set(CMAKE_C_COMPILER \${tools}/bin/${TARGET}-gcc)
127 set(CMAKE_CXX_COMPILER \${tools}/bin/${TARGET}-g++)
134 CMAKE_ADDITIONAL_ARGS+=( -DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" )
135 QEMU_ARGS+=( -L "${SYSROOT_DIR}" )
136 QEMU_ARGS+=( -E LD_LIBRARY_PATH=/lib )
141 local -r GCC_DIR=${ARCHIVE_DIR}/${GCC_RELATIVE_DIR}
145 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarba…
146 local -r GCC_PREFIX="aarch64"
149 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64be/tar…
150 local -r GCC_PREFIX="aarch64_be"
153 …l -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64le-power…
154 local -r GCC_PREFIX="powerpc64le"
157 …cal -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-power…
158 local -r GCC_PREFIX="powerpc64"
161 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-e500m…
162 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc-440fp…
163 local -r GCC_PREFIX="powerpc"
166 …l -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/riscv32-ilp32d/ta…
167 local -r GCC_PREFIX="riscv32"
170 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64-lp64d…
171 local -r GCC_PREFIX="riscv64"
174 …local -r TOOLCHAIN_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/s390x-z13/tar…
175 local -r GCC_PREFIX="s390x"
182 local -r TOOLCHAIN_RELATIVE_DIR="${TARGET}"
184 local -r EXTRACT_DIR="${ARCHIVE_DIR}/$(basename ${TOOLCHAIN_URL%.tar.bz2})"
186 local -r TOOLCHAIN_DIR=${ARCHIVE_DIR}/${TOOLCHAIN_RELATIVE_DIR}
187 if [[ -d "${EXTRACT_DIR}" ]]; then
191 local -r SYSROOT_DIR="${TOOLCHAIN_DIR}/${GCC_PREFIX}-buildroot-linux-gnu/sysroot"
192 #local -r STAGING_DIR=${SYSROOT_DIR}-stage
197 …# ref: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
207 set(CMAKE_C_COMPILER \${tools}/bin/${GCC_PREFIX}-linux-gcc)
209 set(CMAKE_CXX_COMPILER \${tools}/bin/${GCC_PREFIX}-linux-g++)
210 set(CMAKE_CXX_FLAGS "${POWER_FLAGS} -L${SYSROOT_DIR}/lib")
219 CMAKE_ADDITIONAL_ARGS+=( -DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" )
220 QEMU_ARGS+=( -L "${SYSROOT_DIR}" )
221 QEMU_ARGS+=( -E LD_PRELOAD="${SYSROOT_DIR}/usr/lib/libstdc++.so.6:${SYSROOT_DIR}/lib/libgcc_s.so.1"…
225 # https://www.mips.com/develop/tools/codescape-mips-sdk/mips-toolchain-configurations/
226 # mips-mti: MIPS32R6 and MIPS64R6
227 # mips-img: MIPS32R2 and MIPS64R2
229 # ref: https://codescape.mips.com/components/toolchain/2020.06-01/downloads.html
230 local -r DATE=2020.06-01
231 …local -r CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tools…
232 local -r GCC_RELATIVE_DIR="mips-mti-linux-gnu/${DATE}"
234 # ref: https://codescape.mips.com/components/toolchain/2019.02-04/downloads.html
235 #local -r DATE=2019.02-04
236 …#local -r CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tool…
237 #local -r GCC_RELATIVE_DIR="mips-img-linux-gnu/${DATE}"
239 local -r GCC_URL=${CODESCAPE_URL}
242 local -r GCC_DIR=${ARCHIVE_DIR}/${GCC_RELATIVE_DIR}
248 MIPS_FLAGS="-EB -mips32r6 -mabi=32"
249 FLAVOUR="mips-r6-hard"
250 #MIPS_FLAGS="-EB -mips32r2 -mabi=32"
251 #FLAVOUR="mips-r2-hard"
255 MIPS_FLAGS="-EL -mips32r6 -mabi=32"
256 FLAVOUR="mipsel-r6-hard"
257 #MIPS_FLAGS="-EL -mips32r2 -mabi=32"
258 #FLAVOUR="mipsel-r2-hard"
262 MIPS_FLAGS="-EB -mips64r6 -mabi=64"
263 FLAVOUR="mips-r6-hard"
264 #MIPS_FLAGS="-EB -mips64r2 -mabi=64"
265 #FLAVOUR="mips-r2-hard"
269 MIPS_FLAGS="-EL -mips64r6 -mabi=64"
270 FLAVOUR="mipsel-r6-hard"
271 #MIPS_FLAGS="-EL -mips64r2 -mabi=64"
272 #FLAVOUR="mipsel-r2-hard"
279 local -r SYSROOT_DIR=${GCC_DIR}/sysroot
280 local -r STAGING_DIR=${SYSROOT_DIR}-stage
285 …# ref: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
296 set(CMAKE_C_COMPILER \${tools}/bin/mips-mti-linux-gnu-gcc)
298 set(CMAKE_CXX_COMPILER \${tools}/bin/mips-mti-linux-gnu-g++)
299 set(CMAKE_CXX_FLAGS "${MIPS_FLAGS} -L${SYSROOT_DIR}/usr/lib64")
302 #set(CMAKE_C_COMPILER \${tools}/bin/mips-img-linux-gnu-gcc)
304 #set(CMAKE_CXX_COMPILER \${tools}/bin/mips-img-linux-gnu-g++)
314 CMAKE_ADDITIONAL_ARGS+=( -DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" )
315 QEMU_ARGS+=( -L "${SYSROOT_DIR}/${FLAVOUR}" )
316 local -r LIBC_DIR=${GCC_DIR}/mips-mti-linux-gnu/lib/${FLAVOUR}/${LIBC_DIR_SUFFIX}
317 #local -r LIBC_DIR=${GCC_DIR}/mips-img-linux-gnu/lib/${FLAVOUR}/${LIBC_DIR_SUFFIX}
318 QEMU_ARGS+=( -E LD_PRELOAD="${LIBC_DIR}/libstdc++.so.6:${LIBC_DIR}/libgcc_s.so.1" )
323 set -x
325 cmake -S. -B"${BUILD_DIR}" "${CMAKE_DEFAULT_ARGS[@]}" "${CMAKE_ADDITIONAL_ARGS[@]}"
326 cmake --build "${BUILD_DIR}" --target all -j8 -v
337 RUN_CMD="${QEMU_INSTALL}/bin/qemu-${QEMU_ARCH} ${QEMU_ARGS[*]}"
340 declare -a TEST_BINARIES=()
341 TEST_BINARIES+=($(find "${BUILD_DIR}"/test -executable -type f))
342 TEST_BINARIES+=($(find "${BUILD_DIR}" -maxdepth 1 -executable -type f))
343 set -x
344 set -e
353 local -r NAME=$(basename "$0")
354 echo -e "$NAME - Build using a cross toolchain.
357 \t$NAME [-h|--help] [toolchain|build|qemu|test|all]
366 \t\taarch64-linux-gnu aarch64_be-linux-gnu (linaro)
367 \t\tarm-linux-gnueabihf armv8l-linux-gnueabihf arm-linux-gnueabi (linaro)
368 \t\tarmeb-linux-gnueabihf armeb-linux-gnueabi (linaro)
377 \t-h --help: show this help text
386 export TARGET=aarch64-linux-gnu
389 * One-liner:
390 TARGET=aarch64-linux-gnu $0"
396 -h | --help)
402 declare -r PROJECT_DIR="$(cd -P -- "$(dirname -- "$0")/.." && pwd -P)"
403 declare -r ARCHIVE_DIR="${PROJECT_DIR}/build_cross/archives"
404 declare -r BUILD_DIR="${PROJECT_DIR}/build_cross/${TARGET}"
405 declare -r TOOLCHAIN_FILE=${ARCHIVE_DIR}/toolchain_${TARGET}.cmake
414 declare -a CMAKE_DEFAULT_ARGS=( -G ${CMAKE_GENERATOR:-"Ninja"} )
415 declare -a CMAKE_ADDITIONAL_ARGS=()
417 declare -a QEMU_ARGS=()
420 declare -r QEMU_ARCH=x86_64 ;;
421 arm-linux-gnueabihf | armv8l-linux-gnueabihf | arm-linux-gnueabi)
423 declare -r QEMU_ARCH=arm ;;
424 armeb-linux-gnueabihf | armeb-linux-gnueabi)
426 declare -r QEMU_ARCH=DISABLED ;;
427 aarch64-linux-gnu)
429 declare -r QEMU_ARCH=aarch64 ;;
430 aarch64_be-linux-gnu)
432 declare -r QEMU_ARCH=aarch64_be ;;
435 declare -r QEMU_ARCH=aarch64 ;;
438 declare -r QEMU_ARCH=aarch64_be ;;
441 declare -r QEMU_ARCH=mips ;;
444 declare -r QEMU_ARCH=mipsel ;;
447 declare -r QEMU_ARCH=mips64 ;;
450 declare -r QEMU_ARCH=mips64el ;;
453 declare -r QEMU_ARCH=ppc64le ;;
456 declare -r QEMU_ARCH=ppc64 ;;
459 declare -r QEMU_ARCH=ppc ;;
462 declare -r QEMU_ARCH=riscv32 ;;
465 declare -r QEMU_ARCH=riscv64 ;;
468 declare -r QEMU_ARCH=s390x ;;
473 declare -r QEMU_INSTALL=${ARCHIVE_DIR}/qemu-${QEMU_ARCH}
490 main "${1:-all}"