| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #### iPhoneOS/iOS | 
 | 2 | # | 
 | 3 | # It takes recent enough Xcode to use following two targets. It shouldn't | 
 | 4 | # be a problem by now, but if they don't work, original targets below | 
 | 5 | # that depend on manual definition of environment variables should still | 
 | 6 | # work... | 
 | 7 | # | 
 | 8 | my %targets = ( | 
 | 9 |     "ios-common" => { | 
 | 10 |         template         => 1, | 
 | 11 |         inherit_from     => [ "darwin-common" ], | 
 | 12 |         sys_id           => "iOS", | 
 | 13 |         disable          => [ "engine", "async" ], | 
 | 14 |     }, | 
 | 15 |     "ios-xcrun" => { | 
 | 16 |         inherit_from     => [ "ios-common", asm("armv4_asm") ], | 
 | 17 |         # It should be possible to go below iOS 6 and even add -arch armv6, | 
 | 18 |         # thus targeting iPhone pre-3GS, but it's assumed to be irrelevant | 
 | 19 |         # at this point. | 
 | 20 |         CC               => "xcrun -sdk iphoneos cc", | 
 | 21 |         cflags           => add("-arch armv7 -mios-version-min=6.0.0 -fno-common"), | 
 | 22 |         perlasm_scheme   => "ios32", | 
 | 23 |     }, | 
 | 24 |     "ios64-xcrun" => { | 
 | 25 |         inherit_from     => [ "ios-common", asm("aarch64_asm") ], | 
 | 26 |         CC               => "xcrun -sdk iphoneos cc", | 
 | 27 |         cflags           => add("-arch arm64 -mios-version-min=7.0.0 -fno-common"), | 
 | 28 |         bn_ops           => "SIXTY_FOUR_BIT_LONG RC4_CHAR", | 
 | 29 |         perlasm_scheme   => "ios64", | 
 | 30 |     }, | 
 | 31 |     "iossimulator-xcrun" => { | 
 | 32 |         inherit_from     => [ "ios-common" ], | 
 | 33 |         CC               => "xcrun -sdk iphonesimulator cc", | 
 | 34 |     }, | 
 | 35 | # It takes three prior-set environment variables to make it work: | 
 | 36 | # | 
 | 37 | # CROSS_COMPILE=/where/toolchain/is/usr/bin/ [note ending slash] | 
 | 38 | # CROSS_TOP=/where/SDKs/are | 
 | 39 | # CROSS_SDK=iPhoneOSx.y.sdk | 
 | 40 | # | 
 | 41 | # Exact paths vary with Xcode releases, but for couple of last ones | 
 | 42 | # they would look like this: | 
 | 43 | # | 
 | 44 | # CROSS_COMPILE=`xcode-select --print-path`/Toolchains/XcodeDefault.xctoolchain/usr/bin/ | 
 | 45 | # CROSS_TOP=`xcode-select --print-path`/Platforms/iPhoneOS.platform/Developer | 
 | 46 | # CROSS_SDK=iPhoneOS.sdk | 
 | 47 | # | 
 | 48 |     "iphoneos-cross" => { | 
 | 49 |         inherit_from     => [ "ios-common" ], | 
 | 50 |         cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common"), | 
 | 51 |     }, | 
 | 52 |     "ios-cross" => { | 
 | 53 |         inherit_from     => [ "ios-xcrun" ], | 
 | 54 |         CC               => "cc", | 
 | 55 |         cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"), | 
 | 56 |     }, | 
 | 57 |     "ios64-cross" => { | 
 | 58 |         inherit_from     => [ "ios64-xcrun" ], | 
 | 59 |         CC               => "cc", | 
 | 60 |         cflags           => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"), | 
 | 61 |     }, | 
 | 62 | ); |