diff options
Diffstat (limited to 'make-macosx-ub.sh')
-rwxr-xr-x | make-macosx-ub.sh | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/make-macosx-ub.sh b/make-macosx-ub.sh index 9f650717..515bb03e 100755 --- a/make-macosx-ub.sh +++ b/make-macosx-ub.sh @@ -11,28 +11,37 @@ BASEDIR=base BIN_OBJ=" build/release-darwin-x86_64/tremulous.x86_64 build/release-darwin-x86/tremulous.x86 + build/release-darwin-ppc/tremulous.ppc " BIN_DEDOBJ=" build/release-darwin-x86_64/tremded.x86_64 build/release-darwin-x86/tremded.x86 + build/release-darwin-ppc/tremded.ppc " BASE_OBJ=" build/release-darwin-x86_64/$BASEDIR/cgamex86_64.dylib build/release-darwin-x86/$BASEDIR/cgamex86.dylib + build/release-darwin-ppc/$BASEDIR/cgameppc.dylib build/release-darwin-x86_64/$BASEDIR/uix86_64.dylib build/release-darwin-x86/$BASEDIR/uix86.dylib + build/release-darwin-ppc/$BASEDIR/uippc.dylib build/release-darwin-x86_64/$BASEDIR/gamex86_64.dylib build/release-darwin-x86/$BASEDIR/gamex86.dylib + build/release-darwin-ppc/$BASEDIR/gameppc.dylib " RENDER_OBJ=" build/release-darwin-x86_64/renderer_opengl1_smp_x86_64.dylib build/release-darwin-x86/renderer_opengl1_smp_x86.dylib + build/release-darwin-ppc/renderer_opengl1_smp_ppc.dylib build/release-darwin-x86_64/renderer_opengl1_x86_64.dylib build/release-darwin-x86/renderer_opengl1_x86.dylib + build/release-darwin-ppc/renderer_opengl1_ppc.dylib build/release-darwin-x86_64/renderer_rend2_smp_x86_64.dylib build/release-darwin-x86/renderer_rend2_smp_x86.dylib + build/release-darwin-ppc/renderer_rend2_smp_ppc.dylib build/release-darwin-x86_64/renderer_rend2_x86_64.dylib build/release-darwin-x86/renderer_rend2_x86.dylib + build/release-darwin-ppc/renderer_rend2_ppc.dylib " cd `dirname $0` @@ -51,6 +60,7 @@ TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 8) ? "1" : # can not build 64bit binaries, making 10.5 the minimum version. This has been tested # with xcode 3.1 (xcode31_2199_developerdvd.dmg). It contains the 10.5 SDK and a decent # enough gcc to actually compile ioquake3 +# For PPC macs, G4's or better are required to run ioquake3. unset X86_64_SDK unset X86_64_CFLAGS @@ -58,6 +68,9 @@ unset X86_64_LDFLAGS unset X86_SDK unset X86_CFLAGS unset X86_LDFLAGS +unset PPC_64_SDK +unset PPC_CFLAGS +unset PPC_LDFLAGS if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then X86_64_SDK=/Developer/SDKs/MacOSX10.5.sdk @@ -69,9 +82,14 @@ if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then X86_CFLAGS="-arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk \ -DMAC_OS_X_VERSION_MIN_REQUIRED=1050" X86_LDFLAGS=" -mmacosx-version-min=10.5" + + PPC_SDK=/Developer/SDKs/MacOSX10.5.sdk + PPC_CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk \ + -DMAC_OS_X_VERSION_MIN_REQUIRED=1050" + PPC_LDFLAGS=" -mmacosx-version-min=10.5" fi -if [ -z $X86_64_SDK ] || [ -z $X86_SDK ]; then +if [ -z $X86_64_SDK ] || [ -z $X86_SDK ] || [ -z $PPC_SDK ]; then echo "\ ERROR: This script is for building a Universal Binary. You cannot build for a different architecture unless you have the proper Mac OS X SDKs @@ -82,6 +100,7 @@ fi echo "Building X86_64 Client/Dedicated Server against \"$X86_64_SDK\"" echo "Building X86 Client/Dedicated Server against \"$X86_SDK\"" +echo "Building PPC Client/Dedicated Server against \"$PPC_SDK\"" echo if [ "$X86_64_SDK" != "/Developer/SDKs/MacOSX10.5.sdk" ] || \ @@ -114,6 +133,16 @@ if [ -d build/release-darwin-x86 ]; then fi (ARCH=x86 CC=gcc-4.0 CFLAGS=$X86_CFLAGS LDFLAGS=$X86_LDFLAGS make -j$NCPU) || exit 1; +echo;echo + +# PPC client and server +if [ -d build/release-darwin-ppc ]; then + rm -r build/release-darwin-ppc +fi +(ARCH=ppc CC=gcc-4.0 CFLAGS=$PPC_CFLAGS LDFLAGS=$PPC_LDFLAGS make -j$NCPU) || exit 1; + +echo;echo + echo "Creating .app bundle $DESTDIR/$APPBUNDLE" if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR ]; then mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR || exit 1; @@ -163,25 +192,10 @@ echo " </plist> " > $DESTDIR/$APPBUNDLE/Contents/Info.plist -# Change the path of the SDL Framework in both arches for the executables and renderer dylib's -# This removes the need for players to have the SDL.Framework installed on their machines. -for i in $BIN_OBJ $BIN_DEDOBJ $RENDER_OBJ -do - install_name_tool -change "@rpath/SDL.framework/Versions/A/SDL" "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL" $i -done - -# Make UB's from previous builds of 1386 and x86_64 binaries +# Make UB's from previous builds of i386, x86_64 and ppc binaries lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY $BIN_OBJ lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN $BIN_DEDOBJ -# Embed the SDL framework into the .app so players done need to install it on their systems. -mkdir $DESTDIR/$APPBUNDLE/Contents/Frameworks -unzip -d $DESTDIR/$APPBUNDLE/Contents/Frameworks code/libs/macosx/SDL-1.2.15.framework.zip - -# Change the path in the UB, just in case -install_name_tool -change "@rpath/SDL.framework/Versions/A/SDL" "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL" $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY -install_name_tool -change "@rpath/SDL.framework/Versions/A/SDL" "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL" $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN - cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/ cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/ cp src/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/ |