build-target-prebuilts.sh revision b4789c38c2898b92e7e55274ded1e7f953d5cbf7
11c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner#!/bin/sh 21c663b4a2961e4c9bde69eb740327083bbc92ed8David '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 target-specific prebuilts 181c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# 191c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 201c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerPROGDIR=$(dirname $0) 211c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner. $PROGDIR/prebuilt-common.sh 221c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 231c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerNDK_DIR=$ANDROID_NDK_ROOT 241c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerregister_var_option "--ndk-dir=<path>" NDK_DIR "NDK installation directory" 251c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 261c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerARCHS=$DEFAULT_ARCHS 271c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerregister_var_option "--arch=<list>" ARCHS "List of target archs to build for" 281c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 291c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerPACKAGE_DIR= 301c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerregister_var_option "--package-dir=<path>" PACKAGE_DIR "Package toolchain into this directory" 311c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 32732d3dd872bf85103b3cd391a3519d0ca957a10fRay DonnellyVISIBLE_LIBGNUSTL_STATIC= 33732d3dd872bf85103b3cd391a3519d0ca957a10fRay Donnellyregister_var_option "--visible-libgnustl-static" VISIBLE_LIBGNUSTL_STATIC "Do not use hidden visibility for libgnustl_static.a" 34732d3dd872bf85103b3cd391a3519d0ca957a10fRay Donnelly 351c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerregister_jobs_option 361c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 371c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerPROGRAM_PARAMETERS="<toolchain-src-dir>" 381c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerPROGRAM_DESCRIPTION=\ 391c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner"This script can be used to rebuild all the target NDK prebuilts at once. 401c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerYou need to give it the path to the toolchain source directory, as 411c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerdownloaded by the 'download-toolchain-sources.sh' dev-script." 421c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 431c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerextract_parameters "$@" 441c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 451c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Check toolchain source path 461c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerSRC_DIR="$PARAMETERS" 471c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnercheck_toolchain_src_dir "$SRC_DIR" 48b4789c38c2898b92e7e55274ded1e7f953d5cbf7TDYaSRC_DIR=`cd $SRC_DIR; pwd` 491c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 501c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# Now we can do the build 511c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerBUILDTOOLS=$ANDROID_NDK_ROOT/build/tools 521c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 531c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerdump "Building platforms and samples..." 541c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerPACKAGE_FLAGS= 551c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerif [ "$PACKAGE_DIR" ]; then 561c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner PACKAGE_FLAGS="--package-dir=$PACKAGE_DIR" 571c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfi 581c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 591c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerrun $BUILDTOOLS/gen-platforms.sh --samples --fast-copy --dst-dir=$NDK_DIR --ndk-dir=$NDK_DIR --arch=$(spaces_to_commas $ARCHS) $PACKAGE_FLAGS 601c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfail_panic "Could not generate platforms and samples directores!" 611c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 621c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerARCHS=$(commas_to_spaces $ARCHS) 631c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 641c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerFLAGS= 651c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerif [ "$VERBOSE" = "yes" ]; then 661c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner FLAGS=$FLAGS" --verbose" 671c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfi 681c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerif [ "$VERBOSE2" = "yes" ]; then 691c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner FLAGS=$FLAGS" --verbose" 701c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfi 711c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerif [ "$PACKAGE_DIR" ]; then 721c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner mkdir -p "$PACKAGE_DIR" 731c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner fail_panic "Could not create package directory: $PACKAGE_DIR" 741c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner FLAGS=$FLAGS" --package-dir=\"$PACKAGE_DIR\"" 751c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfi 761c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerFLAGS=$FLAGS" -j$NUM_JOBS" 771c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 781c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner# First, gdbserver 791c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfor ARCH in $ARCHS; do 80f6c7ce0d9e6ed9ff94d15325ea0f42573f6277cbAndrew Hsieh GDB_TOOLCHAINS=$(get_default_toolchain_name_for_arch $ARCH) 81f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner for GDB_TOOLCHAIN in $GDB_TOOLCHAINS; do 82f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner dump "Building $GDB_TOOLCHAIN gdbserver binaries..." 83f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner run $BUILDTOOLS/build-gdbserver.sh "$SRC_DIR" "$NDK_DIR" "$GDB_TOOLCHAIN" $FLAGS 84f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner fail_panic "Could not build $GDB_TOOLCHAIN gdb-server!" 85f7e74d4ece211f975f6bfc90132e26a6048b79f1David 'Digit' Turner done 861c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerdone 871c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 881c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' TurnerFLAGS=$FLAGS" --ndk-dir=\"$NDK_DIR\"" 89f3bba2e7a5623552aa505d55bdd198cab031e2bcPavel ChupinABIS=$(convert_archs_to_abis $ARCHS) 901c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 91f3bba2e7a5623552aa505d55bdd198cab031e2bcPavel ChupinFLAGS=$FLAGS" --abis=$ABIS" 92f3bba2e7a5623552aa505d55bdd198cab031e2bcPavel Chupindump "Building $ABIS gabi++ binaries..." 931c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerrun $BUILDTOOLS/build-gabi++.sh $FLAGS 941c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfail_panic "Could not build gabi++!" 951c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 96f3bba2e7a5623552aa505d55bdd198cab031e2bcPavel Chupindump "Building $ABIS stlport binaries..." 971c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerrun $BUILDTOOLS/build-stlport.sh $FLAGS 981c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfail_panic "Could not build stlport!" 991c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 100732d3dd872bf85103b3cd391a3519d0ca957a10fRay Donnellyif [ ! -z $VISIBLE_LIBGNUSTL_STATIC ]; then 101a8eee39c10f4e5a51d25e4c1d97014561d0715cdRay Donnelly GNUSTL_STATIC_VIS_FLAG=--visible-libgnustl-static 102732d3dd872bf85103b3cd391a3519d0ca957a10fRay Donnellyfi 103732d3dd872bf85103b3cd391a3519d0ca957a10fRay Donnelly 104f3bba2e7a5623552aa505d55bdd198cab031e2bcPavel Chupindump "Building $ABIS gnustl binaries..." 105a8eee39c10f4e5a51d25e4c1d97014561d0715cdRay Donnellyrun $BUILDTOOLS/build-gnu-libstdc++.sh $FLAGS $GNUSTL_STATIC_VIS_FLAG "$SRC_DIR" 1061c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfail_panic "Could not build gnustl!" 1071c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 1086b4357c565834e8fd03b00bc5e30e4f0d6e6f4daAndrew Hsiehdump "Building $ABIS libportable binaries..." 1096b4357c565834e8fd03b00bc5e30e4f0d6e6f4daAndrew Hsiehrun $BUILDTOOLS/build-libportable.sh $FLAGS 1106b4357c565834e8fd03b00bc5e30e4f0d6e6f4daAndrew Hsiehfail_panic "Could not build libportable!" 1116b4357c565834e8fd03b00bc5e30e4f0d6e6f4daAndrew Hsieh 112c8e78b09f4dd9393e70d9ddb17e67b0db572545aAndrew Hsiehdump "Building $ABIS compiler-rt binaries..." 113c8e78b09f4dd9393e70d9ddb17e67b0db572545aAndrew Hsiehrun $BUILDTOOLS/build-compiler-rt.sh $FLAGS --src-dir="$SRC_DIR/llvm-$DEFAULT_LLVM_VERSION/compiler-rt" 114c8e78b09f4dd9393e70d9ddb17e67b0db572545aAndrew Hsiehfail_panic "Could not build compiler-rt!" 115c8e78b09f4dd9393e70d9ddb17e67b0db572545aAndrew Hsieh 1161c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerif [ "$PACKAGE_DIR" ]; then 1171c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner dump "Done, see $PACKAGE_DIR" 1181c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerelse 1191c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner dump "Done" 1201c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerfi 1211c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turner 1221c663b4a2961e4c9bde69eb740327083bbc92ed8David 'Digit' Turnerexit 0 123