|  | # source this script in bash | 
|  |  | 
|  | source ${ANDROID_BUILD_TOP}/build/envsetup.sh | 
|  |  | 
|  | # See envsetup.sh for an example of using --dumpvars-mode to set shell variables. | 
|  | eval "$(cd ${ANDROID_BUILD_TOP}; build/soong/soong_ui.bash --dumpvars-mode --vars="\ | 
|  | TARGET_ARCH \ | 
|  | TARGET_OUT \ | 
|  | TARGET_OUT_EXECUTABLES \ | 
|  | TARGET_OUT_DATA \ | 
|  | HOST_OS \ | 
|  | HOST_ARCH \ | 
|  | HOST_OUT \ | 
|  | ")" | 
|  |  | 
|  | function prepare() | 
|  | { | 
|  | local BITS=$1 | 
|  | shift | 
|  |  | 
|  | BENCHMARKS=${TARGET_OUT_DATA}/benchmarktest | 
|  | NATIVETEST=${TARGET_OUT_DATA}/nativetest | 
|  | if [ "${BITS}" = 64 ]; then | 
|  | BENCHMARKS=${BENCHMARKS}64 | 
|  | NATIVETEST=${NATIVETEST}64 | 
|  | fi | 
|  |  | 
|  | if [ ${TARGET_ARCH} = x86 -o ${TARGET_ARCH} = x86_64 ]; then | 
|  | m -j MODULES-IN-bionic MODULES-IN-external-icu MODULES-IN-external-mksh ${TARGET_OUT}/etc/hosts "$@" | 
|  |  | 
|  | if [ ! -d /system ]; then | 
|  | echo "Attempting to create /system" | 
|  | sudo mkdir -p -m 0777 /system | 
|  | mkdir -p -m 0777 /system/bin | 
|  | mkdir -p -m 0777 /system/lib | 
|  | mkdir -p -m 0777 /system/lib64 | 
|  | fi | 
|  | ( | 
|  | function make_link() { | 
|  | dir=$1 | 
|  | tgt=$2 | 
|  | name=`basename ${tgt}` | 
|  | src=$dir/$name | 
|  | if [ -e $tgt ]; then | 
|  | ln -sfT `realpath ${tgt}` $src | 
|  | fi | 
|  | } | 
|  | cd ${ANDROID_BUILD_TOP} | 
|  | mkdir -p ${TARGET_OUT_DATA}/local/tmp | 
|  | for i in ${TARGET_OUT}/bin/bootstrap/* ${TARGET_OUT}/bin/*; do | 
|  | make_link /system/bin ${i} | 
|  | done | 
|  | ln -fs `realpath ${TARGET_OUT}/etc` /system/ | 
|  | for i in ${TARGET_OUT}/lib/bootstrap/* ${TARGET_OUT}/lib/*; do | 
|  | make_link /system/lib ${i} | 
|  | done | 
|  | for i in ${TARGET_OUT}/lib64/bootstrap/* ${TARGET_OUT}/lib64/*; do | 
|  | make_link /system/lib64 ${i} | 
|  | done | 
|  | ) | 
|  | fi | 
|  | } |