update_rs_prebuilts.sh revision f38dea949f87ce49d12605ec24af09eb8d68fcb1
1be96565d929af53b8009014fbec224004c64e4faStephen Hines#!/bin/bash 2be96565d929af53b8009014fbec224004c64e4faStephen Hines 3be96565d929af53b8009014fbec224004c64e4faStephen Hines# We are currently in frameworks/rs, so compute our top-level directory. 4be96565d929af53b8009014fbec224004c64e4faStephen HinesMY_ANDROID_DIR=$PWD/../../ 5be96565d929af53b8009014fbec224004c64e4faStephen Hinescd $MY_ANDROID_DIR 6be96565d929af53b8009014fbec224004c64e4faStephen Hines 7be96565d929af53b8009014fbec224004c64e4faStephen Hines# ANDROID_HOST_OUT is where the new prebuilts will be constructed/copied from. 8be96565d929af53b8009014fbec224004c64e4faStephen HinesANDROID_HOST_OUT=$MY_ANDROID_DIR/out/host/linux-x86/ 9be96565d929af53b8009014fbec224004c64e4faStephen Hines 10be96565d929af53b8009014fbec224004c64e4faStephen Hines# HOST_LIB_DIR allows us to pick up the built librsrt_*.bc libraries. 11be96565d929af53b8009014fbec224004c64e4faStephen HinesHOST_LIB_DIR=$ANDROID_HOST_OUT/lib 12be96565d929af53b8009014fbec224004c64e4faStephen Hines 13be96565d929af53b8009014fbec224004c64e4faStephen Hines# PREBUILTS_DIR is where we want to copy our new files to. 14be96565d929af53b8009014fbec224004c64e4faStephen HinesPREBUILTS_DIR=$MY_ANDROID_DIR/prebuilts/sdk/ 15be96565d929af53b8009014fbec224004c64e4faStephen Hines 16be96565d929af53b8009014fbec224004c64e4faStephen Hines# Target architectures and their system library names. 17be96565d929af53b8009014fbec224004c64e4faStephen HinesTARGETS=(arm mips x86) 18be96565d929af53b8009014fbec224004c64e4faStephen HinesSYS_NAMES=(generic generic_mips generic_x86) 19be96565d929af53b8009014fbec224004c64e4faStephen Hines 20be96565d929af53b8009014fbec224004c64e4faStephen Hinesprint_usage() { 21be96565d929af53b8009014fbec224004c64e4faStephen Hines echo "USAGE: $0 [-h|--help] [-n|--no-build] [-x]" 22be96565d929af53b8009014fbec224004c64e4faStephen Hines echo "OPTIONS:" 23be96565d929af53b8009014fbec224004c64e4faStephen Hines echo " -h, --help : Display this help message." 24be96565d929af53b8009014fbec224004c64e4faStephen Hines echo " -n, --no-build : Skip the build step and just copy files." 25be96565d929af53b8009014fbec224004c64e4faStephen Hines echo " -x : Display commands before they are executed." 26be96565d929af53b8009014fbec224004c64e4faStephen Hines} 27be96565d929af53b8009014fbec224004c64e4faStephen Hines 28be96565d929af53b8009014fbec224004c64e4faStephen Hinesbuild_rs_libs() { 29be96565d929af53b8009014fbec224004c64e4faStephen Hines echo Building for target $1 30be96565d929af53b8009014fbec224004c64e4faStephen Hines lunch $1 31be96565d929af53b8009014fbec224004c64e4faStephen Hines # Build the RS runtime libraries. 32be96565d929af53b8009014fbec224004c64e4faStephen Hines cd $MY_ANDROID_DIR/frameworks/rs/driver/runtime && mma -j32 && cd - || exit 1 33be96565d929af53b8009014fbec224004c64e4faStephen Hines # Build a sample support application to ensure that all the pieces are up to date. 34be96565d929af53b8009014fbec224004c64e4faStephen Hines cd $MY_ANDROID_DIR/frameworks/rs/java/tests/RSTest_CompatLib/ && mma -j32 && cd - || exit 2 35f38dea949f87ce49d12605ec24af09eb8d68fcb1Tim Murray # Build bcc_compat. 36f38dea949f87ce49d12605ec24af09eb8d68fcb1Tim Murray cd $MY_ANDROID_DIR/frameworks/compile/libbcc/ && mma -j32 && cd - || exit 3 37f38dea949f87ce49d12605ec24af09eb8d68fcb1Tim Murray 38be96565d929af53b8009014fbec224004c64e4faStephen Hines} 39be96565d929af53b8009014fbec224004c64e4faStephen Hines 40be96565d929af53b8009014fbec224004c64e4faStephen Hines# Build everything by default 41be96565d929af53b8009014fbec224004c64e4faStephen Hinesbuild_rs=1 42be96565d929af53b8009014fbec224004c64e4faStephen Hines 43be96565d929af53b8009014fbec224004c64e4faStephen Hineswhile [ $# -gt 0 ]; do 44be96565d929af53b8009014fbec224004c64e4faStephen Hines case "$1" in 45be96565d929af53b8009014fbec224004c64e4faStephen Hines -h|--help) 46be96565d929af53b8009014fbec224004c64e4faStephen Hines print_usage 47be96565d929af53b8009014fbec224004c64e4faStephen Hines exit 0 48be96565d929af53b8009014fbec224004c64e4faStephen Hines ;; 49be96565d929af53b8009014fbec224004c64e4faStephen Hines -n|--no-build) 50be96565d929af53b8009014fbec224004c64e4faStephen Hines build_rs=0 51be96565d929af53b8009014fbec224004c64e4faStephen Hines ;; 52be96565d929af53b8009014fbec224004c64e4faStephen Hines -x) 53be96565d929af53b8009014fbec224004c64e4faStephen Hines # set lets us enable bash -x mode. 54be96565d929af53b8009014fbec224004c64e4faStephen Hines set -x 55be96565d929af53b8009014fbec224004c64e4faStephen Hines ;; 56be96565d929af53b8009014fbec224004c64e4faStephen Hines *) 57be96565d929af53b8009014fbec224004c64e4faStephen Hines echo Unknown argument: "$1" 58be96565d929af53b8009014fbec224004c64e4faStephen Hines print_usage 59be96565d929af53b8009014fbec224004c64e4faStephen Hines exit 99 60be96565d929af53b8009014fbec224004c64e4faStephen Hines break 61be96565d929af53b8009014fbec224004c64e4faStephen Hines ;; 62be96565d929af53b8009014fbec224004c64e4faStephen Hines esac 63be96565d929af53b8009014fbec224004c64e4faStephen Hines shift 64be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone 65be96565d929af53b8009014fbec224004c64e4faStephen Hines 66be96565d929af53b8009014fbec224004c64e4faStephen Hinesif [ $build_rs -eq 1 ]; then 67be96565d929af53b8009014fbec224004c64e4faStephen Hines 68be96565d929af53b8009014fbec224004c64e4faStephen Hines echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 69be96565d929af53b8009014fbec224004c64e4faStephen Hines echo !!! BUILDING RS PREBUILTS !!! 70be96565d929af53b8009014fbec224004c64e4faStephen Hines echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 71be96565d929af53b8009014fbec224004c64e4faStephen Hines 72be96565d929af53b8009014fbec224004c64e4faStephen Hines source build/envsetup.sh 73be96565d929af53b8009014fbec224004c64e4faStephen Hines 74be96565d929af53b8009014fbec224004c64e4faStephen Hines for t in ${TARGETS[@]}; do 75be96565d929af53b8009014fbec224004c64e4faStephen Hines build_rs_libs aosp_${t}-userdebug 76be96565d929af53b8009014fbec224004c64e4faStephen Hines done 77be96565d929af53b8009014fbec224004c64e4faStephen Hines 78be96565d929af53b8009014fbec224004c64e4faStephen Hines echo DONE BUILDING RS PREBUILTS 79be96565d929af53b8009014fbec224004c64e4faStephen Hines 80be96565d929af53b8009014fbec224004c64e4faStephen Hineselse 81be96565d929af53b8009014fbec224004c64e4faStephen Hines 82be96565d929af53b8009014fbec224004c64e4faStephen Hines echo SKIPPING BUILD OF RS PREBUILTS 83be96565d929af53b8009014fbec224004c64e4faStephen Hines 84be96565d929af53b8009014fbec224004c64e4faStephen Hinesfi 85be96565d929af53b8009014fbec224004c64e4faStephen Hines 86be96565d929af53b8009014fbec224004c64e4faStephen HinesDATE=`date +%Y%m%d` 87be96565d929af53b8009014fbec224004c64e4faStephen Hines 88be96565d929af53b8009014fbec224004c64e4faStephen Hinescd $PREBUILTS_DIR || exit 3 89be96565d929af53b8009014fbec224004c64e4faStephen Hinesrepo start pb_$DATE . 90be96565d929af53b8009014fbec224004c64e4faStephen Hines 91be96565d929af53b8009014fbec224004c64e4faStephen Hinesfor i in $(seq 0 $((${#TARGETS[@]} - 1))); do 92be96565d929af53b8009014fbec224004c64e4faStephen Hines t=${TARGETS[$i]} 93be96565d929af53b8009014fbec224004c64e4faStephen Hines sys_lib_dir=$MY_ANDROID_DIR/out/target/product/${SYS_NAMES[$i]}/system/lib 94be96565d929af53b8009014fbec224004c64e4faStephen Hines for a in `find renderscript/lib/$t -name \*.so`; do 95be96565d929af53b8009014fbec224004c64e4faStephen Hines file=`basename $a` 96be96565d929af53b8009014fbec224004c64e4faStephen Hines cp `find $sys_lib_dir -name $file` $a || exit 4 97be96565d929af53b8009014fbec224004c64e4faStephen Hines done 98be96565d929af53b8009014fbec224004c64e4faStephen Hines 99be96565d929af53b8009014fbec224004c64e4faStephen Hines for a in `find renderscript/lib/$t -name \*.bc`; do 100be96565d929af53b8009014fbec224004c64e4faStephen Hines file=`basename $a` 101be96565d929af53b8009014fbec224004c64e4faStephen Hines cp `find $HOST_LIB_DIR $sys_lib_dir -name $file` $a || exit 5 102be96565d929af53b8009014fbec224004c64e4faStephen Hines done 103be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone 104be96565d929af53b8009014fbec224004c64e4faStephen Hines 105be96565d929af53b8009014fbec224004c64e4faStephen Hines# general 106be96565d929af53b8009014fbec224004c64e4faStephen Hines# javalib.jar 107be96565d929af53b8009014fbec224004c64e4faStephen Hinescp $MY_ANDROID_DIR/out/target/common/obj/JAVA_LIBRARIES/android-support-v8-renderscript_intermediates/javalib.jar renderscript/lib 108be96565d929af53b8009014fbec224004c64e4faStephen Hines 109be96565d929af53b8009014fbec224004c64e4faStephen Hines# Copy header files for compilers 110be96565d929af53b8009014fbec224004c64e4faStephen Hinescp $MY_ANDROID_DIR/external/clang/lib/Headers/*.h renderscript/clang-include 111be96565d929af53b8009014fbec224004c64e4faStephen Hinescp $MY_ANDROID_DIR/frameworks/rs/scriptc/* renderscript/include 112be96565d929af53b8009014fbec224004c64e4faStephen Hines 113be96565d929af53b8009014fbec224004c64e4faStephen Hines 114be96565d929af53b8009014fbec224004c64e4faStephen Hines# Linux-specific tools (bin/ and lib/) 115be96565d929af53b8009014fbec224004c64e4faStephen HinesTOOLS_BIN=" 116be96565d929af53b8009014fbec224004c64e4faStephen Hinesbcc_compat 117be96565d929af53b8009014fbec224004c64e4faStephen Hinesllvm-rs-cc 118be96565d929af53b8009014fbec224004c64e4faStephen Hines" 119be96565d929af53b8009014fbec224004c64e4faStephen Hines 120be96565d929af53b8009014fbec224004c64e4faStephen HinesTOOLS_LIB=" 121be96565d929af53b8009014fbec224004c64e4faStephen Hineslibbcc.so 122be96565d929af53b8009014fbec224004c64e4faStephen Hineslibbcinfo.so 123be96565d929af53b8009014fbec224004c64e4faStephen Hineslibclang.so 124be96565d929af53b8009014fbec224004c64e4faStephen HineslibLLVM.so 125be96565d929af53b8009014fbec224004c64e4faStephen Hines" 126be96565d929af53b8009014fbec224004c64e4faStephen Hines 127be96565d929af53b8009014fbec224004c64e4faStephen Hinesfor a in $TOOLS_BIN; do 128be96565d929af53b8009014fbec224004c64e4faStephen Hines cp $ANDROID_HOST_OUT/bin/$a tools/linux/ 129be96565d929af53b8009014fbec224004c64e4faStephen Hines strip tools/linux/$a 130be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone 131be96565d929af53b8009014fbec224004c64e4faStephen Hines 132be96565d929af53b8009014fbec224004c64e4faStephen Hinesfor a in $TOOLS_LIB; do 133be96565d929af53b8009014fbec224004c64e4faStephen Hines cp $ANDROID_HOST_OUT/lib/$a tools/linux/ 134be96565d929af53b8009014fbec224004c64e4faStephen Hines strip tools/linux/$a 135be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone 136be96565d929af53b8009014fbec224004c64e4faStephen Hines 137be96565d929af53b8009014fbec224004c64e4faStephen Hinesecho "DON'T FORGET TO UPDATE THE DARWIN COMPILER PREBUILTS!!!" 138