#!/bin/bash PPCFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -arch ppc -ggdb -DPJMEDIA_HAS_G7221_CODEC=1 -DPJMEDIA_HAS_G711_CODEC=1" PPCCC="/Applications/Xcode.app/Contents/Developer/usr/bin/gcc-4.2" PPCCXX="/Applications/Xcode.app/Contents/Developer/usr/bin/g++-4.2" PPCAR="/Applications/Xcode.app/Contents/Developer/usr/bin/ar rv" PPCRANLIB="/Applications/Xcode.app/Contents/Developer/usr/bin/ranlib" PPCHOST="ppc-apple-darwin10" PPCPATH="${PWD}/opt-ppc" PPCLDFLAGS="-arch ppc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk" I386FLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -arch i386 -ggdb -DPJMEDIA_HAS_G7221_CODEC=1 -DPJMEDIA_HAS_G711_CODEC=1" I386CC="/Applications/Xcode.app/Contents/Developer/usr/bin/gcc-4.2" I386CXX="/Applications/Xcode.app/Contents/Developer/usr/bin/g++-4.2" I386HOST="i386-apple-darwin10" I386PATH="${PWD}/opt-i386" I386LDFLAGS="-arch i386" X86_64FLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch x86_64 -ggdb -DPJMEDIA_HAS_G7221_CODEC=1 -DPJMEDIA_HAS_G711_CODEC=1" X86_64CC="/Applications/Xcode.app/Contents/Developer/usr/bin/gcc-4.2" X86_64CXX="/Applications/Xcode.app/Contents/Developer/usr/bin/g++-4.2" X86_64HOST="x86_64-apple-darwin10" X86_64PATH="${PWD}/opt-x86_64" X86_64LDFLAGS="-arch x86_64" if [ "$1" = "clean" ]; then echo "Cleaning PJProject" rm -fR pjproject-i386 pjproject-x86_64 pjproject-ppc pjproject-ios pjproject-simulator fi if [ "$1" = "ios" ]; then FINALPATH="${PWD}/opt-ios" IOSCFLAGS="-miphoneos-version-min=3.1" IOS6PATH="${PWD}/opt-ios6" IOS7PATH="${PWD}/opt-ios7" SIMULATORPATH="${PWD}/opt-simulator" echo "Copying PJProject" PJPROJECTNAME="pjproject" cp -R ${PJPROJECTNAME} ${PJPROJECTNAME}-ios6 echo "#define PJ_CONFIG_IPHONE 1" > ${PJPROJECTNAME}-ios6/pjlib/include/pj/config_site.h echo "#include " >> ${PJPROJECTNAME}-ios6/pjlib/include/pj/config_site.h echo "#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0" >> ${PJPROJECTNAME}-ios6/pjlib/include/pj/config_site.h echo "#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1" >> ${PJPROJECTNAME}-ios6/pjlib/include/pj/config_site.h OLDDIR="${PWD}" cd ${PJPROJECTNAME}-ios6 patch -p0 < "${OLDDIR}/mips_test.patch" cd "${OLDDIR}" cp -R ${PJPROJECTNAME}-ios6 ${PJPROJECTNAME}-ios7 cp -R ${PJPROJECTNAME}-ios6 ${PJPROJECTNAME}-simulator echo "Configuring PJProject" cd ${PJPROJECTNAME}-ios6 CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6" CFLAGS="${IOSCFLAGS}" ./configure-iphone --prefix="${IOS6PATH}" cd ../${PJPROJECTNAME}-ios7 CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7" CFLAGS="${IOSCFLAGS}" ./configure-iphone --prefix="${IOS7PATH}" cd ../${PJPROJECTNAME}-simulator DEVPATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer" CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc" CFLAGS="${IOSCFLAGS}" ./configure-iphone --prefix="${SIMULATORPATH}" cd ../ echo "Compiling PJProject" cd ${PJPROJECTNAME}-ios6 make dep make cd ../${PJPROJECTNAME}-ios7 make dep make cd ../${PJPROJECTNAME}-simulator make dep make cd ../ echo "Installing PJProject" cd ${PJPROJECTNAME}-ios6 make install cd ../${PJPROJECTNAME}-ios7 make install cd ../${PJPROJECTNAME}-simulator make install cd ../ echo "Making PJProject Universal" mkdir -p "${FINALPATH}/lib/pkgconfig" cp -R "${IOS6PATH}/include" "${FINALPATH}" lipo -create "${IOS6PATH}/lib/libg7221codec-arm-apple-darwin10.a" "${IOS7PATH}/lib/libg7221codec-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libg7221codec-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libg7221codec-ios.a" lipo -create "${IOS6PATH}/lib/libgsmcodec-arm-apple-darwin10.a" "${IOS7PATH}/lib/libgsmcodec-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libgsmcodec-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libgsmcodec-ios.a" lipo -create "${IOS6PATH}/lib/libilbccodec-arm-apple-darwin10.a" "${IOS7PATH}/lib/libilbccodec-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libilbccodec-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libilbccodec-ios.a" lipo -create "${IOS6PATH}/lib/libmilenage-arm-apple-darwin10.a" "${IOS7PATH}/lib/libmilenage-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libmilenage-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libmilenage-ios.a" lipo -create "${IOS6PATH}/lib/libpj-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpj-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpj-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpj-ios.a" lipo -create "${IOS6PATH}/lib/libpjlib-util-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjlib-util-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjlib-util-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjlib-util-ios.a" lipo -create "${IOS6PATH}/lib/libpjmedia-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjmedia-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjmedia-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-ios.a" lipo -create "${IOS6PATH}/lib/libpjmedia-audiodev-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjmedia-audiodev-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjmedia-audiodev-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-audiodev-ios.a" lipo -create "${IOS6PATH}/lib/libpjmedia-codec-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjmedia-codec-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjmedia-codec-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-codec-ios.a" lipo -create "${IOS6PATH}/lib/libpjnath-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjnath-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjnath-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjnath-ios.a" lipo -create "${IOS6PATH}/lib/libpjsip-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjsip-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjsip-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip-ios.a" lipo -create "${IOS6PATH}/lib/libpjsip-simple-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjsip-simple-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjsip-simple-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip-simple-ios.a" lipo -create "${IOS6PATH}/lib/libpjsip-ua-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjsip-ua-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjsip-ua-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip-ua-ios.a" lipo -create "${IOS6PATH}/lib/libpjsua-arm-apple-darwin10.a" "${IOS7PATH}/lib/libpjsua-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libpjsua-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsua-ios.a" lipo -create "${IOS6PATH}/lib/libresample-arm-apple-darwin10.a" "${IOS7PATH}/lib/libresample-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libresample-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libresample-ios.a" lipo -create "${IOS6PATH}/lib/libspeex-arm-apple-darwin10.a" "${IOS7PATH}/lib/libspeex-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libspeex-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libspeex-ios.a" lipo -create "${IOS6PATH}/lib/libsrtp-arm-apple-darwin10.a" "${IOS7PATH}/lib/libsrtp-arm-apple-darwin10.a" "${SIMULATORPATH}/lib/libsrtp-arm-apple-darwin10.a" -output "${FINALPATH}/lib/libsrtp-ios.a" fi if [ "$1" = "simulator" ]; then FINALPATH="${PWD}/opt-ios" IOSCFLAGS="-miphoneos-version-min=3.1" SIMULATORPATH="${PWD}/opt-simulator" echo "Copying PJProject" PJPROJECTNAME="pjproject" cp -R ${PJPROJECTNAME} ${PJPROJECTNAME}-simulator echo "#define PJ_CONFIG_IPHONE 1" > ${PJPROJECTNAME}-simulator/pjlib/include/pj/config_site.h echo "#include " >> ${PJPROJECTNAME}-simulator/pjlib/include/pj/config_site.h echo "#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0" >> ${PJPROJECTNAME}-simulator/pjlib/include/pj/config_site.h echo "#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1" >> ${PJPROJECTNAME}-simulator/pjlib/include/pj/config_site.h OLDDIR="${PWD}" cd ${PJPROJECTNAME}-simulator patch -p0 < "${OLDDIR}/mips_test.patch" cd "${OLDDIR}" echo "Configuring PJProject" cd ${PJPROJECTNAME}-simulator DEVPATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer" CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc" CFLAGS="${IOSCFLAGS}" ./configure-iphone --prefix="${SIMULATORPATH}" cd ../ echo "Compiling PJProject" cd ${PJPROJECTNAME}-simulator make dep make cd ../ echo "Installing PJProject" cd ${PJPROJECTNAME}-simulator make install cd ../ echo "Making PJProject Universal" mkdir -p "${FINALPATH}/lib/pkgconfig" cp -R "${SIMULATORPATH}/include" "${FINALPATH}" mv "${SIMULATORPATH}/lib/libg7221codec-arm-apple-darwin10.a" "${FINALPATH}/lib/libg7221codec-ios.a" mv "${SIMULATORPATH}/lib/libgsmcodec-arm-apple-darwin10.a" "${FINALPATH}/lib/libgsmcodec-ios.a" mv "${SIMULATORPATH}/lib/libilbccodec-arm-apple-darwin10.a" "${FINALPATH}/lib/libilbccodec-ios.a" mv "${SIMULATORPATH}/lib/libmilenage-arm-apple-darwin10.a" "${FINALPATH}/lib/libmilenage-ios.a" mv "${SIMULATORPATH}/lib/libpj-arm-apple-darwin10.a" "${FINALPATH}/lib/libpj-ios.a" mv "${SIMULATORPATH}/lib/libpjlib-util-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjlib-util-ios.a" mv "${SIMULATORPATH}/lib/libpjmedia-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjmedia-ios.a" mv "${SIMULATORPATH}/lib/libpjmedia-audiodev-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjmedia-audiodev-ios.a" mv "${SIMULATORPATH}/lib/libpjmedia-codec-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjmedia-codec-ios.a" mv "${SIMULATORPATH}/lib/libpjnath-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjnath-ios.a" mv "${SIMULATORPATH}/lib/libpjsip-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjsip-ios.a" mv "${SIMULATORPATH}/lib/libpjsip-simple-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjsip-simple-ios.a" mv "${SIMULATORPATH}/lib/libpjsip-ua-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjsip-ua-ios.a" mv "${SIMULATORPATH}/lib/libpjsua-arm-apple-darwin10.a" "${FINALPATH}/lib/libpjsua-ios.a" mv "${SIMULATORPATH}/lib/libresample-arm-apple-darwin10.a" "${FINALPATH}/lib/libresample-ios.a" mv "${SIMULATORPATH}/lib/libspeex-arm-apple-darwin10.a" "${FINALPATH}/lib/libspeex-ios.a" mv "${SIMULATORPATH}/lib/libsrtp-arm-apple-darwin10.a" "${FINALPATH}/lib/libsrtp-ios.a" fi if [ "$1" = "" ]; then FINALPATH="${PWD}/opt" echo "Copying PJProject" PJPROJECTNAME="pjproject" cp -R ${PJPROJECTNAME} ${PJPROJECTNAME}-ppc echo "#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0" > ${PJPROJECTNAME}-ppc/pjlib/include/pj/config_site.h echo "#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1" >> ${PJPROJECTNAME}-ppc/pjlib/include/pj/config_site.h cp -R ${PJPROJECTNAME}-ppc ${PJPROJECTNAME}-i386 cp -R ${PJPROJECTNAME}-ppc ${PJPROJECTNAME}-x86_64 echo "Configuring PJProject" cd ${PJPROJECTNAME}-ppc LDFLAGS="${PPCLDFLAGS}" AR="${PPCAR}" RANLIB="${PPCRANLIB}" CC="${PPCCC}" CXX="${PPCCXX}" CFLAGS="${PPCFLAGS}" CXXFLAGS="${PPCFLAGS}" ./configure --prefix="${PPCPATH}" --host="${PPCHOST}" --disable-shared --enable-static cd ../${PJPROJECTNAME}-i386 LDFLAGS="${I386LDFLAGS}" CFLAGS="${I386FLAGS}" CXXFLAGS="${I386FLAGS}" ./configure --prefix="${I386PATH}" --host="${I386HOST}" --disable-shared --enable-static cd ../${PJPROJECTNAME}-x86_64 LDFLAGS="${X86_64LDFLAGS}" CFLAGS="${X86_64FLAGS}" CXXFLAGS="${X86_64FLAGS}" ./configure --prefix="${X86_64PATH}" --host="${X86_64HOST}" --disable-shared --enable-static cd ../ echo "Compiling PJProject" cd ${PJPROJECTNAME}-ppc make dep make cd ../${PJPROJECTNAME}-i386 make dep make cd ../${PJPROJECTNAME}-x86_64 make dep make cd ../ echo "Installing PJProject" cd ${PJPROJECTNAME}-ppc make install cd ../${PJPROJECTNAME}-i386 make install cd ../${PJPROJECTNAME}-x86_64 make install cd ../ echo "Making PJProject Universal" mkdir -p "${FINALPATH}/lib/pkgconfig" cp -R "${PPCPATH}/include" "${FINALPATH}" lipo -create "${PPCPATH}/lib/libg7221codec-powerpc-apple-darwin10.a" "${I386PATH}/lib/libg7221codec-i386-apple-darwin10.a" "${X86_64PATH}/lib/libg7221codec-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libg7221codec.a" lipo -create "${PPCPATH}/lib/libgsmcodec-powerpc-apple-darwin10.a" "${I386PATH}/lib/libgsmcodec-i386-apple-darwin10.a" "${X86_64PATH}/lib/libgsmcodec-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libgsmcodec.a" lipo -create "${PPCPATH}/lib/libilbccodec-powerpc-apple-darwin10.a" "${I386PATH}/lib/libilbccodec-i386-apple-darwin10.a" "${X86_64PATH}/lib/libilbccodec-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libilbccodec.a" lipo -create "${PPCPATH}/lib/libmilenage-powerpc-apple-darwin10.a" "${I386PATH}/lib/libmilenage-i386-apple-darwin10.a" "${X86_64PATH}/lib/libmilenage-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libmilenage.a" lipo -create "${PPCPATH}/lib/libpj-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpj-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpj-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpj.a" lipo -create "${PPCPATH}/lib/libpjlib-util-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjlib-util-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjlib-util-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjlib-util.a" lipo -create "${PPCPATH}/lib/libpjmedia-audiodev-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjmedia-audiodev-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjmedia-audiodev-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-audiodev.a" lipo -create "${PPCPATH}/lib/libpjmedia-codec-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjmedia-codec-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjmedia-codec-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-codec.a" lipo -create "${PPCPATH}/lib/libpjmedia-videodev-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjmedia-videodev-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjmedia-videodev-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia-videodev.a" lipo -create "${PPCPATH}/lib/libpjmedia-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjmedia-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjmedia-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjmedia.a" lipo -create "${PPCPATH}/lib/libpjnath-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjnath-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjnath-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjnath.a" lipo -create "${PPCPATH}/lib/libpjsip-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjsip-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjsip-simple-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip-simple.a" lipo -create "${PPCPATH}/lib/libpjsip-simple-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjsip-simple-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjsip-ua-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip-ua.a" lipo -create "${PPCPATH}/lib/libpjsip-ua-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjsip-ua-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjsip-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsip.a" lipo -create "${PPCPATH}/lib/libpjsua-powerpc-apple-darwin10.a" "${I386PATH}/lib/libpjsua-i386-apple-darwin10.a" "${X86_64PATH}/lib/libpjsua-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libpjsua.a" lipo -create "${PPCPATH}/lib/libportaudio-powerpc-apple-darwin10.a" "${I386PATH}/lib/libportaudio-i386-apple-darwin10.a" "${X86_64PATH}/lib/libportaudio-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libportaudio.a" lipo -create "${PPCPATH}/lib/libresample-powerpc-apple-darwin10.a" "${I386PATH}/lib/libresample-i386-apple-darwin10.a" "${X86_64PATH}/lib/libresample-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libresample.a" lipo -create "${PPCPATH}/lib/libspeex-powerpc-apple-darwin10.a" "${I386PATH}/lib/libspeex-i386-apple-darwin10.a" "${X86_64PATH}/lib/libspeex-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libspeex.a" lipo -create "${PPCPATH}/lib/libsrtp-powerpc-apple-darwin10.a" "${I386PATH}/lib/libsrtp-i386-apple-darwin10.a" "${X86_64PATH}/lib/libsrtp-x86_64-apple-darwin10.a" -output "${FINALPATH}/lib/libsrtp.a" fi