diff --git a/GNUmakefile b/GNUmakefile index add8211b..c21b992c 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1139,7 +1139,13 @@ iossimdebuggo: out/tildefriends-iossimdebug.app/tildefriends ## Build, install, ANDROID_DEPS := out/openssl/android/arm64-v8a/usr/local/lib/libssl.a $(ANDROID_DEPS): - +@ANDROID_NDK_ROOT=$(ANDROID_NDK) tools/ssl-android + +@export ANDROID_NDK_ROOT=$(ANDROID_NDK) + +@export BUILD_PLATFORM=android + +@export TOOLCHAIN=$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64 + +@PATH=$$TOOLCHAIN/x86_64-linux-android/bin:$$TOOLCHAIN/bin:$$PATH BUILD_TARGET=x86_64 SSL_TARGET=android-x86_64 OPTIONS="--static -static -ffunction-sections -fdata-sections -D__ANDROID_API__=${ANDROID_MIN_SDK_VERSION} -Wno-macro-redefined" tools/ssl-local + +@PATH=$$TOOLCHAIN/i686-linux-android/bin:$$TOOLCHAIN/bin:$$PATH BUILD_TARGET=x86 SSL_TARGET=android-x86 OPTIONS="--static -static -ffunction-sections -fdata-sections -D__ANDROID_API__=${ANDROID_MIN_SDK_VERSION} -Wno-macro-redefined" tools/ssl-local + +@PATH=$$TOOLCHAIN/arm-linux-androideabi/bin:$$TOOLCHAIN/bin:$$PATH BUILD_TARGET=armeabi-v7a SSL_TARGET=android-arm OPTIONS="--static -static -ffunction-sections -fdata-sections --target=armv7a-linux-androideabi -Wl,--fix-cortex-a8 -D__ANDROID_API__=${ANDROID_MIN_SDK_VERSION} -Wno-macro-redefined" tools/ssl-local + +@PATH=$$TOOLCHAIN/aarch64-linux-android/bin:$$TOOLCHAIN/bin:$$PATH BUILD_TARGET=arm64-v8a SSL_TARGET=android-arm64 OPTIONS="--static -static -ffunction-sections -fdata-sections -D__ANDROID_API__=${ANDROID_MIN_SDK_VERSION} -Wno-macro-redefined" tools/ssl-local $(filter $(BUILD_DIR)/android%,$(APP_OBJS)): | $(ANDROID_DEPS) ifeq ($(UNAME_S),Linux) diff --git a/tools/ssl-android b/tools/ssl-android deleted file mode 100755 index 44043adf..00000000 --- a/tools/ssl-android +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash - -if [ -z $ANDROID_NDK_ROOT ]; then - ANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 -fi - -API_LEVEL=24 - -BUILD_DIR=out/openssl_android_build - -BUILD_TARGETS="x86_64 x86 arm64-v8a armeabi-v7a" - -WORK_DIR=out/openssl-android -rm -rf $WORK_DIR -cp -arf deps/openssl_src/ $WORK_DIR - -export ANDROID_NDK_ROOT -echo ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT - -build_the_thing() { - TOOLCHAIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64 - export PATH=$TOOLCHAIN/$TRIBLE/bin:$TOOLCHAIN/bin:$PATH - echo $PATH - export GLOBAL_OPTIONS=" - no-apps - no-asm - no-async - no-autoerrinit - no-autoload-config - no-cmp - no-cms - no-comp - no-deprecated - no-dgram - no-docs - no-dsa - no-dso - no-dtls - no-dtls1 - no-dtls1-method - no-dynamic-engine - no-ec2m - no-egd - no-engine - no-err - no-filenames - no-gost - no-http - no-idea - no-legacy - no-md2 - no-md4 - no-module - no-multiblock - no-nextprotoneg - no-ocsp - no-psk - no-shared - no-sock - no-srp - no-ssl - no-ssl3 - no-ssl-trace - no-stdio - no-tests - no-thread-pool - no-threads - no-tls1 - no-tls1-method - no-trace - no-ui-console - no-uplink - no-whirlpool - no-weak-ssl-ciphers - no-zlib - -Oz - -DOPENSSL_SMALL_FOOTPRINT - -ffunction-sections - -fdata-sections" - pwd - echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS" && \ - ./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS && \ - make -s clean && \ - make -s build_generated && \ - make -s libcrypto.a libssl.a || exit 128 -} - -for build_target in $BUILD_TARGETS -do - echo "Building $build_target" - pwd - pushd $WORK_DIR || exit 128 - - case $build_target in - armeabi-v7a) - TRIBLE="arm-linux-androideabi" - OPTIONS="--target=armv7a-linux-androideabi -ffunction-sections -fdata-sections -Wl,--fix-cortex-a8 -fPIC -D__ANDROID_API__=$API_LEVEL -Wno-macro-redefined" - DESTDIR="/tmp/$BUILD_DIR/armeabi-v7a" - SSL_TARGET="android-arm" - CC=clang - ;; - x86) - TRIBLE="i686-linux-android" - OPTIONS="-fPIC -ffunction-sections -fdata-sections -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined" - DESTDIR="/tmp/$BUILD_DIR/x86" - SSL_TARGET="android-x86" - CC=clang - ;; - x86_64) - TRIBLE="x86_64-linux-android" - OPTIONS="--static -static -ffunction-sections -fdata-sections -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined" - DESTDIR="/tmp/$BUILD_DIR/x86_64" - SSL_TARGET="android-x86_64" - CC=clang - ;; - arm64-v8a) - TRIBLE="aarch64-linux-android" - OPTIONS="--static -static -ffunction-sections -fdata-sections -fPIC -D__ANDROID_API__=${API_LEVEL} -Wno-macro-redefined" - DESTDIR="/tmp/$BUILD_DIR/arm64-v8a" - SSL_TARGET="android-arm64" - CC=clang - ;; - esac - - rm -rf $DESTDIR - build_the_thing - popd - echo WORK_DIR=$WORK_DIR - rm -rf out/openssl/android/$build_target/ - mkdir -p out/openssl/android/$build_target/usr/local/include/ - mkdir -p out/openssl/android/$build_target/usr/local/lib/ - cp -R $WORK_DIR/include/* out/openssl/android/$build_target/usr/local/include/ - cp $WORK_DIR/*.a out/openssl/android/$build_target/usr/local/lib/ -done - -echo Success diff --git a/tools/ssl-local b/tools/ssl-local index f0262f6f..70b4226d 100755 --- a/tools/ssl-local +++ b/tools/ssl-local @@ -1,13 +1,15 @@ #!/usr/bin/env bash -BUILD_PLATFORM=$(uname -s) +if [[ -z $BUILD_PLATFORM ]]; then + BUILD_PLATFORM=$(uname -s) +fi if [[ -z $BUILD_TARGET ]]; then BUILD_TARGET=$(uname -m) WORK_DIR=out/openssl-local else - WORK_DIR=out/openssl-$BUILD_TARGET + WORK_DIR=out/openssl-$BUILD_PLATFORM-$BUILD_TARGET if [[ -z $SSL_TARGET ]]; then - SSL_TARGET=linux-$BUILD_TARGET + SSL_TARGET=linux-$BUILD_PLATFORM-$BUILD_TARGET fi fi