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
7f149b326108cf89a5d0298729c256a5ea96a4300Miao Wangif [[ $OSTYPE == darwin* ]];
8a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesthen
9a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
10a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  DARWIN=1
11a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  SHORT_OSNAME=darwin
12a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  SONAME=dylib
13a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  # Only build arm on darwin.
14a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  TARGETS=(arm)
15a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  SYS_NAMES=(generic)
16971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hines  NUM_CORES=`sysctl -n hw.ncpu`
17a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
18a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hineselse
19a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
20a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  DARWIN=0
21a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  SHORT_OSNAME=linux
22a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  SONAME=so
23a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  # Target architectures and their system library names.
2497d6bec4a142463cbb0769484b369a0368f4480ePirama Arumuga Nainar  TARGETS=(arm x86 arm64 x86_64)
2597d6bec4a142463cbb0769484b369a0368f4480ePirama Arumuga Nainar  SYS_NAMES=(generic generic_x86 generic_arm64 generic_x86_64)
26971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hines  NUM_CORES=`cat /proc/cpuinfo | grep processor | tail -n 1 | cut -f 2 -d :`
27971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hines  NUM_CORES=$(($NUM_CORES+1))
28a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
29a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesfi
30a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
31ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen# Make sure we build all of LLVM from scratch.
32971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hinesexport FORCE_BUILD_LLVM_COMPONENTS=true
33971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hines
34651a38eb254f069f28fc99b7d180756123ff3a8aPirama Arumuga Nainar# Skip building LLVM and compiler-rt tests while updating prebuilts
35651a38eb254f069f28fc99b7d180756123ff3a8aPirama Arumuga Nainarexport SKIP_LLVM_TESTS=true
36651a38eb254f069f28fc99b7d180756123ff3a8aPirama Arumuga Nainar
37d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang# RENDERSCRIPT_V8_JAR is the generated JAVA static lib for RenderScript Support Lib.
38d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao WangRENDERSCRIPT_V8_JAR=out/target/common/obj/JAVA_LIBRARIES/android-support-v8-renderscript_intermediates/classes.jar
394581f03df1786d3a2585dabb599278b9c0257df9Miao Wang
40be96565d929af53b8009014fbec224004c64e4faStephen Hines# ANDROID_HOST_OUT is where the new prebuilts will be constructed/copied from.
41a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen HinesANDROID_HOST_OUT=$MY_ANDROID_DIR/out/host/$SHORT_OSNAME-x86/
42be96565d929af53b8009014fbec224004c64e4faStephen Hines
43be96565d929af53b8009014fbec224004c64e4faStephen Hines# HOST_LIB_DIR allows us to pick up the built librsrt_*.bc libraries.
44be96565d929af53b8009014fbec224004c64e4faStephen HinesHOST_LIB_DIR=$ANDROID_HOST_OUT/lib
45be96565d929af53b8009014fbec224004c64e4faStephen Hines
46f7dfd22fc82c01ac59f4e61683eb231d8738bab0Tim Murray# HOST_LIB64_DIR
47f7dfd22fc82c01ac59f4e61683eb231d8738bab0Tim MurrayHOST_LIB64_DIR=$ANDROID_HOST_OUT/lib64
48f7dfd22fc82c01ac59f4e61683eb231d8738bab0Tim Murray
49be96565d929af53b8009014fbec224004c64e4faStephen Hines# PREBUILTS_DIR is where we want to copy our new files to.
50be96565d929af53b8009014fbec224004c64e4faStephen HinesPREBUILTS_DIR=$MY_ANDROID_DIR/prebuilts/sdk/
51be96565d929af53b8009014fbec224004c64e4faStephen Hines
52be96565d929af53b8009014fbec224004c64e4faStephen Hinesprint_usage() {
5375e0547ec0818a6944496e43fa9d431f012705d7David Gross  echo "USAGE: $0 [-h|--help] [-j <num>] [-n|--no-build] [--no-start] [-x]"
54be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo "OPTIONS:"
5575e0547ec0818a6944496e43fa9d431f012705d7David Gross  echo "    -j <num>       : Specify parallelism for builds."
56be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo "    -h, --help     : Display this help message."
57be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo "    -n, --no-build : Skip the build step and just copy files."
5875e0547ec0818a6944496e43fa9d431f012705d7David Gross  echo "    --no-start     : Do not \"repo start\" a new branch for the copied files."
59be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo "    -x             : Display commands before they are executed."
60be96565d929af53b8009014fbec224004c64e4faStephen Hines}
61be96565d929af53b8009014fbec224004c64e4faStephen Hines
62be96565d929af53b8009014fbec224004c64e4faStephen Hinesbuild_rs_libs() {
63be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo Building for target $1
64be96565d929af53b8009014fbec224004c64e4faStephen Hines  lunch $1
65be96565d929af53b8009014fbec224004c64e4faStephen Hines  # Build the RS runtime libraries.
66971d42af252f7f3e11144e472e0ac3fc313c73a4Stephen Hines  cd $MY_ANDROID_DIR/frameworks/rs/driver/runtime && mma -j$NUM_CORES && cd - || exit 1
67a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  # Build libRSSupport.so
68262bbaea94577cdc58a73a83be1c1c04ddfdc832Miao Wang  cd $MY_ANDROID_DIR/frameworks/rs/support && mma -j$NUM_CORES && cd - || exit 2
69d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  # Build android-support-v8-renderscript.jar
70d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  # We need to explicitly do so, since JACK won't generate a jar by default.
71d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  cd $MY_ANDROID_DIR && make $RENDERSCRIPT_V8_JAR -j$NUM_CORES && cd - || exit 3
72648a1c137663ef7207684d0d7009dd5518942111Stephen Hines  # Build libcompiler-rt.a
73d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  cd $MY_ANDROID_DIR/external/compiler-rt && mma -j$NUM_CORES && cd - || exit 4
74648a1c137663ef7207684d0d7009dd5518942111Stephen Hines  # Build the blas libraries.
75d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  cd $MY_ANDROID_DIR/external/cblas && mma -j$NUM_CORES && cd - || exit 5
76be96565d929af53b8009014fbec224004c64e4faStephen Hines}
77be96565d929af53b8009014fbec224004c64e4faStephen Hines
78a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainarbuild_rstest_compatlib() {
79a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo Building for target $1
80a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  lunch $1
81a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  # Build a sample support application to ensure that all the pieces are up to date.
8289e35a551ee4b0bfcb3ede10da3b027dba1da7efJean-Luc Brouillet  cd $MY_ANDROID_DIR/frameworks/rs/tests/java_api/RSTest_CompatLib/ && mma -j$NUM_CORES FORCE_BUILD_RS_COMPAT=true && cd - || exit 6
83a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar}
84a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
85a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainarbuild_rs_host_tools() {
86a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo "Building RS host tools (llvm-rs-cc and bcc_compat)"
87a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  lunch aosp_arm64-userdebug
88a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
89a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  cd $MY_ANDROID_DIR/frameworks/compile/slang && mma -j$NUM_CORES && cd - || exit 7
90a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  cd $MY_ANDROID_DIR/frameworks/compile/libbcc && mma -j$NUM_CORES && cd - || exit 8
91a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar}
92a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
93be96565d929af53b8009014fbec224004c64e4faStephen Hines# Build everything by default
94be96565d929af53b8009014fbec224004c64e4faStephen Hinesbuild_rs=1
95be96565d929af53b8009014fbec224004c64e4faStephen Hines
9675e0547ec0818a6944496e43fa9d431f012705d7David Gross# repo start by default
9775e0547ec0818a6944496e43fa9d431f012705d7David Grossrepo_start=1
9875e0547ec0818a6944496e43fa9d431f012705d7David Gross
99be96565d929af53b8009014fbec224004c64e4faStephen Hineswhile [ $# -gt 0 ]; do
100be96565d929af53b8009014fbec224004c64e4faStephen Hines  case "$1" in
101be96565d929af53b8009014fbec224004c64e4faStephen Hines    -h|--help)
102be96565d929af53b8009014fbec224004c64e4faStephen Hines      print_usage
103be96565d929af53b8009014fbec224004c64e4faStephen Hines      exit 0
104be96565d929af53b8009014fbec224004c64e4faStephen Hines      ;;
10575e0547ec0818a6944496e43fa9d431f012705d7David Gross    -j)
10675e0547ec0818a6944496e43fa9d431f012705d7David Gross      if [[ $# -gt 1 && "$2" =~  ^[0-9]+$ ]]; then
10775e0547ec0818a6944496e43fa9d431f012705d7David Gross        NUM_CORES="$2"
10875e0547ec0818a6944496e43fa9d431f012705d7David Gross        shift
10975e0547ec0818a6944496e43fa9d431f012705d7David Gross      else
11075e0547ec0818a6944496e43fa9d431f012705d7David Gross        echo Expected numeric argument after "$1"
11175e0547ec0818a6944496e43fa9d431f012705d7David Gross        print_usage
11275e0547ec0818a6944496e43fa9d431f012705d7David Gross        exit 99
11375e0547ec0818a6944496e43fa9d431f012705d7David Gross      fi
11475e0547ec0818a6944496e43fa9d431f012705d7David Gross      ;;
115be96565d929af53b8009014fbec224004c64e4faStephen Hines    -n|--no-build)
116be96565d929af53b8009014fbec224004c64e4faStephen Hines      build_rs=0
117be96565d929af53b8009014fbec224004c64e4faStephen Hines      ;;
11875e0547ec0818a6944496e43fa9d431f012705d7David Gross    --no-start)
11975e0547ec0818a6944496e43fa9d431f012705d7David Gross      repo_start=0
12075e0547ec0818a6944496e43fa9d431f012705d7David Gross      ;;
121be96565d929af53b8009014fbec224004c64e4faStephen Hines    -x)
122be96565d929af53b8009014fbec224004c64e4faStephen Hines      # set lets us enable bash -x mode.
123be96565d929af53b8009014fbec224004c64e4faStephen Hines      set -x
124be96565d929af53b8009014fbec224004c64e4faStephen Hines      ;;
125be96565d929af53b8009014fbec224004c64e4faStephen Hines    *)
126be96565d929af53b8009014fbec224004c64e4faStephen Hines      echo Unknown argument: "$1"
127be96565d929af53b8009014fbec224004c64e4faStephen Hines      print_usage
128be96565d929af53b8009014fbec224004c64e4faStephen Hines      exit 99
129be96565d929af53b8009014fbec224004c64e4faStephen Hines      break
130be96565d929af53b8009014fbec224004c64e4faStephen Hines      ;;
131be96565d929af53b8009014fbec224004c64e4faStephen Hines  esac
132be96565d929af53b8009014fbec224004c64e4faStephen Hines  shift
133be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone
134be96565d929af53b8009014fbec224004c64e4faStephen Hines
135be96565d929af53b8009014fbec224004c64e4faStephen Hinesif [ $build_rs -eq 1 ]; then
136be96565d929af53b8009014fbec224004c64e4faStephen Hines
137be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
138be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo !!! BUILDING RS PREBUILTS !!!
139be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
140be96565d929af53b8009014fbec224004c64e4faStephen Hines
14175e0547ec0818a6944496e43fa9d431f012705d7David Gross  echo "Using $NUM_CORES cores"
14275e0547ec0818a6944496e43fa9d431f012705d7David Gross
143be96565d929af53b8009014fbec224004c64e4faStephen Hines  source build/envsetup.sh
144be96565d929af53b8009014fbec224004c64e4faStephen Hines
145a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  build_rs_host_tools
146a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
147be96565d929af53b8009014fbec224004c64e4faStephen Hines  for t in ${TARGETS[@]}; do
148be96565d929af53b8009014fbec224004c64e4faStephen Hines    build_rs_libs aosp_${t}-userdebug
149be96565d929af53b8009014fbec224004c64e4faStephen Hines  done
150be96565d929af53b8009014fbec224004c64e4faStephen Hines
151be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo DONE BUILDING RS PREBUILTS
152be96565d929af53b8009014fbec224004c64e4faStephen Hines
153be96565d929af53b8009014fbec224004c64e4faStephen Hineselse
154be96565d929af53b8009014fbec224004c64e4faStephen Hines
155be96565d929af53b8009014fbec224004c64e4faStephen Hines  echo SKIPPING BUILD OF RS PREBUILTS
156be96565d929af53b8009014fbec224004c64e4faStephen Hines
157be96565d929af53b8009014fbec224004c64e4faStephen Hinesfi
158be96565d929af53b8009014fbec224004c64e4faStephen Hines
159be96565d929af53b8009014fbec224004c64e4faStephen Hinescd $PREBUILTS_DIR || exit 3
16075e0547ec0818a6944496e43fa9d431f012705d7David Gross
16175e0547ec0818a6944496e43fa9d431f012705d7David Gross# Verify that project is "clean"
16275e0547ec0818a6944496e43fa9d431f012705d7David Grossif [ `git status --short --untracked-files=no | wc -l` -ne 0 ]; then
16375e0547ec0818a6944496e43fa9d431f012705d7David Gross  echo $PREBUILTS_DIR contains modified files -- aborting.
16475e0547ec0818a6944496e43fa9d431f012705d7David Gross  git status --untracked-files=no
16575e0547ec0818a6944496e43fa9d431f012705d7David Gross  exit 1
16675e0547ec0818a6944496e43fa9d431f012705d7David Grossfi
16775e0547ec0818a6944496e43fa9d431f012705d7David Gross
16875e0547ec0818a6944496e43fa9d431f012705d7David Grossif [ $repo_start -eq 1 ]; then
16975e0547ec0818a6944496e43fa9d431f012705d7David Gross  DATE=`date +%Y%m%d`
17075e0547ec0818a6944496e43fa9d431f012705d7David Gross  repo start pb_$DATE .
17175e0547ec0818a6944496e43fa9d431f012705d7David Gross  if [ $? -ne 0 ]; then
17275e0547ec0818a6944496e43fa9d431f012705d7David Gross    echo repo start failed -- aborting.
17375e0547ec0818a6944496e43fa9d431f012705d7David Gross    exit 1
17475e0547ec0818a6944496e43fa9d431f012705d7David Gross  fi
17575e0547ec0818a6944496e43fa9d431f012705d7David Grossfi
176be96565d929af53b8009014fbec224004c64e4faStephen Hines
177a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines# Don't copy device prebuilts on Darwin. We don't need/use them.
178a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesif [ $DARWIN -eq 0 ]; then
179a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  for i in $(seq 0 $((${#TARGETS[@]} - 1))); do
180a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines    t=${TARGETS[$i]}
181648a1c137663ef7207684d0d7009dd5518942111Stephen Hines    sys_name=${SYS_NAMES[$i]}
182d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang    case "$sys_name" in
183648a1c137663ef7207684d0d7009dd5518942111Stephen Hines      *64)
184648a1c137663ef7207684d0d7009dd5518942111Stephen Hines        sys_lib_dir=$MY_ANDROID_DIR/out/target/product/$sys_name/system/lib64
185648a1c137663ef7207684d0d7009dd5518942111Stephen Hines        ;;
186648a1c137663ef7207684d0d7009dd5518942111Stephen Hines      *)
187648a1c137663ef7207684d0d7009dd5518942111Stephen Hines        sys_lib_dir=$MY_ANDROID_DIR/out/target/product/$sys_name/system/lib
188648a1c137663ef7207684d0d7009dd5518942111Stephen Hines        ;;
189648a1c137663ef7207684d0d7009dd5518942111Stephen Hines    esac
190ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen    obj_lib_dir=$MY_ANDROID_DIR/out/target/product/$sys_name/obj/SHARED_LIBRARIES
191648a1c137663ef7207684d0d7009dd5518942111Stephen Hines    obj_static_lib_dir=$MY_ANDROID_DIR/out/target/product/$sys_name/obj/STATIC_LIBRARIES
192648a1c137663ef7207684d0d7009dd5518942111Stephen Hines
193a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines    for a in `find renderscript/lib/$t -name \*.so`; do
194a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines      file=`basename $a`
195ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen      name="${file%.*}"
196ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen      cp $obj_lib_dir/${name}_intermediates/$file $a || exit 4
197a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines    done
198a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines
199a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines    for a in `find renderscript/lib/$t -name \*.bc`; do
200a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines      file=`basename $a`
201f7dfd22fc82c01ac59f4e61683eb231d8738bab0Tim Murray      cp `find $HOST_LIB_DIR $HOST_LIB64_DIR $sys_lib_dir $obj_lib_dir -name $file | head -1` $a || exit 5
202a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines    done
203648a1c137663ef7207684d0d7009dd5518942111Stephen Hines
204648a1c137663ef7207684d0d7009dd5518942111Stephen Hines    for a in `find renderscript/lib/$t -name \*.a`; do
205648a1c137663ef7207684d0d7009dd5518942111Stephen Hines      file=`basename $a`
206ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen      name="${file%.*}"
207ed2d4bd3c4f3c06698003e56a262a3eee92d3d73Dan Willemsen      cp $obj_static_lib_dir/${name}_intermediates/$file $a || exit 4
208648a1c137663ef7207684d0d7009dd5518942111Stephen Hines    done
209648a1c137663ef7207684d0d7009dd5518942111Stephen Hines
210be96565d929af53b8009014fbec224004c64e4faStephen Hines  done
211be96565d929af53b8009014fbec224004c64e4faStephen Hines
212a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  # javalib.jar
213d0c45801692f4ae7b90a923ed1c57a3ec8ed4cb2Miao Wang  cp $MY_ANDROID_DIR/$RENDERSCRIPT_V8_JAR renderscript/lib/javalib.jar
214be96565d929af53b8009014fbec224004c64e4faStephen Hines
215a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesfi
216be96565d929af53b8009014fbec224004c64e4faStephen Hines
217be96565d929af53b8009014fbec224004c64e4faStephen Hines# Copy header files for compilers
218be96565d929af53b8009014fbec224004c64e4faStephen Hinescp $MY_ANDROID_DIR/external/clang/lib/Headers/*.h renderscript/clang-include
2192a85b6b9d6f9cb8f1b20d573c1c5ceafe901b011Jean-Luc Brouilletcp $MY_ANDROID_DIR/frameworks/rs/script_api/include/* renderscript/include
220be96565d929af53b8009014fbec224004c64e4faStephen Hines
221be96565d929af53b8009014fbec224004c64e4faStephen Hines
222a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines# Host-specific tools (bin/ and lib/)
223be96565d929af53b8009014fbec224004c64e4faStephen HinesTOOLS_BIN="
224be96565d929af53b8009014fbec224004c64e4faStephen Hinesbcc_compat
225be96565d929af53b8009014fbec224004c64e4faStephen Hinesllvm-rs-cc
226be96565d929af53b8009014fbec224004c64e4faStephen Hines"
227be96565d929af53b8009014fbec224004c64e4faStephen Hines
228be96565d929af53b8009014fbec224004c64e4faStephen HinesTOOLS_LIB="
229a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hineslibbcc.$SONAME
230a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hineslibbcinfo.$SONAME
23142dccd19fc9ffa187eadc3704d6c3d3e4a620330Pirama Arumuga Nainarlibclang_android.$SONAME
2321baebcdcb2f1f3d794c837166b925538fcd28acbStephen Hineslibc++.$SONAME
23342dccd19fc9ffa187eadc3704d6c3d3e4a620330Pirama Arumuga NainarlibLLVM_android.$SONAME
234be96565d929af53b8009014fbec224004c64e4faStephen Hines"
235be96565d929af53b8009014fbec224004c64e4faStephen Hines
236f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga NainarTOOLS_LIB32="libc++.$SONAME"
237f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar
238be96565d929af53b8009014fbec224004c64e4faStephen Hinesfor a in $TOOLS_BIN; do
239f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  cp $ANDROID_HOST_OUT/bin/$a tools/$SHORT_OSNAME/bin
240f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  strip tools/$SHORT_OSNAME/bin/$a
241be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone
242be96565d929af53b8009014fbec224004c64e4faStephen Hines
243be96565d929af53b8009014fbec224004c64e4faStephen Hinesfor a in $TOOLS_LIB; do
244f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  cp $HOST_LIB64_DIR/$a tools/$SHORT_OSNAME/lib64
245f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  strip tools/$SHORT_OSNAME/lib64/$a
246f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainardone
247f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar
248f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainarfor a in $TOOLS_LIB32; do
249f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  cp $HOST_LIB_DIR/$a tools/$SHORT_OSNAME/lib
250f562784573ebf580bc0c691509922b292e71b1d2Pirama Arumuga Nainar  strip tools/$SHORT_OSNAME/lib/$a
251be96565d929af53b8009014fbec224004c64e4faStephen Hinesdone
252be96565d929af53b8009014fbec224004c64e4faStephen Hines
253a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainarif [ $build_rs -eq 1 ]; then
254a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
255a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo BUILDING RSTest_CompatLib with the new prebuilts
256a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
257a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo "Using $NUM_CORES cores"
258a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
259a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  source $MY_ANDROID_DIR/build/envsetup.sh
260a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
261a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  for t in ${TARGETS[@]}; do
262a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar    build_rstest_compatlib aosp_${t}-userdebug
263a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  done
264a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
265a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo DONE BUILDING RSTest_CompatLib
266a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
267a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainarelse
268a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
269a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar  echo SKIPPING BUILD OF RSTest_CompatLib
270a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
271a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainarfi
272a60ca5da7314f679cc4c0c068c6430d98c4eb471Pirama Arumuga Nainar
273a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesif [ $DARWIN -eq 0 ]; then
274a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hines  echo "DON'T FORGET TO UPDATE THE DARWIN COMPILER PREBUILTS!!!"
275a3957aa5ce87ce28fccc758b8410528c2cad0c41Stephen Hinesfi
276