git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4738 ed5197a5-7fde-0310-b194-c3ffbd925b24
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| ANDROID_NDK=~/Android/Sdk/ndk/23.1.7779620
 | |
| OPENSSL_VERSION=3.2.0
 | |
| 
 | |
| API_LEVEL=24
 | |
| 
 | |
| BUILD_DIR=out/openssl_android_build
 | |
| 
 | |
| BUILD_TARGETS="x86_64 x86 arm64-v8a armeabi-v7a"
 | |
| 
 | |
| rm -rfv openssl-${OPENSSL_VERSION}
 | |
| 
 | |
| if [ ! -d openssl-${OPENSSL_VERSION} ]
 | |
| then
 | |
|     if [ ! -f openssl-${OPENSSL_VERSION}.tar.gz ]
 | |
|     then
 | |
|         wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz || exit 128
 | |
|     fi
 | |
|     tar xzf openssl-${OPENSSL_VERSION}.tar.gz || exit 128
 | |
| fi
 | |
| WORK_DIR=openssl-${OPENSSL_VERSION}
 | |
| 
 | |
| ##### export ndk directory. Required by openssl-build-scripts #####
 | |
| export ANDROID_NDK
 | |
| 
 | |
| ##### build-function #####
 | |
| build_the_thing() {
 | |
|     TOOLCHAIN=$ANDROID_NDK/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-cmp
 | |
|         no-cms
 | |
|         no-comp
 | |
|         no-deprecated
 | |
|         no-dgram
 | |
|         no-docs
 | |
|         no-dsa
 | |
|         no-dso
 | |
|         no-dtls
 | |
|         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-ssl3
 | |
|         no-ssl-trace
 | |
|         no-stdio
 | |
|         no-tests
 | |
|         no-thread-pool
 | |
|         no-threads
 | |
|         no-trace
 | |
|         no-ui-console
 | |
|         no-uplink
 | |
|         no-weak-ssl-ciphers
 | |
|         no-zlib
 | |
|         -Os
 | |
|         -DOPENSSL_SMALL_FOOTPRINT"
 | |
|     echo "./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld" && \
 | |
|     ./Configure $SSL_TARGET $OPTIONS $GLOBAL_OPTIONS -fuse-ld=$TOOLCHAIN/bin/ld no-tests && \
 | |
|     make clean && \
 | |
|     make build_generated && \
 | |
|     make libcrypto.a libssl.a || exit 128
 | |
| }
 | |
| 
 | |
| ##### set variables according to build-tagret #####
 | |
| for build_target in $BUILD_TARGETS
 | |
| do
 | |
|     echo "Building $build_target"
 | |
|     cd $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
 | |
|     cd ..
 | |
| #### copy libraries and includes to output-directory #####
 | |
|     echo WORK_DIR=$WORK_DIR
 | |
|     rm -rf deps/openssl/android/$build_target/
 | |
|     mkdir -p deps/openssl/android/$build_target/usr/local/include
 | |
|     mkdir -p deps/openssl/android/$build_target/usr/local/lib/
 | |
|     cp -R $WORK_DIR/include/* deps/openssl/android/$build_target/usr/local/include/
 | |
|     cp $WORK_DIR/*.a deps/openssl/android/$build_target/usr/local/lib/
 | |
| done
 | |
| 
 | |
| echo Success
 |