1d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner#!/bin/sh 2d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# 31c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Copyright (C) 2011 The Android Open Source Project 41c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# 51c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Licensed under the Apache License, Version 2.0 (the "License"); 61c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# you may not use this file except in compliance with the License. 71c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# You may obtain a copy of the License at 81c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# 91c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# http://www.apache.org/licenses/LICENSE-2.0 101c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# 111c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Unless required by applicable law or agreed to in writing, software 121c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# distributed under the License is distributed on an "AS IS" BASIS, 131c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 141c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# See the License for the specific language governing permissions and 151c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# limitations under the License. 161c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# 171c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Rebuild all host toolchains and programs 18d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# 19d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 20d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerPROGDIR=$(dirname $0) 21d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner. $PROGDIR/prebuilt-common.sh 22d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 23d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerNDK_DIR=$ANDROID_NDK_ROOT 24d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_var_option "--ndk-dir=<path>" NDK_DIR "NDK installation directory" 25d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 26d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerSYSTEMS=$HOST_TAG 27d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# Replace x86_64 by x86 at the end of SYSTEMS since we will produce 28d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# 32-bit toolchains by default, i.e. unless you use the --try-64 flag 29d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "${SYSTEMS%%x86_64}" != "$SYSTEMS" ]; then 30d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner SYSTEMS=${SYSTEMS%%x86_64}x86 31d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 32d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# If we are on Linux, we are able to generate the Windows binaries 33d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# with the mingw32 cross-toolchain. 34d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$SYSTEMS" = "linux-x86" ]; then 35d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner SYSTEMS=$SYSTEMS",windows" 363b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh # If darwin toolchain exist, build darwin too 373b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh if [ -f "${DARWIN_TOOLCHAIN}-gcc" ]; then 383b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh SYSTEMS=$SYSTEMS",darwin-x86" 393b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh fi 40d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 41d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerCUSTOM_SYSTEMS= 42d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_option "--systems=<names>" do_SYSTEMS "List of host systems to build for" 43d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerdo_SYSTEMS () { CUSTOM_SYSTEMS=true; SYSTEMS=$1; } 44d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 451761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-ChihARCHS=$(find_ndk_unknown_archs) 461761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-ChihARCHS="$DEFAULT_ARCHS $ARCHS" 47d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_var_option "--arch=<list>" ARCHS "List of target archs to build for" 48d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 49d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerPACKAGE_DIR= 50d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_var_option "--package-dir=<path>" PACKAGE_DIR "Package toolchain into this directory" 51d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 52d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerDARWIN_SSH= 53d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_var_option "--darwin-ssh=<hostname>" DARWIN_SSH "Generate darwin packages on remote host" 54d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 55d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerNO_GEN_PLATFORMS= 56d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_var_option "--no-gen-platforms" NO_GEN_PLATFORMS "Don't generate platforms/ directory, use existing one" 57d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 585b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel ChupinGCC_VERSION_LIST="default" # it's arch defined by default so use default keyword 595b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupinregister_var_option "--gcc-version-list=<vers>" GCC_VERSION_LIST "List of GCC release versions" 605b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin 618e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan ChienLLVM_VERSION_LIST=$DEFAULT_LLVM_VERSION_LIST 626099deecb0b4f2805135f3670c41be971fbe4e3dAndrew Hsiehregister_var_option "--llvm-version-list=<vers>" LLVM_VERSION_LIST "List of LLVM release versions" 638e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan Chien 64bedf803c145294a8a1970accd860d8a49379f9e7Andrew HsiehCHECK_FLAG= 65bedf803c145294a8a1970accd860d8a49379f9e7Andrew Hsiehdo_check_option () { CHECK_FLAG="--check"; } 66bedf803c145294a8a1970accd860d8a49379f9e7Andrew Hsiehregister_option "--check" do_check_option "Check host prebuilts" 67bedf803c145294a8a1970accd860d8a49379f9e7Andrew Hsieh 68d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerregister_try64_option 69d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 70d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerPROGRAM_PARAMETERS="<toolchain-src-dir>" 71d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerPROGRAM_DESCRIPTION=\ 72d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner"This script can be used to rebuild all the host NDK toolchains at once. 73d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerYou need to give it the path to the toolchain source directory, as 74d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerdownloaded by the 'download-toolchain-sources.sh' dev-script." 75d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 76d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerextract_parameters "$@" 77d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 78d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# Check toolchain source path 79d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerSRC_DIR="$PARAMETERS" 80d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ -z "$SRC_DIR" ]; then 81d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "ERROR: Please provide the path to the toolchain source tree. See --help" 82d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner exit 1 83d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 84d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 85d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ ! -d "$SRC_DIR" ]; then 86d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "ERROR: Not a directory: '$SRC_DIR'" 87d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner exit 1 88d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 89d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 909a311503035b598a1ddfb24ebbb368ba7e4cb924Andrew Hsiehif [ ! -f "$SRC_DIR/build/configure" -o ! -d "$SRC_DIR/gcc/gcc-$DEFAULT_GCC32_VERSION" -o ! -d "$SRC_DIR/gcc/gcc-$DEFAULT_GCC64_VERSION" ]; then 91612e5d967db47c99996511a9e78f7c29d2dbdc67Nick Kralevich echo "ERROR: The file $SRC_DIR/build/configure or" 929a311503035b598a1ddfb24ebbb368ba7e4cb924Andrew Hsieh echo " the directory $SRC_DIR/gcc/gcc-$DEFAULT_GCC32_VERSION or" 939a311503035b598a1ddfb24ebbb368ba7e4cb924Andrew Hsieh echo " $SRC_DIR/gcc/gcc-$DEFAULT_GCC64_VERSION does not exist" 94612e5d967db47c99996511a9e78f7c29d2dbdc67Nick Kralevich echo "This is not the top of a toolchain tree: $SRC_DIR" 95d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "You must give the path to a copy of the toolchain source directories" 96d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "created by 'download-toolchain-sources.sh." 97d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner exit 1 98d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 99d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 100d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner# Now we can do the build 101d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerBUILDTOOLS=$ANDROID_NDK_ROOT/build/tools 102d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 103d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ -z "$NO_GEN_PLATFORMS" ]; then 104d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Preparing the build..." 105d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner run $BUILDTOOLS/gen-platforms.sh --minimal --dst-dir=$NDK_DIR --ndk-dir=$NDK_DIR --arch=$(spaces_to_commas $ARCHS) 106d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not generate minimal sysroot!" 107d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerelse 108d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner if [ ! -d "$NDK_DIR/platforms" ]; then 109d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "ERROR: --no-gen-platforms used but directory missing: $NDK_DIR/platforms" 110d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner exit 1 111d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 112d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 113d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 114d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerSYSTEMS=$(commas_to_spaces $SYSTEMS) 115d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerARCHS=$(commas_to_spaces $ARCHS) 1161761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chih 1171761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chih# Detect unknown arch 1181761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-ChihUNKNOWN_ARCH=$(filter_out "$DEFAULT_ARCHS" "$ARCHS") 1191761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chihif [ ! -z "$UNKNOWN_ARCH" ]; then 1201761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chih ARCHS=$(filter_out "$UNKNOWN_ARCH" "$ARCHS") 1211761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chihfi 1221761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chih 1238e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan ChienLLVM_VERSION_LIST=$(commas_to_spaces $LLVM_VERSION_LIST) 124d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 125d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$DARWIN_SSH" -a -z "$CUSTOM_SYSTEMS" ]; then 126d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner SYSTEMS=" darwin-x86" 127d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 128d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 129d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' TurnerFLAGS= 130d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$VERBOSE" = "yes" ]; then 131d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner FLAGS=$FLAGS" --verbose" 132d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 133d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$VERBOSE2" = "yes" ]; then 134d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner FLAGS=$FLAGS" --verbose" 135d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 136d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$TRY64" = "yes" ]; then 13709a968eb0b25413ccc5cce15d04216a630e85631Ray Donnelly FLAGS=$FLAGS" --try-64" 138d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerelse 139d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner force_32bit_binaries 140d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 141d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$PACKAGE_DIR" ]; then 1421c855558c00aaf7f8f86335b605e7b78d8a17172David 'Digit' Turner mkdir -p "$PACKAGE_DIR" 1431c855558c00aaf7f8f86335b605e7b78d8a17172David 'Digit' Turner fail_panic "Could not create package directory: $PACKAGE_DIR" 144d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner FLAGS=$FLAGS" --package-dir=$PACKAGE_DIR" 145d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 146d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 147d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerdo_remote_host_build () 148d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner{ 149d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner local SYSTEM="$1" 150d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner local ARCH="$2" 151d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner local REMOTE_HOST="$3" 152d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 153d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # 1/ Copy the NDK toolchain build scripts 154d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # 2/ Copy the toolchain sources/package 155d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # 3/ Ssh to unpack the build scripts, and run them 156d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # 4/ Copy back the generated prebuilt binaries 157d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # 158d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Preparing remote build on $REMOTE_HOST..." 159d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 160d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # First try to create a remote temp directory on the remote host 161d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Do it first so we can fail fast, not after spending time preparing 162d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # large tarballs. 163d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Creating remote temp directory" 164d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner TMPREMOTE=/tmp/ndk-$USER/darwin-prebuild 165d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner run ssh $REMOTE_HOST "mkdir -p $TMPREMOTE && rm -rf $TMPREMOTE/*" 166d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not create temporary build directory on $REMOTE_HOST" 167d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 168d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Now, package all the stuff we're going to send in a temporary 169d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # directory here on the machine, except toolchain sources 170d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner TMPDARWIN=$NDK_TMPDIR/darwin # Where we're going to package stuff 171d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner log "Using temporary work directory: $TMPDARWIN" 172d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner mkdir -p "$TMPDARWIN" 173d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Prepare NDK build scripts" 174d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner copy_directory "$ANDROID_NDK_ROOT/build" "$TMPDARWIN/ndk/build" 175d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner copy_file_list "$ANDROID_NDK_ROOT" "$TMPDARWIN/ndk" sources/android/libthread_db 176d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner copy_file_list "$ANDROID_NDK_ROOT" "$TMPDARWIN/ndk" "$STLPORT_SUBDIR" 177d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner copy_file_list "$ANDROID_NDK_ROOT" "$TMPDARWIN/ndk" "$GABIXX_SUBDIR" 1785c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner copy_file_list "$ANDROID_NDK_ROOT" "$TMPDARWIN/ndk" sources/host-tools 179d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Prepare platforms files" 180d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner copy_directory "$NDK_DIR/platforms" "$TMPDARWIN/ndk/platforms" 181d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Copying NDK build scripts and platform files to remote..." 182d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner (cd "$TMPDARWIN" && tar czf - ndk) | (ssh $REMOTE_HOST tar xzf - -C $TMPREMOTE) 183d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not copy!" 184d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner rm -rf $TMPDARWIN 185d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 186d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Copy the toolchain sources 187d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Copy toolchain sources to remote" 188d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner ssh $REMOTE_HOST mkdir -p $TMPREMOTE/toolchain && 189d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner (cd "$SRC_DIR" && tar czf - .) | (ssh $REMOTE_HOST tar xzf - -C $TMPREMOTE/toolchain) 190d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not copy toolchain!" 191d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 192d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Time to run the show :-) 1931761f445c3dfe2f032af6201e32928eb4f07f92dLai Wei-Chih for ARCH in $(commas_to_spaces $ARCHS $UNKNOWN_ARCH); do 194d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Running remote $ARCH toolchain build..." 195d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner SYSROOT=$TMPREMOTE/ndk/platforms/android-$(get_default_api_level_for_arch $ARCH)/arch-$ARCH 196d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner run ssh $REMOTE_HOST "$TMPREMOTE/ndk/build/tools/build-host-prebuilts.sh $TMPREMOTE/toolchain --package-dir=$TMPREMOTE/packages --arch=$ARCH --ndk-dir=$TMPREMOTE/ndk --no-gen-platforms" 197d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not build prebuilt $ARCH toolchain on Darwin!" 198d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner done 199d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Get the results 200d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Copying back Darwin prebuilt packages..." 201d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner mkdir -p $TMPDARWIN/packages && rm -rf $TMPDARWIN/packages/* 202d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner run scp $REMOTE_HOST:$TMPREMOTE/packages/*-darwin-* $TMPDARWIN/packages 203d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "Could not grab Darwin packages!" 204d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 205d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner for PACK in $TMPDARWIN/packages/*; do 206d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner if [ "$PACKAGE_DIR" ]; then 207d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Copying $(basename $PACK) to $PACKAGE_DIR..." 208d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner cp $PACK $PACKAGE_DIR/ 209d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner else 210d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Unpacking $(basename $PACK) into $NDK_DIR..." 211d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner unpack_archive $PACK $NDK_DIR 212d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 213d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fail_panic "" 214d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner done 215d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 216d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner dump "Cleaning up remote machine..." 217d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner run ssh $REMOTE_HOST rm -rf $TMPREMOTE 218d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner} 219d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 220d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfor SYSTEM in $SYSTEMS; do 221d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 2223b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh # Add --mingw/--darwin flag 223d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner TOOLCHAIN_FLAGS=$FLAGS 224bd2fa8bbb88e221220827bbfca6db13016893d35Andrew Hsieh CANADIAN_BUILD=no 2253b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh if [ "$HOST_TAG32" = "linux-x86" ]; then 2263b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh case "$SYSTEM" in 2273b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh windows) 2283b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh TOOLCHAIN_FLAGS=$TOOLCHAIN_FLAGS" --mingw" 229bd2fa8bbb88e221220827bbfca6db13016893d35Andrew Hsieh CANADIAN_BUILD=yes 2303b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh ;; 231bd2fa8bbb88e221220827bbfca6db13016893d35Andrew Hsieh darwin-x86) 2323b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh TOOLCHAIN_FLAGS=$TOOLCHAIN_FLAGS" --darwin" 233bd2fa8bbb88e221220827bbfca6db13016893d35Andrew Hsieh CANADIAN_BUILD=yes 2343b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh ;; 2353b28972d8a5a108579496233266fccd69c9d2fe5Andrew Hsieh esac 236d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 237d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 238524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh # Should we do a remote build? 239bd2fa8bbb88e221220827bbfca6db13016893d35Andrew Hsieh if [ "$SYSTEM" != "$HOST_TAG32" -a "$CANADIAN_BUILD" != "yes" ]; then 240d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner case $SYSTEM in 241d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner darwin-*) 242d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner if [ "$DARWIN_SSH" ]; then 243d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner do_remote_host_build "$SYSTEM" "$ARCH" "$DARWIN_SSH" 244d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner else 245d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "WARNING: Can't build $SYSTEM binaries on this system!" 246d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Consider using the --darwin-ssh option." 247d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 248d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner continue 249d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner esac 250d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 251d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 252524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh # Determin the display system name 253524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh SYSNAME=$SYSTEM 254524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh if [ "$TRY64" = "yes" ]; then 255524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh case $SYSTEM in 256524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh darwin-x86|linux-x86) 25769e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh SYSNAME=${SYSTEM%%x86}x86_64 258524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh ;; 259524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh windows) 260524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh SYSNAME=windows-x86_64 261524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh ;; 262524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh esac 263524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh fi 264d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 265524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh # First, ndk-stack 266dd8fc70f5479bb634c0919eed7f906d540ec807bAndrew Hsieh echo "Building $SYSNAME ndk-stack" 2675647b5efe1584bfcb3ed10ca617f7b1d73f63d9bAndrew Hsieh run $BUILDTOOLS/build-ndk-stack.sh $TOOLCHAIN_FLAGS --with-libbfd --src-dir=$SRC_DIR 268dd8fc70f5479bb634c0919eed7f906d540ec807bAndrew Hsieh fail_panic "ndk-stack build failure!" 2692454d616a21ad5d1382b0c0615e6ead399433cc5David 'Digit' Turner 2702454d616a21ad5d1382b0c0615e6ead399433cc5David 'Digit' Turner echo "Building $SYSNAME ndk-depends" 2712454d616a21ad5d1382b0c0615e6ead399433cc5David 'Digit' Turner run $BUILDTOOLS/build-ndk-depends.sh $TOOLCHAIN_FLAGS 2722454d616a21ad5d1382b0c0615e6ead399433cc5David 'Digit' Turner fail_panic "ndk-depends build failure!" 2732454d616a21ad5d1382b0c0615e6ead399433cc5David 'Digit' Turner 274524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME ndk-make" 2755c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner run $BUILDTOOLS/build-host-make.sh $TOOLCHAIN_FLAGS 2765c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner fail_panic "make build failure!" 2775c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner 278524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME ndk-awk" 2795c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner run $BUILDTOOLS/build-host-awk.sh $TOOLCHAIN_FLAGS 2805c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner fail_panic "awk build failure!" 2815c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner 282524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME ndk-sed" 2835c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner run $BUILDTOOLS/build-host-sed.sh $TOOLCHAIN_FLAGS 2845c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner fail_panic "sed build failure!" 2855c1b54f8aa498659c154a5cb909d0e19a9b63e92David 'Digit' Turner 286810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly # ToDo: perl in windows/darwin cross. 287810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly MAKE_PERL=no 288810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly case $SYSTEM in 289810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly linux*) 290810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly MAKE_PERL=yes 291810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly ;; 292810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly darwin*) 293810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly # Only works if not cross compiling. 294810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly if [ "$CANADIAN_BUILD" = "no" ] ; then 295810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly MAKE_PERL=yes 296810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly fi 297810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly ;; 298810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly *) 299810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly ;; 300810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly esac 301810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly 302810a7daf51d3e530847ff56f600677502ad9e507Ray Donnelly if [ "$MAKE_PERL" = "yes" ] ; then 3032641f6f5414e56d792fac26572a5d984977ef462Andrew Hsieh echo "Building $SYSNAME ndk-perl" 3042641f6f5414e56d792fac26572a5d984977ef462Andrew Hsieh run $BUILDTOOLS/build-host-perl.sh $TOOLCHAIN_FLAGS "$SRC_DIR" 3052641f6f5414e56d792fac26572a5d984977ef462Andrew Hsieh fail_panic "perl build failure!" 3062641f6f5414e56d792fac26572a5d984977ef462Andrew Hsieh fi 3072641f6f5414e56d792fac26572a5d984977ef462Andrew Hsieh 308c6798d0201775cd96ae85b67b7653bdc406f2599Lai Wei-Chih echo "Building $SYSNAME ndk-python" 309433f2c4e0348d448f4e31efa93537f1784bf47b4Andrew Hsieh run $BUILDTOOLS/build-host-python.sh $TOOLCHAIN_FLAGS "--toolchain-src-dir=$SRC_DIR" "--systems=$SYSTEM" "--force" 310c6798d0201775cd96ae85b67b7653bdc406f2599Lai Wei-Chih fail_panic "python build failure!" 311c6798d0201775cd96ae85b67b7653bdc406f2599Lai Wei-Chih 3124d1439a1126c4ff8840135767126dcc5a070f01aAndrew Hsieh echo "Building $SYSNAME ndk-yasm" 3134d1439a1126c4ff8840135767126dcc5a070f01aAndrew Hsieh run $BUILDTOOLS/build-host-yasm.sh "$SRC_DIR" "$NDK_DIR" $TOOLCHAIN_FLAGS 3144d1439a1126c4ff8840135767126dcc5a070f01aAndrew Hsieh fail_panic "yasm build failure!" 3154d1439a1126c4ff8840135767126dcc5a070f01aAndrew Hsieh 316ad1afc5e66ab40201947a3178eba975515b0d73cDavid 'Digit' Turner if [ "$SYSTEM" = "windows" ]; then 317524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME toolbox" 318ad1afc5e66ab40201947a3178eba975515b0d73cDavid 'Digit' Turner run $BUILDTOOLS/build-host-toolbox.sh $FLAGS 319ad1afc5e66ab40201947a3178eba975515b0d73cDavid 'Digit' Turner fail_panic "Windows toolbox build failure!" 320ad1afc5e66ab40201947a3178eba975515b0d73cDavid 'Digit' Turner fi 321ad1afc5e66ab40201947a3178eba975515b0d73cDavid 'Digit' Turner 322d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # Then the toolchains 323d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner for ARCH in $ARCHS; do 324f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner TOOLCHAIN_NAMES=$(get_toolchain_name_list_for_arch $ARCH) 3255b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin if [ "$GCC_VERSION_LIST" != "default" ]; then 3265b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin TOOLCHAINS= 3275b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin for VERSION in $(commas_to_spaces $GCC_VERSION_LIST); do 3285b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin for TOOLCHAIN in $TOOLCHAIN_NAMES; do 3295b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin if [ $TOOLCHAIN != ${TOOLCHAIN%%$VERSION} ]; then 3305b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin TOOLCHAINS="$TOOLCHAIN $TOOLCHAINS" 3315b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin fi 3325b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin done 3335b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin done 3345b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin TOOLCHAIN_NAMES=$TOOLCHAINS 3355b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin fi 336f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner if [ -z "$TOOLCHAIN_NAMES" ]; then 3375b3a49bdbd08775d0e6f9727221fe98946f6db44Pavel Chupin echo "ERROR: Toolchains: "$(spaces_to_commas $GCC_VERSION_LIST)" are not available for arch: $ARCH" 338d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner exit 1 339d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner fi 340d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 341f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner for TOOLCHAIN_NAME in $TOOLCHAIN_NAMES; do 342524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME toolchain for $ARCH architecture: $TOOLCHAIN_NAME" 343b7d458f506a7c692a1d73338d494823680d19175Pavel Chupin run $BUILDTOOLS/build-gcc.sh "$SRC_DIR" "$NDK_DIR" $TOOLCHAIN_NAME $TOOLCHAIN_FLAGS --with-python=prebuilt -j$BUILD_NUM_CPUS 34469e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh fail_panic "Could not build $TOOLCHAIN_NAME-$SYSNAME!" 345f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner done 346d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner done 347d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 3488e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan Chien # Build llvm and clang 349ddeed0481172250935ed47f906905629450d981bAndrew Hsieh POLLY_FLAGS= 350ddeed0481172250935ed47f906905629450d981bAndrew Hsieh if [ "$TRY64" != "yes" -a "$SYSTEM" != "windows" ]; then 351ddeed0481172250935ed47f906905629450d981bAndrew Hsieh POLLY_FLAGS="--with-polly" 352ddeed0481172250935ed47f906905629450d981bAndrew Hsieh fi 3538e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan Chien for LLVM_VERSION in $LLVM_VERSION_LIST; do 354524869abdbd228ccb916cc9a4902550dd6382ba2Andrew Hsieh echo "Building $SYSNAME clang/llvm-$LLVM_VERSION" 355b7d458f506a7c692a1d73338d494823680d19175Pavel Chupin run $BUILDTOOLS/build-llvm.sh "$SRC_DIR" "$NDK_DIR" "llvm-$LLVM_VERSION" $TOOLCHAIN_FLAGS $POLLY_FLAGS $CHECK_FLAG -j$BUILD_NUM_CPUS 35669e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh fail_panic "Could not build llvm for $SYSNAME" 3578e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan Chien done 3588e58e6b10c9c82e2085420b0e2f4c82d1db9b5c3Logan Chien 35969e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh # Deploy ld.mcld 36069e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh $PROGDIR/deploy-host-mcld.sh --package-dir=$PACKAGE_DIR --systems=$SYSNAME 36169e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh fail_panic "Could not deploy ld.mcld for $SYSNAME" 36269e3629c68313d29140e1fdf5c6216a0e8963a22Andrew Hsieh 363d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner # We're done for this system 364d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerdone 365d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 3668fbff41d699dad1386dcdf58e02b7263939abe41Andrew Hsieh# Build tools common to all system 3678fbff41d699dad1386dcdf58e02b7263939abe41Andrew Hsiehrun $BUILDTOOLS/build-analyzer.sh "$SRC_DIR" "$NDK_DIR" "llvm-$DEFAULT_LLVM_VERSION" --package-dir="$PACKAGE_DIR" 3688fbff41d699dad1386dcdf58e02b7263939abe41Andrew Hsieh 369d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerif [ "$PACKAGE_DIR" ]; then 370d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Done, please look at $PACKAGE_DIR" 371d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerelse 372d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner echo "Done" 373d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turnerfi 374d9bb7ebc331f10c98f5c5513fc8d9e5daf12c6e6David 'Digit' Turner 37509a968eb0b25413ccc5cce15d04216a630e85631Ray Donnellyexit 0 376