xref: /aosp_15_r20/bionic/build/run-on-host.sh (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker# source this script in bash
2*8d67ca89SAndroid Build Coastguard Worker
3*8d67ca89SAndroid Build Coastguard Workersource ${ANDROID_BUILD_TOP}/build/envsetup.sh
4*8d67ca89SAndroid Build Coastguard Worker
5*8d67ca89SAndroid Build Coastguard Worker# See envsetup.sh for an example of using --dumpvars-mode to set shell variables.
6*8d67ca89SAndroid Build Coastguard Workereval "$(cd ${ANDROID_BUILD_TOP}; build/soong/soong_ui.bash --dumpvars-mode --vars="\
7*8d67ca89SAndroid Build Coastguard Worker    TARGET_ARCH \
8*8d67ca89SAndroid Build Coastguard Worker    TARGET_OUT \
9*8d67ca89SAndroid Build Coastguard Worker    TARGET_OUT_EXECUTABLES \
10*8d67ca89SAndroid Build Coastguard Worker    TARGET_OUT_DATA \
11*8d67ca89SAndroid Build Coastguard Worker    HOST_OS \
12*8d67ca89SAndroid Build Coastguard Worker    HOST_ARCH \
13*8d67ca89SAndroid Build Coastguard Worker    HOST_OUT \
14*8d67ca89SAndroid Build Coastguard Worker    ")"
15*8d67ca89SAndroid Build Coastguard Worker
16*8d67ca89SAndroid Build Coastguard Workerfunction prepare()
17*8d67ca89SAndroid Build Coastguard Worker{
18*8d67ca89SAndroid Build Coastguard Worker    local BITS=$1
19*8d67ca89SAndroid Build Coastguard Worker    shift
20*8d67ca89SAndroid Build Coastguard Worker
21*8d67ca89SAndroid Build Coastguard Worker    BENCHMARKS=${TARGET_OUT_DATA}/benchmarktest
22*8d67ca89SAndroid Build Coastguard Worker    NATIVETEST=${TARGET_OUT_DATA}/nativetest
23*8d67ca89SAndroid Build Coastguard Worker    if [ "${BITS}" = 64 ]; then
24*8d67ca89SAndroid Build Coastguard Worker        BENCHMARKS=${BENCHMARKS}64
25*8d67ca89SAndroid Build Coastguard Worker        NATIVETEST=${NATIVETEST}64
26*8d67ca89SAndroid Build Coastguard Worker    fi
27*8d67ca89SAndroid Build Coastguard Worker
28*8d67ca89SAndroid Build Coastguard Worker    if [ ${TARGET_ARCH} = x86 -o ${TARGET_ARCH} = x86_64 ]; then
29*8d67ca89SAndroid Build Coastguard Worker        m -j MODULES-IN-bionic MODULES-IN-external-icu MODULES-IN-external-mksh ${TARGET_OUT}/etc/hosts "$@"
30*8d67ca89SAndroid Build Coastguard Worker
31*8d67ca89SAndroid Build Coastguard Worker        if [ ! -d /system ]; then
32*8d67ca89SAndroid Build Coastguard Worker            echo "Attempting to create /system"
33*8d67ca89SAndroid Build Coastguard Worker            sudo mkdir -p -m 0777 /system
34*8d67ca89SAndroid Build Coastguard Worker            mkdir -p -m 0777 /system/bin
35*8d67ca89SAndroid Build Coastguard Worker            mkdir -p -m 0777 /system/lib
36*8d67ca89SAndroid Build Coastguard Worker            mkdir -p -m 0777 /system/lib64
37*8d67ca89SAndroid Build Coastguard Worker        fi
38*8d67ca89SAndroid Build Coastguard Worker        (
39*8d67ca89SAndroid Build Coastguard Worker            function make_link() {
40*8d67ca89SAndroid Build Coastguard Worker                dir=$1
41*8d67ca89SAndroid Build Coastguard Worker                tgt=$2
42*8d67ca89SAndroid Build Coastguard Worker                name=`basename ${tgt}`
43*8d67ca89SAndroid Build Coastguard Worker                src=$dir/$name
44*8d67ca89SAndroid Build Coastguard Worker                if [ -e $tgt ]; then
45*8d67ca89SAndroid Build Coastguard Worker                    ln -sfT `realpath ${tgt}` $src
46*8d67ca89SAndroid Build Coastguard Worker                fi
47*8d67ca89SAndroid Build Coastguard Worker            }
48*8d67ca89SAndroid Build Coastguard Worker            cd ${ANDROID_BUILD_TOP}
49*8d67ca89SAndroid Build Coastguard Worker            mkdir -p ${TARGET_OUT_DATA}/local/tmp
50*8d67ca89SAndroid Build Coastguard Worker            for i in ${TARGET_OUT}/bin/bootstrap/* ${TARGET_OUT}/bin/*; do
51*8d67ca89SAndroid Build Coastguard Worker                make_link /system/bin ${i}
52*8d67ca89SAndroid Build Coastguard Worker            done
53*8d67ca89SAndroid Build Coastguard Worker            ln -fs `realpath ${TARGET_OUT}/etc` /system/
54*8d67ca89SAndroid Build Coastguard Worker            for i in ${TARGET_OUT}/lib/bootstrap/* ${TARGET_OUT}/lib/*; do
55*8d67ca89SAndroid Build Coastguard Worker                make_link /system/lib ${i}
56*8d67ca89SAndroid Build Coastguard Worker            done
57*8d67ca89SAndroid Build Coastguard Worker            for i in ${TARGET_OUT}/lib64/bootstrap/* ${TARGET_OUT}/lib64/*; do
58*8d67ca89SAndroid Build Coastguard Worker                make_link /system/lib64 ${i}
59*8d67ca89SAndroid Build Coastguard Worker            done
60*8d67ca89SAndroid Build Coastguard Worker        )
61*8d67ca89SAndroid Build Coastguard Worker    fi
62*8d67ca89SAndroid Build Coastguard Worker}
63