Changes in tools/toolchain.sh [e6b4d2d:ce52c333] in mainline
- File:
-
- 1 edited
-
tools/toolchain.sh (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tools/toolchain.sh
re6b4d2d rce52c333 31 31 BINUTILS_GDB_GIT="https://github.com/HelenOS/binutils-gdb.git" 32 32 33 BINUTILS_BRANCH="binutils-2_45-helenos" 34 BINUTILS_VERSION="2.45" 33 BINUTILS_BRANCH="binutils-2_31_1-helenos" 34 BINUTILS_VERSION="2.31.1" 35 36 GDB_BRANCH="gdb-8_2-helenos" 37 GDB_VERSION="8.2" 35 38 36 39 GCC_GIT="https://github.com/HelenOS/gcc.git" 37 GCC_BRANCH=" 15_2_0-helenos"38 GCC_VERSION=" 15.2"39 40 BASEDIR=" $PWD"40 GCC_BRANCH="8_2_0-helenos" 41 GCC_VERSION="8.2.0" 42 43 BASEDIR="`pwd`" 41 44 SRCDIR="$(readlink -f $(dirname "$0"))" 42 45 43 # If we install into a temporary directory and copy from there, 44 # we don't have to trust the upstream makefiles respect the prefix for 45 # all files, and we also have a ready-made package for distribution. 46 INSTALL_DIR="${BASEDIR}/PKG" 47 48 SYSTEM_INSTALL=false 49 50 BUILD_BINUTILS=true 51 BUILD_GCC=true 52 53 if [ -z "$JOBS" ] ; then 54 JOBS="`nproc`" 55 fi 46 REAL_INSTALL=true 47 USE_HELENOS_TARGET=true 56 48 57 49 check_error() { … … 65 57 66 58 show_usage() { 67 echo " HelenOS cross-compiler toolchain build script"59 echo "Cross-compiler toolchain build script" 68 60 echo 69 61 echo "Syntax:" 70 echo " $0 [--system-wide] --test-version [<platform>]" 62 echo " $0 [--no-install] [--non-helenos-target] <platform>" 63 echo " $0 --test-version [<platform>]" 71 64 echo 72 65 echo "Possible target platforms are:" … … 82 75 echo " sparc64 SPARC V9" 83 76 echo " all build all targets" 77 echo " essential build only targets currently needed for HelenOS development" 84 78 echo " parallel same as 'all', but all in parallel" 85 79 echo " 2-way same as 'all', but 2-way parallel" 86 80 echo 87 echo "The toolchain target installation directory is determined by matching" 88 echo "the first of the following conditions:" 89 echo 90 echo " (1) If the \$CROSS_PREFIX environment variable is set, then it is" 91 echo " used as the target installation directory." 92 echo " (2) If the --system-wide option is used, then /opt/HelenOS/cross" 93 echo " is used as the target installation directory. This usually" 94 echo " requires running this script with super user privileges." 95 echo " (3) In other cases, \$XDG_DATA_HOME/HelenOS/cross is used as the" 96 echo " target installation directory. If the \$XDG_DATA_HOME environment" 97 echo " variable is not set, then the default value of \$HOME/.local/share" 98 echo " is assumed." 99 echo 100 echo "The --non-helenos-target option will build non-HelenOS-specific" 101 echo "toolchain (i.e. it will use *-linux-* triplet instead of *-helenos)." 81 echo "The toolchain is installed into directory specified by the" 82 echo "CROSS_PREFIX environment variable. If the variable is not" 83 echo "defined, /usr/local/cross/ is used as default." 84 echo 85 echo "If --no-install is present, the toolchain still uses the" 86 echo "CROSS_PREFIX as the target directory but the installation" 87 echo "copies the files into PKG/ subdirectory without affecting" 88 echo "the actual root file system. That is only useful if you do" 89 echo "not want to run the script under the super user." 90 echo 91 echo "The --non-helenos-target will build non-HelenOS-specific toolchain" 92 echo "(i.e. it will use *-linux-* triplet instead of *-helenos)." 102 93 echo "Using this toolchain for building HelenOS is not supported." 103 94 echo 104 echo "The --test-version mode tests the currently installed version of the"105 echo "toolchain."106 95 107 96 exit 3 108 97 } 109 98 110 set_cross_prefix() {111 if [ -z "$CROSS_PREFIX" ] ; then112 if $SYSTEM_INSTALL ; then113 CROSS_PREFIX="/opt/HelenOS/cross"114 else115 if [ -z "$XDG_DATA_HOME" ] ; then116 XDG_DATA_HOME="$HOME/.local/share"117 fi118 CROSS_PREFIX="$XDG_DATA_HOME/HelenOS/cross"119 fi120 fi121 }122 123 99 test_version() { 124 set_cross_prefix 125 126 echo "HelenOS cross-compiler toolchain build script" 127 echo 128 echo "Testing the version of the installed software in $CROSS_PREFIX" 129 echo 130 100 echo "Cross-compiler toolchain build script" 101 echo 102 echo "Start testing the version of the installed software" 103 echo 104 131 105 if [ -z "$1" ] || [ "$1" = "all" ] ; then 132 106 PLATFORMS='amd64 arm32 arm64 ia32 ia64 mips32 mips32eb ppc32 riscv64 sparc64' … … 134 108 PLATFORMS="$1" 135 109 fi 136 137 for PLATFORM in $PLATFORMS ; do 110 111 112 if [ -z "${CROSS_PREFIX}" ] ; then 113 CROSS_PREFIX="/usr/local/cross" 114 fi 115 116 for i in $PLATFORMS 117 do 118 PLATFORM="$i" 138 119 set_target_from_platform "$PLATFORM" 139 PREFIX="${CROSS_PREFIX}/bin/${ TARGET}"120 PREFIX="${CROSS_PREFIX}/bin/${HELENOS_TARGET}" 140 121 141 122 echo "== $PLATFORM ==" 142 123 test_app_version "Binutils" "ld" "GNU ld (.*) \([.0-9]*\)" "$BINUTILS_VERSION" 143 124 test_app_version "GCC" "gcc" "gcc version \([.0-9]*\)" "$GCC_VERSION" 125 test_app_version "GDB" "gdb" "GNU gdb (.*)[[:space:]]\+\([.0-9]*\)" "$GDB_VERSION" 144 126 done 127 128 exit 145 129 } 146 130 … … 151 135 INS_VERSION="$4" 152 136 137 153 138 APP="${PREFIX}-${APPNAME}" 154 139 if [ ! -e $APP ]; then … … 163 148 164 149 if [ "$INS_VERSION" = "$VERSION" ]; then 165 echo "+ $PKGNAME is up -to-date ($INS_VERSION)"150 echo "+ $PKGNAME is uptodate ($INS_VERSION)" 166 151 else 167 152 echo "- $PKGNAME ($VERSION) is outdated ($INS_VERSION)" … … 170 155 } 171 156 157 158 172 159 change_title() { 173 160 printf "\e]0;$1\a" 174 }175 176 ring_bell() {177 printf '\a'178 sleep 0.1179 printf '\a'180 sleep 0.1181 printf '\a'182 sleep 0.1183 printf '\a'184 sleep 0.1185 printf '\a'186 161 } 187 162 … … 203 178 204 179 show_dependencies() { 205 set_cross_prefix206 207 echo "HelenOS cross-compiler toolchain build script"208 echo209 echo "Installing software to $CROSS_PREFIX"210 echo211 echo212 180 echo "IMPORTANT NOTICE:" 213 181 echo … … 250 218 251 219 check_dirs() { 252 cd "${BASEDIR}" 253 check_error $? "Unable to change directory to ${BASEDIR}." 220 OUTSIDE="$1" 221 BASE="$2" 222 ORIGINAL="$PWD" 223 224 cd "${BASE}" 225 check_error $? "Unable to change directory to ${BASE}." 254 226 ABS_BASE="$PWD" 255 256 if $SYSTEM_INSTALL && [ ! -d "${CROSS_PREFIX}" ]; then 257 ring_bell 258 ( set -x ; sudo -k mkdir -p "${CROSS_PREFIX}" ) 259 else 260 ( set -x ; mkdir -p "${CROSS_PREFIX}" ) 261 fi 262 263 cd "${CROSS_PREFIX}" 264 check_error $? "Unable to change directory to ${CROSS_PREFIX}." 227 cd "${ORIGINAL}" 228 check_error $? "Unable to change directory to ${ORIGINAL}." 229 230 mkdir -p "${OUTSIDE}" 231 cd "${OUTSIDE}" 232 check_error $? "Unable to change directory to ${OUTSIDE}." 265 233 266 234 while [ "${#PWD}" -gt "${#ABS_BASE}" ]; do … … 275 243 fi 276 244 277 cd "${BASEDIR}" 245 cd "${ORIGINAL}" 246 check_error $? "Unable to change directory to ${ORIGINAL}." 278 247 } 279 248 … … 286 255 check_error $? "Change directory failed." 287 256 288 change_title "Downloading sources"289 257 echo ">>> Downloading sources" 290 291 if $BUILD_BINUTILS ; then 292 git clone --depth 1 -b "$BINUTILS_BRANCH" "$BINUTILS_GDB_GIT" "binutils-$BINUTILS_VERSION" 293 # If the directory already existed, pull upstream changes. 294 git -C "binutils-$BINUTILS_VERSION" pull 295 fi 296 297 if $BUILD_GCC ; then 298 git clone --depth 1 -b "$GCC_BRANCH" "$GCC_GIT" "gcc-$GCC_VERSION" 299 git -C "gcc-$GCC_VERSION" pull 300 301 change_title "Downloading GCC prerequisites" 302 echo ">>> Downloading GCC prerequisites" 303 cd "gcc-${GCC_VERSION}" 304 ./contrib/download_prerequisites 305 cd .. 306 fi 307 308 # This sets the CROSS_PREFIX variable 309 set_cross_prefix 310 311 DESTDIR_SPEC="DESTDIR=${INSTALL_DIR}" 312 313 check_dirs 258 git clone --depth 1 -b "$BINUTILS_BRANCH" "$BINUTILS_GDB_GIT" "binutils-$BINUTILS_VERSION" 259 git clone --depth 1 -b "$GDB_BRANCH" "$BINUTILS_GDB_GIT" "gdb-$GDB_VERSION" 260 git clone --depth 1 -b "$GCC_BRANCH" "$GCC_GIT" "gcc-$GCC_VERSION" 261 262 # If the directory already existed, pull upstream changes. 263 git -C "binutils-$BINUTILS_VERSION" pull 264 git -C "gdb-$GDB_VERSION" pull 265 git -C "gcc-$GCC_VERSION" pull 266 267 echo ">>> Downloading GCC prerequisites" 268 cd "gcc-${GCC_VERSION}" 269 ./contrib/download_prerequisites 270 cd .. 314 271 } 315 272 … … 339 296 esac 340 297 341 TARGET="${GNU_ARCH}-helenos" 342 } 343 344 build_binutils() { 345 # This sets the TARGET variable 346 set_target_from_platform "$1" 298 HELENOS_TARGET="${GNU_ARCH}-helenos" 299 300 case "$1" in 301 "arm32") 302 LINUX_TARGET="${GNU_ARCH}-linux-gnueabi" 303 ;; 304 *) 305 LINUX_TARGET="${GNU_ARCH}-linux-gnu" 306 ;; 307 esac 308 } 309 310 build_target() { 311 PLATFORM="$1" 312 313 # This sets the *_TARGET variables 314 set_target_from_platform "$PLATFORM" 315 if $USE_HELENOS_TARGET ; then 316 TARGET="$HELENOS_TARGET" 317 else 318 TARGET="$LINUX_TARGET" 319 fi 347 320 348 321 WORKDIR="${BASEDIR}/${TARGET}" 322 INSTALL_DIR="${BASEDIR}/PKG" 349 323 BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}" 324 GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}" 325 GDBDIR="${WORKDIR}/gdb-${GDB_VERSION}" 326 327 if [ -z "${CROSS_PREFIX}" ] ; then 328 CROSS_PREFIX="/usr/local/cross" 329 fi 330 331 if [ -z "$JOBS" ] ; then 332 JOBS=`nproc` 333 fi 334 335 PREFIX="${CROSS_PREFIX}" 350 336 351 337 echo ">>> Removing previous content" 352 338 cleanup_dir "${WORKDIR}" 353 339 mkdir -p "${WORKDIR}" 354 355 echo ">>> Processing binutils (${TARGET})" 340 check_dirs "${PREFIX}" "${WORKDIR}" 341 342 if $USE_HELENOS_TARGET ; then 343 echo ">>> Creating build sysroot" 344 mkdir -p "${WORKDIR}/sysroot/include" 345 mkdir "${WORKDIR}/sysroot/lib" 346 ARCH="$PLATFORM" 347 if [ "$ARCH" = "mips32eb" ]; then 348 ARCH=mips32 349 fi 350 351 cp -r -L -t "${WORKDIR}/sysroot/include" \ 352 ${SRCDIR}/../abi/include/* \ 353 ${SRCDIR}/../uspace/lib/c/arch/${ARCH}/include/* \ 354 ${SRCDIR}/../uspace/lib/c/include/* 355 check_error $? "Failed to create build sysroot." 356 fi 357 358 echo ">>> Processing binutils (${PLATFORM})" 356 359 mkdir -p "${BINUTILSDIR}" 357 360 cd "${BINUTILSDIR}" 358 361 check_error $? "Change directory failed." 359 362 360 change_title "binutils: configure (${ TARGET})"363 change_title "binutils: configure (${PLATFORM})" 361 364 CFLAGS="-Wno-error -fcommon" "${BASEDIR}/downloads/binutils-${BINUTILS_VERSION}/configure" \ 362 365 "--target=${TARGET}" \ 363 "--prefix=${ CROSS_PREFIX}" \366 "--prefix=${PREFIX}" \ 364 367 "--program-prefix=${TARGET}-" \ 365 368 --disable-nls \ 366 369 --disable-werror \ 367 -- disable-gold \370 --enable-gold \ 368 371 --enable-deterministic-archives \ 369 372 --disable-gdb \ … … 371 374 check_error $? "Error configuring binutils." 372 375 373 change_title "binutils: make (${ TARGET})"376 change_title "binutils: make (${PLATFORM})" 374 377 make all -j$JOBS 375 378 check_error $? "Error compiling binutils." 376 379 377 change_title "binutils: install (${ TARGET})"378 make install $DESTDIR_SPEC380 change_title "binutils: install (${PLATFORM})" 381 make install "DESTDIR=${INSTALL_DIR}" 379 382 check_error $? "Error installing binutils." 380 } 381 382 build_gcc() { 383 # This sets the TARGET variable 384 set_target_from_platform "$1" 385 386 WORKDIR="${BASEDIR}/${TARGET}" 387 GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}" 388 389 echo ">>> Removing previous content" 390 cleanup_dir "${WORKDIR}" 391 mkdir -p "${WORKDIR}" 392 393 echo ">>> Processing GCC (${TARGET})" 383 384 385 echo ">>> Processing GCC (${PLATFORM})" 394 386 mkdir -p "${GCCDIR}" 395 387 cd "${GCCDIR}" 396 388 check_error $? "Change directory failed." 397 389 398 BUILDPATH="${CROSS_PREFIX}/bin:${PATH}" 399 400 change_title "GCC: configure (${TARGET})" 401 PATH="${BUILDPATH}" "${BASEDIR}/downloads/gcc-${GCC_VERSION}/configure" \ 390 if $USE_HELENOS_TARGET ; then 391 SYSROOT=--with-sysroot --with-build-sysroot="${WORKDIR}/sysroot" 392 else 393 SYSROOT=--without-headers 394 fi 395 396 change_title "GCC: configure (${PLATFORM})" 397 PATH="$PATH:${INSTALL_DIR}/${PREFIX}/bin" "${BASEDIR}/downloads/gcc-${GCC_VERSION}/configure" \ 402 398 "--target=${TARGET}" \ 403 "--prefix=${ CROSS_PREFIX}" \399 "--prefix=${PREFIX}" \ 404 400 "--program-prefix=${TARGET}-" \ 405 401 --with-gnu-as \ … … 408 404 --enable-languages=c,c++,go \ 409 405 --enable-lto \ 410 --enable-obsolete \411 406 --disable-shared \ 412 407 --disable-werror \ 413 --without-headers # TODO: Replace with proper sysroot so we can build more libs408 $SYSROOT 414 409 check_error $? "Error configuring GCC." 415 410 416 change_title "GCC: make (${ TARGET})"417 PATH="${ BUILDPATH}" make all-gcc -j$JOBS411 change_title "GCC: make (${PLATFORM})" 412 PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-gcc -j$JOBS 418 413 check_error $? "Error compiling GCC." 419 414 420 change_title "GCC: install (${TARGET})" 421 PATH="${BUILDPATH}" make install-gcc $DESTDIR_SPEC 415 if $USE_HELENOS_TARGET ; then 416 PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-target-libgcc -j$JOBS 417 check_error $? "Error compiling libgcc." 418 # TODO: needs some extra care 419 #PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-target-libatomic -j$JOBS 420 #check_error $? "Error compiling libatomic." 421 #PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-target-libstdc++-v3 -j$JOBS 422 #check_error $? "Error compiling libstdc++." 423 fi 424 425 change_title "GCC: install (${PLATFORM})" 426 PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-gcc "DESTDIR=${INSTALL_DIR}" 427 if $USE_HELENOS_TARGET ; then 428 PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-target-libgcc "DESTDIR=${INSTALL_DIR}" 429 #PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-target-libatomic "DESTDIR=${INSTALL_DIR}" 430 #PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-target-libstdc++-v3 "DESTDIR=${INSTALL_DIR}" 431 fi 422 432 check_error $? "Error installing GCC." 423 } 424 425 build_libgcc() { 426 # This sets the TARGET variable 427 set_target_from_platform "$1" 428 429 WORKDIR="${BASEDIR}/${TARGET}" 430 GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}" 431 432 # No removing previous content here, we need the previous GCC build 433 434 cd "${GCCDIR}" 433 434 435 echo ">>> Processing GDB (${PLATFORM})" 436 mkdir -p "${GDBDIR}" 437 cd "${GDBDIR}" 435 438 check_error $? "Change directory failed." 436 439 437 BUILDPATH="${CROSS_PREFIX}/bin:${PATH}" 438 439 change_title "libgcc: make (${TARGET})" 440 441 PATH="${BUILDPATH}" make all-target-libgcc -j$JOBS 442 check_error $? "Error compiling libgcc." 443 # TODO: libatomic and libstdc++ need some extra care 444 # PATH="${BUILDPATH}" make all-target-libatomic -j$JOBS 445 # check_error $? "Error compiling libatomic." 446 # PATH="${BUILDPATH}" make all-target-libstdc++-v3 -j$JOBS 447 # check_error $? "Error compiling libstdc++." 448 449 change_title "libgcc: install (${TARGET})" 450 451 PATH="${BUILDPATH}" make install-target-libgcc $DESTDIR_SPEC 452 # PATH="${BUILDPATH}" make install-target-libatomic $DESTDIR_SPEC 453 # PATH="${BUILDPATH}" make install-target-libstdc++-v3 $DESTDIR_SPEC 454 check_error $? "Error installing libgcc." 455 } 456 457 install_pkg() { 458 echo ">>> Moving to the destination directory." 459 if $SYSTEM_INSTALL ; then 460 ring_bell 461 ( set -x ; tar -C "${INSTALL_DIR}${CROSS_PREFIX}" -cpf - . | sudo -k tar -C "${CROSS_PREFIX}" -xpf - ) 462 else 463 ( set -x ; tar -C "${INSTALL_DIR}${CROSS_PREFIX}" -cpf - . | tar -C "${CROSS_PREFIX}" -xpf - ) 464 fi 465 } 466 467 link_clang() { 440 change_title "GDB: configure (${PLATFORM})" 441 CFLAGS="-fcommon" PATH="$PATH:${INSTALL_DIR}/${PREFIX}/bin" "${BASEDIR}/downloads/gdb-${GDB_VERSION}/configure" \ 442 "--target=${TARGET}" \ 443 "--prefix=${PREFIX}" \ 444 "--program-prefix=${TARGET}-" \ 445 --enable-werror=no 446 check_error $? "Error configuring GDB." 447 448 change_title "GDB: make (${PLATFORM})" 449 PATH="${PATH}:${PREFIX}/bin:${INSTALL_DIR}/${PREFIX}/bin" make all-gdb -j$JOBS 450 check_error $? "Error compiling GDB." 451 452 change_title "GDB: make (${PLATFORM})" 453 PATH="${PATH}:${INSTALL_DIR}/${PREFIX}/bin" make install-gdb "DESTDIR=${INSTALL_DIR}" 454 check_error $? "Error installing GDB." 455 468 456 # Symlink clang and lld to the install path. 469 457 CLANG="`which clang 2> /dev/null || echo "/usr/bin/clang"`" 470 CLANGPP="`which clang++ 2> /dev/null || echo "/usr/bin/clang++"`"471 458 LLD="`which ld.lld 2> /dev/null || echo "/usr/bin/ld.lld"`" 472 459 473 ln -s $CLANG "${INSTALL_DIR}${CROSS_PREFIX}/bin/${TARGET}-clang" 474 ln -s $CLANGPP "${INSTALL_DIR}${CROSS_PREFIX}/bin/${TARGET}-clang++" 475 ln -s $LLD "${INSTALL_DIR}${CROSS_PREFIX}/bin/${TARGET}-ld.lld" 460 ln -s $CLANG "${INSTALL_DIR}/${PREFIX}/bin/${TARGET}-clang" 461 ln -s $LLD "${INSTALL_DIR}/${PREFIX}/bin/${TARGET}-ld.lld" 462 463 if $REAL_INSTALL ; then 464 echo ">>> Moving to the destination directory." 465 echo cp -r -t "${PREFIX}" "${INSTALL_DIR}/${PREFIX}/"* 466 cp -r -t "${PREFIX}" "${INSTALL_DIR}/${PREFIX}/"* 467 fi 468 469 cd "${BASEDIR}" 470 check_error $? "Change directory failed." 471 472 echo ">>> Cleaning up" 473 cleanup_dir "${WORKDIR}" 474 475 echo 476 echo ">>> Cross-compiler for ${TARGET} installed." 476 477 } 477 478 478 479 while [ "$#" -gt 1 ] ; do 479 480 case "$1" in 480 --system-wide)481 SYSTEM_INSTALL=true482 shift483 ;;484 481 --test-version) 485 482 test_version "$2" 486 483 exit 487 484 ;; 485 --no-install) 486 REAL_INSTALL=false 487 shift 488 ;; 489 --non-helenos-target) 490 USE_HELENOS_TARGET=false 491 shift 492 ;; 488 493 *) 489 494 show_usage … … 496 501 fi 497 502 498 PLATFORMS="amd64 arm32 arm64 ia32 ia64 mips32 mips32eb ppc32 riscv64 sparc64"499 500 run_one() {501 $1 $PLATFORM502 }503 504 run_all() {505 for x in $PLATFORMS ; do506 $1 $x507 done508 }509 510 run_parallel() {511 for x in $PLATFORMS ; do512 $1 $x &513 done514 wait515 }516 517 run_2way() {518 $1 amd64 &519 $1 arm32 &520 wait521 522 $1 arm64 &523 $1 ia32 &524 wait525 526 $1 ia64 &527 $1 mips32 &528 wait529 530 $1 mips32eb &531 $1 ppc32 &532 wait533 534 $1 riscv64 &535 $1 sparc64 &536 wait537 }538 539 everything() {540 RUNNER="$1"541 542 prepare543 544 if $BUILD_BINUTILS ; then545 $RUNNER build_binutils546 547 if $BUILD_GCC ; then548 # gcc/libgcc may fail to build correctly if binutils is not installed first549 echo ">>> Installing binutils"550 install_pkg551 fi552 fi553 554 if $BUILD_GCC ; then555 $RUNNER build_gcc556 557 # libgcc may fail to build correctly if gcc is not installed first558 echo ">>> Installing GCC"559 install_pkg560 561 $RUNNER build_libgcc562 fi563 564 echo ">>> Installing all files"565 install_pkg566 567 link_clang568 }569 570 503 case "$1" in 571 504 --test-version) 572 505 test_version 573 exit574 506 ;; 575 507 amd64|arm32|arm64|ia32|ia64|mips32|mips32eb|ppc32|riscv64|sparc64) 576 PLATFORM="$1"577 everything run_one508 prepare 509 build_target "$1" 578 510 ;; 579 511 "all") 580 everything run_all 512 prepare 513 build_target "amd64" 514 build_target "arm32" 515 build_target "arm64" 516 build_target "ia32" 517 build_target "ia64" 518 build_target "mips32" 519 build_target "mips32eb" 520 build_target "ppc32" 521 build_target "riscv64" 522 build_target "sparc64" 523 ;; 524 "essential") 525 prepare 526 build_target "amd64" 527 build_target "arm32" 528 build_target "arm64" 529 build_target "ia32" 530 build_target "ia64" 531 build_target "mips32" 532 build_target "mips32eb" 533 build_target "ppc32" 534 build_target "sparc64" 581 535 ;; 582 536 "parallel") 583 everything run_parallel 537 prepare 538 build_target "amd64" & 539 build_target "arm32" & 540 build_target "arm64" & 541 build_target "ia32" & 542 build_target "ia64" & 543 build_target "mips32" & 544 build_target "mips32eb" & 545 build_target "ppc32" & 546 build_target "riscv64" & 547 build_target "sparc64" & 548 wait 584 549 ;; 585 550 "2-way") 586 everything run_2way 551 prepare 552 build_target "amd64" & 553 build_target "arm32" & 554 wait 555 556 build_target "arm64" & 557 build_target "ia32" & 558 wait 559 560 build_target "ia64" & 561 build_target "mips32" & 562 wait 563 564 build_target "mips32eb" & 565 build_target "ppc32" & 566 wait 567 568 build_target "riscv64" & 569 build_target "sparc64" & 570 wait 587 571 ;; 588 572 *)
Note:
See TracChangeset
for help on using the changeset viewer.
