diff --git a/build-libssl.sh b/build-libssl.sh index 09a261b..ca58836 100755 --- a/build-libssl.sh +++ b/build-libssl.sh @@ -413,6 +413,10 @@ else echo "Using ${OPENSSL_ARCHIVE_FILE_NAME}" fi +# Set reference to custom configuration (OpenSSL 1.1.0) +# See: https://github.com/openssl/openssl/commit/afce395cba521e395e6eecdaf9589105f61e4411 +export OPENSSL_LOCAL_CONFIG_DIR="${SCRIPTDIR}/config" + # -e Abort script at first error, when a command exits with non-zero status (except in until or while loops, if-tests, list constructs) # -o pipefail Causes a pipeline to return the exit status of the last command in the pipe that returned a non-zero return value set -eo pipefail diff --git a/config/20-ios-tvos-cross.conf b/config/20-ios-tvos-cross.conf new file mode 100644 index 0000000..be525dd --- /dev/null +++ b/config/20-ios-tvos-cross.conf @@ -0,0 +1,91 @@ +## -*- mode: perl; -*- +## iOS configuration targets + +%targets = ( + ## Base settings for iOS-tvOS cross-compile + # Based on 10-main.conf: iphoneos-cross + # Add generic compiler flags + # Add embed-bitcode option if SDK version is 9 or higher + "ios-tvos-cross-base" => { + template => 1, + cflags => combine('-isysroot $(CROSS_TOP)/SDKs/$(CROSS_SDK) -fno-common', + sub { (defined($ENV{'SDKVERSION'}) && $ENV{'SDKVERSION'} =~ /^(9|[1-9][0-9]+)\./ && $disabled{shared}) + ? '-fembed-bitcode' : (); }, + ), + }, + + ## Base settings for iOS + "ios-cross-base" => { + inherit_from => [ "ios-tvos-cross-base" ], + template => 1, + cflags => add(sub { defined($ENV{'IOS_MIN_SDK_VERSION'}) ? '-mios-version-min=$(IOS_MIN_SDK_VERSION)' : '-mios-version-min=7.0'; }), + }, + + ## Base settings for tvOS + # Defines to skip functionality that uses unsupported functions + "tvos-cross-base" => { + inherit_from => [ "ios-tvos-cross-base" ], + template => 1, + cflags => add(sub { defined($ENV{'TVOS_MIN_SDK_VERSION'}) ? '-mtvos-version-min=$(TVOS_MIN_SDK_VERSION)' : '-mtvos-version-min=9.0'; }), + defines => [ "HAVE_FORK=0" ], + }, + + ## Apple iOS simulator (x86_64) + # Based on 10-main.conf: iphoneos-cross / darwin64-x86_64-cc + "ios-sim-cross-x86_64" => { + inherit_from => [ "darwin64-x86_64-cc", "ios-cross-base" ], + sys_id => "iOS", + }, + + ## Apple iOS simulator (i386) + # Based on 10-main.conf: iphoneos-cross / darwin-i386-cc + "ios-sim-cross-i386" => { + inherit_from => [ "darwin-i386-cc", "ios-cross-base" ], + sys_id => "iOS", + }, + + ## Apple iOS (arm64) + # Based on 10-main.conf: ios64-cross + "ios64-cross-arm64" => { + inherit_from => [ "darwin-common", "ios-cross-base", asm("aarch64_asm") ], + cflags => add("-arch arm64"), + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", + perlasm_scheme => "ios64", + sys_id => "iOS", + }, + + ## Apple iOS (armv7s) + # Based on 10-main.conf: ios-cross + "ios-cross-armv7s" => { + inherit_from => [ "darwin-common", "ios-cross-base", asm("armv4_asm") ], + cflags => add("-arch armv7s"), + perlasm_scheme => "ios32", + sys_id => "iOS", + }, + + ## Apple iOS (armv7) + # Based on 10-main.conf: ios-cross + "ios-cross-armv7" => { + inherit_from => [ "darwin-common", "ios-cross-base", asm("armv4_asm") ], + cflags => add("-arch armv7"), + perlasm_scheme => "ios32", + sys_id => "iOS", + }, + + ## Apple tvOS simulator (x86_64) + # Based on 10-main.conf: iphoneos-cross / darwin64-x86_64-cc + "tvos-sim-cross-x86_64" => { + inherit_from => [ "darwin64-x86_64-cc", "tvos-cross-base" ], + sys_id => "tvOS", + }, + + ## Apple tvOS (arm64) + # Based on 10-main.conf: ios64-cross + "tvos64-cross-arm64" => { + inherit_from => [ "darwin-common", "tvos-cross-base", asm("aarch64_asm") ], + cflags => add("-arch arm64"), + bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", + perlasm_scheme => "ios64", + sys_id => "tvOS", + }, +);