#!/bin/sh # # Copyright (C) 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Rebuild all target-specific prebuilts # PROGDIR=$(dirname $0) . $PROGDIR/prebuilt-common.sh NDK_DIR=$ANDROID_NDK_ROOT register_var_option "--ndk-dir=<path>" NDK_DIR "NDK installation directory" ARCHS=$DEFAULT_ARCHS register_var_option "--arch=<list>" ARCHS "List of target archs to build for" PACKAGE_DIR= register_var_option "--package-dir=<path>" PACKAGE_DIR "Package toolchain into this directory" VISIBLE_LIBGNUSTL_STATIC= register_var_option "--visible-libgnustl-static" VISIBLE_LIBGNUSTL_STATIC "Do not use hidden visibility for libgnustl_static.a" register_jobs_option PROGRAM_PARAMETERS="<toolchain-src-dir>" PROGRAM_DESCRIPTION=\ "This script can be used to rebuild all the target NDK prebuilts at once. You need to give it the path to the toolchain source directory, as downloaded by the 'download-toolchain-sources.sh' dev-script." extract_parameters "$@" # Check toolchain source path SRC_DIR="$PARAMETERS" check_toolchain_src_dir "$SRC_DIR" # Now we can do the build BUILDTOOLS=$ANDROID_NDK_ROOT/build/tools dump "Building platforms and samples..." PACKAGE_FLAGS= if [ "$PACKAGE_DIR" ]; then PACKAGE_FLAGS="--package-dir=$PACKAGE_DIR" fi run $BUILDTOOLS/gen-platforms.sh --samples --fast-copy --dst-dir=$NDK_DIR --ndk-dir=$NDK_DIR --arch=$(spaces_to_commas $ARCHS) $PACKAGE_FLAGS fail_panic "Could not generate platforms and samples directores!" ARCHS=$(commas_to_spaces $ARCHS) FLAGS= if [ "$VERBOSE" = "yes" ]; then FLAGS=$FLAGS" --verbose" fi if [ "$VERBOSE2" = "yes" ]; then FLAGS=$FLAGS" --verbose" fi if [ "$PACKAGE_DIR" ]; then mkdir -p "$PACKAGE_DIR" fail_panic "Could not create package directory: $PACKAGE_DIR" FLAGS=$FLAGS" --package-dir=\"$PACKAGE_DIR\"" fi FLAGS=$FLAGS" -j$NUM_JOBS" # First, gdbserver for ARCH in $ARCHS; do GDB_TOOLCHAINS=$(get_default_toolchain_name_for_arch $ARCH) for GDB_TOOLCHAIN in $GDB_TOOLCHAINS; do dump "Building $GDB_TOOLCHAIN gdbserver binaries..." run $BUILDTOOLS/build-gdbserver.sh "$SRC_DIR" "$NDK_DIR" "$GDB_TOOLCHAIN" $FLAGS fail_panic "Could not build $GDB_TOOLCHAIN gdb-server!" done done FLAGS=$FLAGS" --ndk-dir=\"$NDK_DIR\"" ABIS=$(convert_archs_to_abis $ARCHS) FLAGS=$FLAGS" --abis=$ABIS" dump "Building $ABIS gabi++ binaries..." run $BUILDTOOLS/build-gabi++.sh $FLAGS fail_panic "Could not build gabi++!" dump "Building $ABIS stlport binaries..." run $BUILDTOOLS/build-stlport.sh $FLAGS fail_panic "Could not build stlport!" if [ ! -z $VISIBLE_LIBGNUSTL_STATIC ]; then FLAGS=$FLAGS" --visible-libgnustl-static" fi dump "Building $ABIS gnustl binaries..." run $BUILDTOOLS/build-gnu-libstdc++.sh $FLAGS "$SRC_DIR" fail_panic "Could not build gnustl!" dump "Building $ABIS libportable binaries..." run $BUILDTOOLS/build-libportable.sh $FLAGS fail_panic "Could not build libportable!" if [ "$PACKAGE_DIR" ]; then dump "Done, see $PACKAGE_DIR" else dump "Done" fi exit 0