118 lines
2.7 KiB
Bash
Executable file
118 lines
2.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if (( BASH_VERSINFO[0] < 3 )); then
|
|
echo "Must be running BASH version 3 or newer!"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z $TOP ]]; then \
|
|
echo "You must do envsetup beforehand."
|
|
exit 1
|
|
fi
|
|
|
|
# We are currently in frameworks/rs, so compute our top-level directory.
|
|
MY_ANDROID_DIR="$TOP"
|
|
cd "$MY_ANDROID_DIR"
|
|
|
|
if [[ $OSTYPE != *linux* ]]; then \
|
|
echo "Only works on Linux."
|
|
exit 1
|
|
fi
|
|
|
|
SHORT_OSNAME=linux
|
|
SONAME=so
|
|
# Target architectures and their system library names.
|
|
declare -a TARGETS=(generic_armv5 aosp_arm aosp_mips aosp_x86)
|
|
declare -a ABI_NAMES=(armeabi armeabi-v7a mips x86)
|
|
declare -a SYS_NAMES=(generic_armv5 generic generic_mips generic_x86)
|
|
declare -i NUM_CORES="$(awk '/^processor/ { i++ } END { print i }' /proc/cpuinfo)"
|
|
|
|
echo "Using $NUM_CORES cores"
|
|
|
|
# Turn off the build cache and make sure we build all of LLVM from scratch.
|
|
#export ANDROID_USE_BUILDCACHE=false
|
|
|
|
# PREBUILTS_DIR is where we want to copy our new files to.
|
|
PREBUILTS_DIR="$MY_ANDROID_DIR/prebuilts/conscrypt/"
|
|
|
|
print_usage() {
|
|
echo "USAGE: $0 [-h|--help] [-n|--no-build] [-x]"
|
|
echo "OPTIONS:"
|
|
echo " -h, --help : Display this help message."
|
|
echo " -n, --no-build : Skip the build step and just copy files."
|
|
echo " -x : Display commands before they are executed."
|
|
}
|
|
|
|
build_libs() {
|
|
local t="$1"
|
|
echo Building for target $t
|
|
cd $MY_ANDROID_DIR
|
|
WITH_HOST_DALVIK=false make -j32 PRODUCT-$t-userdebug APP-conscrypt_unbundled-libconscrypt_jni || exit 1
|
|
}
|
|
|
|
# Build everything by default
|
|
build_me=1
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-h|--help)
|
|
print_usage
|
|
exit 0
|
|
;;
|
|
-n|--no-build)
|
|
build_me=0
|
|
;;
|
|
-x)
|
|
# set lets us enable bash -x mode.
|
|
set -x
|
|
;;
|
|
*)
|
|
echo Unknown argument: "$1"
|
|
print_usage
|
|
exit 99
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
declare -i i
|
|
|
|
if [ $build_me -eq 1 ]; then
|
|
|
|
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
echo !!! BUILDING CONSCRYPT PREBUILTS !!!
|
|
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
source build/envsetup.sh
|
|
|
|
for (( i=0; i < ${#TARGETS[@]}; i++ )); do
|
|
build_libs "${TARGETS[$i]}"
|
|
done
|
|
|
|
echo DONE BUILDING CONSCRYPT PREBUILTS
|
|
|
|
else
|
|
|
|
echo SKIPPING BUILD OF CONSCRYPT PREBUILTS
|
|
|
|
fi
|
|
|
|
DATE="$(date +"%Y%m%d")"
|
|
|
|
cd "$PREBUILTS_DIR" || exit 3
|
|
repo start "pb_$DATE" .
|
|
|
|
# Don't copy device prebuilts on Darwin. We don't need/use them.
|
|
for (( i=0; i < ${#TARGETS[@]}; i++ )); do
|
|
sys="${SYS_NAMES[$i]}"
|
|
abi="${ABI_NAMES[$i]}"
|
|
sys_lib_dir="$MY_ANDROID_DIR/out/target/product/$sys/system/lib"
|
|
if [[ ! -d "jni/$abi" ]]; then
|
|
mkdir -p "jni/$abi"
|
|
fi
|
|
cp "$sys_lib_dir/libconscrypt_jni.so" "jni/$abi/" || exit 4
|
|
done
|
|
|
|
# javalib.jar
|
|
cp "$MY_ANDROID_DIR/out/target/common/obj/JAVA_LIBRARIES/conscrypt_unbundled_intermediates/classes.jar" .
|