[pjsip] updated iphone build script.

Shayne O'Neill shayne.oneill at gmail.com
Sun Aug 2 12:12:20 EDT 2009


This cross compiles to both simulator AND phone. In general follow the  
siphon instructions, but pay attention to the need for i386-xxx  
compiler linkeages. There are i686-xxxx linkeages in the SDK which  
will need to be simlinked.

This is an adaption of a generic "Compile autoconf for iphone" script  
I've found very useful

use simulator or device as a parameter

------
#!/bin/bash
find ./ -name "*.depend" | xargs rm -Rf
find ./ -name "*.o" | xargs rm -Rf
#find ./ -name "*.a" | xargs rm -Rf

################################################################################
#
# 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.
#
################################################################################



# Disallow undefined variables
set -u

rm -R a.out.dSYM
rm config.log
default_gcc_version=4.2
default_iphoneos_version=3.0
default_macos_version=10.5

#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
	carch=arm
	platform=iPhoneOS
	extra_cflags="-m${thumb_opt:-no-thumb}" # -mthumb-interwork"
	;;

     simulator )
	arch=i386
	carch=i686
	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}}"
SDK="${platform_sdk_dir}"
export CFLAGS=" -Os -gdwarf-2 -isysroot ${platform_sdk_dir} $ 
{extra_cflags}"
export LDFLAGS=" -isysroot ${platform_sdk_dir}"
export CPP="${platform_bin_dir}/cpp" #-${GCC_VERSION}"

export INCLUDE_IPHONE="${platform_sdk_dir}/System/Library/Frameworks"


pushd ${platform_dir}/usr/bin
ln -s arm-apple-darwin9-gcc-4.2.1 arm-apple-darwin9-gcc
ln -s arm-apple-darwin9-g++-4.2.1 arm-apple-darwin9-g++
ln -s ranlib armv6-apple-darwin9-ranlib
popd


export PATH=${platform_bin_dir}:${PATH}


export CFLAGS="${CFLAGS} -I${platform_dir}/usr/include/gcc/darwin/ 
4.2.1 \
	-I${platform_sdk_dir}/System/Library/Frameworks/ \
          -F${SDK}/System/Library/Frameworks"

export LDFLAGS="${LDFLAGS} -F${SDK}/System/Library/Frameworks"

echo "Variables"
echo $LDFLAGS
echo $CPP
echo

#make realclean
autoconf aconfigure.ac > aconfigure
./configure \
     --host="${arch}-apple-darwin9" \
     "$@" || exit

make dep
make

===================================
Shayne O'Neill Development
Mobile, Web and Business process integration.
shayne.oneill at gmail.com 0400247091
Ask me about how Alfresco can help your business grow.





More information about the pjsip mailing list