diff options
author | Tomaz Canabrava <tomaz.canabrava@gmail.com> | 2015-12-20 12:03:05 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-12-20 08:06:29 -0800 |
commit | 105d6987595b144fbd17093157a1a059fed6afaa (patch) | |
tree | bb53cc581f4a426283e76b9586912c3704e109ae /packaging/ios/configure-for-ios.sh | |
parent | a639332edf0ac415dfc622f9e79814005731e56d (diff) | |
download | subsurface-105d6987595b144fbd17093157a1a059fed6afaa.tar.gz |
Start the iOS cross compile
The build.sh and readme files are the same as the Android ones
and I'll be changing them over time.
The configure-for-ios.sh script is a file that manages to set
everything, compilers frameworks and such, for iOS compilation.
I'll probably dissecate the configure-for-ios.sh file and put it
back on the build.sh, but not now.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'packaging/ios/configure-for-ios.sh')
-rwxr-xr-x | packaging/ios/configure-for-ios.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/packaging/ios/configure-for-ios.sh b/packaging/ios/configure-for-ios.sh new file mode 100755 index 000000000..1624bc391 --- /dev/null +++ b/packaging/ios/configure-for-ios.sh @@ -0,0 +1,106 @@ +#!/bin/sh +set -e + +usage () { + echo "Usage: [VARIABLE...] $(basename $0) architecture" + echo "" + echo " architecture Target architecture. [armv7|armv7s|arm64|i386|x86_64]" + echo "" + echo " VARIABLEs are:" + echo " SDKVERSION Target a specific SDK version." + echo " PREFIX Custom install prefix, useful for local installs." + echo " CHOST Configure host, set if not deducable by ARCH." + echo " SDK SDK target, set if not deducable by ARCH. [iphoneos|iphonesimulator]" + echo "" + echo " CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH" + echo "" + echo " All additional parameters are passed to the configure script." + exit 1 +} + +# Sanity checks +if [ "$#" -lt 1 ]; then + echo "Please supply an architecture name." + usage +fi + +if [ ! -x "./configure" ] ; then + echo "No configure script found." + usage +fi + +# Build architecture +export ARCH=$1 + +# Export supplied CHOST or deduce by ARCH +if [ ! -z "$CHOST" ]; then + export CHOST +else + case $ARCH in + armv7 | armv7s ) + export CHOST=arm-apple-darwin* + ;; + arm64 ) + export CHOST=aarch64-apple-darwin* + ;; + i386 | x86_64 ) + export CHOST=$ARCH-apple-darwin* + ;; + * ) + usage + ;; + esac +fi + +# Export supplied SDK or deduce by ARCH +if [ ! -z "$SDK" ]; then + export SDK +else + case $ARCH in + armv7 | armv7s | arm64 ) + export SDK=iphoneos + ;; + i386 | x86_64 ) + export SDK=iphonesimulator + ;; + * ) + usage + ;; + esac +fi + +# Export supplied SDKVERSION or use system default +if [ ! -z "$SDKVERSION" ]; then + SDKNAME=$(basename $(xcrun --sdk $SDK --show-sdk-platform-path) .platform) + export SDKVERSION + export SDKROOT=$(xcrun --sdk $SDK --show-sdk-platform-path)"/Developer/SDKs/$SDKNAME.$SDKVERSION.sdk" +else + export SDKVERSION=$(xcrun --sdk $SDK --show-sdk-version) # current version + export SDKROOT=$(xcrun --sdk $SDK --show-sdk-path) # current version +fi + +export PREFIX + +# Binaries +export CC=$(xcrun --sdk $SDK --find gcc) +export CPP=$(xcrun --sdk $SDK --find gcc)" -E" +export CXX=$(xcrun --sdk $SDK --find g++) +export LD=$(xcrun --sdk $SDK --find ld) + +# Flags +export CFLAGS="$CFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION" +export CPPFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION" +export CXXFLAGS="$CXXFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include" +export LDFLAGS="$LDFLAGS -arch $ARCH -isysroot $SDKROOT -L$PREFIX/lib" +export PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$SDKROOT/usr/lib/pkgconfig":"$PREFIX/lib/pkgconfig" + +# Remove script parameters +shift 1 + +# Run configure +./configure \ + --prefix="$PREFIX" \ + --host="$CHOST" \ + --enable-static \ + --disable-shared \ + $@ |