summaryrefslogtreecommitdiff
path: root/build_for_iphoneos_30.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build_for_iphoneos_30.sh')
-rwxr-xr-xbuild_for_iphoneos_30.sh134
1 files changed, 134 insertions, 0 deletions
diff --git a/build_for_iphoneos_30.sh b/build_for_iphoneos_30.sh
new file mode 100755
index 0000000..27088b1
--- /dev/null
+++ b/build_for_iphoneos_30.sh
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+################################################################################
+#
+# Copyright (c) 2008-2009 Christopher J. Stawarz
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+################################################################################
+
+# originally from http://pseudogreen.org/blog/build%5Fautoconfed%5Flibs%5Ffor%5Fiphone.html
+# added symbolic link in my dev like described in http://vonluck.wordpress.com/2009/09/16/mac-osx-10-6-iphone-os-3-1-simulator-linking-errors/
+# for clinkc I manually adapted the makefile and replaced 386 by 686 (based on curl config file)
+# curl built without-zlib
+
+# Disallow undefined variables
+set -u
+
+
+default_gcc_version=4.2
+default_iphoneos_version=3.0
+default_macos_version=10.6
+
+GCC_VERSION="${GCC_VERSION:-$default_gcc_version}"
+export IPHONEOS_DEPLOYMENT_TARGET="${IPHONEOS_DEPLOYMENT_TARGET:-$default_iphoneos_version}"
+export MACOSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET:-$default_macos_version}"
+
+
+usage ()
+{
+ cat >&2 << EOF
+Usage: ${0##*/} [-ht] [-p prefix] target [configure_args]
+ -h Print help message
+ -p Installation prefix (default: \$HOME/Developer/Platforms/...)
+ -t Use 16-bit Thumb instruction set (instead of 32-bit ARM)
+
+The target must be "device" or "simulator". Any additional arguments
+are passed to configure.
+
+The following environment variables affect the build process:
+
+ GCC_VERSION (default: $default_gcc_version)
+ IPHONEOS_DEPLOYMENT_TARGET (default: $default_iphoneos_version)
+ MACOSX_DEPLOYMENT_TARGET (default: $default_macos_version)
+
+EOF
+}
+
+
+while getopts ":hp:t" opt; do
+ case $opt in
+ h ) usage ; exit 0 ;;
+ p ) prefix="$OPTARG" ;;
+ t ) thumb_opt=thumb ;;
+ \? ) usage ; exit 2 ;;
+ esac
+done
+shift $(( $OPTIND - 1 ))
+
+if (( $# < 1 )); then
+ usage
+ exit 2
+fi
+
+target=$1
+shift
+
+case $target in
+
+ device )
+ arch=armv6
+ platform=iPhoneOS
+ extra_cflags="-m${thumb_opt:-no-thumb} -mthumb-interwork"
+ ;;
+
+ simulator )
+ arch=i386
+ platform=iPhoneSimulator
+ extra_cflags="-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IPHONEOS_DEPLOYMENT_TARGET%%.*}0000"
+ ;;
+
+ * )
+ usage
+ exit 2
+
+esac
+
+
+platform_dir="/Developer/Platforms/${platform}.platform/Developer"
+platform_bin_dir="${platform_dir}/usr/bin"
+platform_sdk_dir="${platform_dir}/SDKs/${platform}${IPHONEOS_DEPLOYMENT_TARGET}.sdk"
+prefix="${prefix:-${HOME}${platform_sdk_dir}}"
+
+#added some stuff so the libraries can also use already built libraries
+export LD="${platform_bin_dir}/ld"
+export CC="${platform_bin_dir}/gcc"
+export CFLAGS="-arch ${arch} -pipe -Os -gdwarf-2 -isysroot ${platform_sdk_dir} ${extra_cflags} -I${prefix}/include"
+# added -L${prefix}/lib to include built libraries
+export LDFLAGS="-arch ${arch} -L${prefix}/lib"
+export CXX="${platform_bin_dir}/g++"
+export CXXFLAGS="${CFLAGS}"
+export CPP="${platform_bin_dir}/cpp"
+export CXXCPP="${CPP}"
+# added to include pc files of built libraries
+export PKG_CONFIG_PATH="${prefix}/lib/pkgconfig"
+# added to include headers of built libraries
+
+#./configure \
+# --prefix="${prefix}" \
+# --host="${arch}-apple-darwin" \
+# --disable-shared \
+# --enable-static \
+# "$@" || exit
+
+make -f makefile.voodoo.iphone
+make -f makefile.voodoo.iphone package