summaryrefslogtreecommitdiff
path: root/make-macosx-ub.sh
diff options
context:
space:
mode:
Diffstat (limited to 'make-macosx-ub.sh')
-rwxr-xr-xmake-macosx-ub.sh48
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/