[pjsip] updated iphone build script. notes.

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


I forgot a few things.

In the autoconfigure.ac file copy the arm-darwin whatever it is  
stanza, and add a i386-darwin type stanza. Remember the goal here is  
not to make a generic mac build, but a iphone style build.

I will also note, that as it stands , 1.0.3 seems to crash on the  
iphone and damned if I can work out why. But it does work fine , on  
the iphone simulator.

Whatever the difference between the two is (well other than a  
completely different chipset) holds the hidden secret of this damn  
problem.

If anyone has ANY insight onto why iphone 3.0 software on the device  
seems hosed with pjsip, please I'd love to know, because I am  
completely bamboozled and running out of time on this contract :( :( :(

Shayne.

On 03/08/2009, at 12:12 AM, Shayne O'Neill wrote:
>
> 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.
>

===================================
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