dnl This Source Code Form is subject to the terms of the Mozilla Public dnl License, v. 2.0. If a copy of the MPL was not distributed with this dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. AC_DEFUN([MOZ_IOS_PATH_PROG], [ changequote({,}) _prog_name=ifelse($2, {}, `echo $1 | tr "[:upper:]" "[:lower:]"`, $2) changequote([,]) AC_CACHE_CHECK([for $_prog_name in iOS SDK], ac_cv_ios_path_$1, [ _path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null` _res=$? if test $_res -ne 0; then AC_MSG_ERROR([Could not find '$_prog_name' in the iOS SDK]) fi ac_cv_ios_path_$1=$_path ]) $1="${ac_cv_ios_path_$1}$3" ]) AC_DEFUN([MOZ_IOS_SDK], [ MOZ_ARG_WITH_STRING(ios-sdk, [ --with-ios-sdk=TYPE Type of iOS SDK to use (iphonesimulator, iphoneos) and optionally version (like iphoneos8.2)], ios_sdk=$withval) MOZ_ARG_ENABLE_STRING(ios-target, [ --enable-ios-target=VER (default=8.0) Set the minimum iOS version needed at runtime], [_IOS_TARGET=$enableval]) _IOS_TARGET_DEFAULT=8.0 case "$target" in arm*-apple-darwin*) if test -z "$ios_sdk" -o "$ios_sdk" = "yes"; then ios_sdk=iphoneos fi case "$ios_sdk" in iphoneos*) ios_target_arg="-miphoneos-version-min" ;; *) AC_MSG_ERROR([Only 'iphoneos' SDKs are valid when targeting iOS device, don't know what to do with '$ios_sdk'.]) ;; esac ;; *-apple-darwin*) ios_target_arg="-mios-simulator-version-min" case "$ios_sdk" in # Empty SDK is okay, this might be an OS X desktop build. ""|iphonesimulator*) ;; # Default to iphonesimulator yes) ios_sdk=iphonesimulator ;; *) AC_MSG_ERROR([Only 'iphonesimulator' SDKs are valid when targeting iOS simulator.]) ;; esac ;; esac if test -n "$ios_sdk"; then if test -z "$_IOS_TARGET"; then _IOS_TARGET=$_IOS_TARGET_DEFAULT ios_target_arg="${ios_target_arg}=${_IOS_TARGET}" fi # Ensure that xcrun knows where this SDK is. ios_sdk_path=`xcrun --sdk $ios_sdk --show-sdk-path 2>/dev/null` _ret=$? if test $_ret -ne 0; then AC_MSG_ERROR([iOS SDK '$ios_sdk' could not be found.]) fi MOZ_IOS=1 export HOST_CC=clang export HOST_CXX=clang++ # Add isysroot, arch, and ios target arguments case "$target_cpu" in arm*) ARGS="-arch armv7" ;; *) # Unfortunately simulator builds need this. export CROSS_COMPILE=1 ;; esac ARGS=" $ARGS -isysroot $ios_sdk_path $ios_target_arg" # Now find our tools MOZ_IOS_PATH_PROG(CC, clang, $ARGS) MOZ_IOS_PATH_PROG(CXX, clang++, $ARGS) export CPP="$CC -E" export LD="$CXX" MOZ_IOS_PATH_PROG(AR) MOZ_IOS_PATH_PROG(AS, as, $ARGS) MOZ_IOS_PATH_PROG(OTOOL) MOZ_IOS_PATH_PROG(STRIP) export PKG_CONFIG_PATH=${ios_sdk_path}/usr/lib/pkgconfig/ fi AC_SUBST(MOZ_IOS) ])