summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rwxr-xr-xmake-macosx-ub.sh110
-rwxr-xr-xmake-macosx.sh16
-rw-r--r--src/libs/macosx/SDL-1.2.15.framework.zipbin0 -> 1309261 bytes
4 files changed, 72 insertions, 56 deletions
diff --git a/Makefile b/Makefile
index 734c402f..3c4b814d 100644
--- a/Makefile
+++ b/Makefile
@@ -998,7 +998,7 @@ define DO_REF_STR
$(echo_cmd) "REF_STR $<"
$(Q)rm -f $@
$(Q)echo "const char *fallbackShader_$(notdir $(basename $<)) =" >> $@
-$(Q)cat $< | sed 's/\\/\\\\/;s/\t/\\t/;s/\"/\\"/;s/$$/\\n"/;s/^/"/' >> $@
+$(Q)cat $< | sed 's/^/\"/;s/$$/\\n\"/' >> $@
$(Q)echo ";" >> $@
endef
diff --git a/make-macosx-ub.sh b/make-macosx-ub.sh
index c46c3fd9..9f650717 100755
--- a/make-macosx-ub.sh
+++ b/make-macosx-ub.sh
@@ -9,30 +9,30 @@ DESTDIR=build/release-darwin-ub
BASEDIR=base
BIN_OBJ="
- build/release-darwin-ppc/tremulous.ppc
+ build/release-darwin-x86_64/tremulous.x86_64
build/release-darwin-x86/tremulous.x86
"
BIN_DEDOBJ="
- build/release-darwin-ppc/tremded.ppc
+ build/release-darwin-x86_64/tremded.x86_64
build/release-darwin-x86/tremded.x86
"
BASE_OBJ="
- build/release-darwin-ppc/$BASEDIR/cgameppc.dylib
+ build/release-darwin-x86_64/$BASEDIR/cgamex86_64.dylib
build/release-darwin-x86/$BASEDIR/cgamex86.dylib
- build/release-darwin-ppc/$BASEDIR/uippc.dylib
+ build/release-darwin-x86_64/$BASEDIR/uix86_64.dylib
build/release-darwin-x86/$BASEDIR/uix86.dylib
- build/release-darwin-ppc/$BASEDIR/gameppc.dylib
+ build/release-darwin-x86_64/$BASEDIR/gamex86_64.dylib
build/release-darwin-x86/$BASEDIR/gamex86.dylib
"
RENDER_OBJ="
- build/release-darwin-ppc/renderer_opengl1_smp_ppc.dylib
- build/release-darwin-i386/renderer_opengl1_smp_i386.dylib
- build/release-darwin-ppc/renderer_opengl1_ppc.dylib
- build/release-darwin-i386/renderer_opengl1_i386.dylib
- build/release-darwin-ppc/renderer_rend2_smp_ppc.dylib
- build/release-darwin-i386/renderer_rend2_smp_i386.dylib
- build/release-darwin-ppc/renderer_rend2_ppc.dylib
- build/release-darwin-i386/renderer_rend2_i386.dylib
+ build/release-darwin-x86_64/renderer_opengl1_smp_x86_64.dylib
+ build/release-darwin-x86/renderer_opengl1_smp_x86.dylib
+ build/release-darwin-x86_64/renderer_opengl1_x86_64.dylib
+ build/release-darwin-x86/renderer_opengl1_x86.dylib
+ build/release-darwin-x86_64/renderer_rend2_smp_x86_64.dylib
+ build/release-darwin-x86/renderer_rend2_smp_x86.dylib
+ build/release-darwin-x86_64/renderer_rend2_x86_64.dylib
+ build/release-darwin-x86/renderer_rend2_x86.dylib
"
cd `dirname $0`
@@ -47,18 +47,23 @@ Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'`
# "8" is the Darwin major kernel version.
TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 8) ? "1" : "0");'`
-# we want to use the oldest available SDK for max compatiblity
-unset PPC_SDK
-unset PPC_CFLAGS
-unset PPC_LDFLAGS
+# we want to use the oldest available SDK for max compatiblity. However 10.4 and older
+# 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
+
+unset X86_64_SDK
+unset X86_64_CFLAGS
+unset X86_64_LDFLAGS
unset X86_SDK
unset X86_CFLAGS
unset X86_LDFLAGS
+
if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then
- PPC_SDK=/Developer/SDKs/MacOSX10.5.sdk
- PPC_CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk \
+ X86_64_SDK=/Developer/SDKs/MacOSX10.5.sdk
+ X86_64_CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk \
-DMAC_OS_X_VERSION_MIN_REQUIRED=1050"
- PPC_LDFLAGS=" -mmacosx-version-min=10.5"
+ X86_64_LDFLAGS=" -mmacosx-version-min=10.5"
X86_SDK=/Developer/SDKs/MacOSX10.5.sdk
X86_CFLAGS="-arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk \
@@ -66,26 +71,7 @@ if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then
X86_LDFLAGS=" -mmacosx-version-min=10.5"
fi
-if [ -d /Developer/SDKs/MacOSX10.4u.sdk ]; then
- PPC_SDK=/Developer/SDKs/MacOSX10.4u.sdk
- PPC_CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
- -DMAC_OS_X_VERSION_MIN_REQUIRED=1040"
- PPC_LDFLAGS=" -mmacosx-version-min=10.4"
-
- X86_SDK=/Developer/SDKs/MacOSX10.4u.sdk
- X86_CFLAGS="-arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
- -DMAC_OS_X_VERSION_MIN_REQUIRED=1040"
- X86_LDFLAGS=" -mmacosx-version-min=10.4"
-fi
-
-if [ -d /Developer/SDKs/MacOSX10.3.9.sdk ] && [ $TIGERHOST ]; then
- PPC_SDK=/Developer/SDKs/MacOSX10.3.9.sdk
- PPC_CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.3.9.sdk \
- -DMAC_OS_X_VERSION_MIN_REQUIRED=1030"
- PPC_LDFLAGS=" -mmacosx-version-min=10.3"
-fi
-
-if [ -z $PPC_SDK ] || [ -z $X86_SDK ]; then
+if [ -z $X86_64_SDK ] || [ -z $X86_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
@@ -94,17 +80,18 @@ ERROR: This script is for building a Universal Binary. You cannot build
exit 1
fi
-echo "Building PPC Client/Dedicated Server against \"$PPC_SDK\""
+echo "Building X86_64 Client/Dedicated Server against \"$X86_64_SDK\""
echo "Building X86 Client/Dedicated Server against \"$X86_SDK\""
-if [ "$PPC_SDK" != "/Developer/SDKs/MacOSX10.3.9.sdk" ] || \
- [ "$X86_SDK" != "/Developer/SDKs/MacOSX10.4u.sdk" ]; then
+echo
+
+if [ "$X86_64_SDK" != "/Developer/SDKs/MacOSX10.5.sdk" ] || \
+ [ "$X86_SDK" != "/Developer/SDKs/MacOSX10.5.sdk" ]; then
echo "\
WARNING: in order to build a binary with maximum compatibility you must
- build on Mac OS X 10.4 using Xcode 2.3 or 2.5 and have the
- MacOSX10.3.9, and MacOSX10.4u SDKs installed from the Xcode
- install disk Packages folder."
-fi
+ build on Mac OS X 10.5 using Xcode 3.1 and have the MacOSX10.5
+ SDKs installed from the Xcode install disk Packages folder."
sleep 3
+fi
if [ ! -d $DESTDIR ]; then
mkdir -p $DESTDIR
@@ -113,13 +100,15 @@ fi
# For parallel make on multicore boxes...
NCPU=`sysctl -n hw.ncpu`
-# ppc client and server
-if [ -d build/release-release-ppc ]; then
- rm -r build/release-darwin-ppc
+# x86_64 client and server
+if [ -d build/release-release-x86_64 ]; then
+ rm -r build/release-darwin-x86_64
fi
-(ARCH=ppc CC=gcc-4.0 CFLAGS=$PPC_CFLAGS LDFLAGS=$PPC_LDFLAGS make -j$NCPU) || exit 1;
+(ARCH=x86_64 CC=gcc-4.0 CFLAGS=$X86_64_CFLAGS LDFLAGS=$X86_64_LDFLAGS make -j$NCPU) || exit 1;
-# intel client and server
+echo;echo
+
+# x86 client and server
if [ -d build/release-darwin-x86 ]; then
rm -r build/release-darwin-x86
fi
@@ -174,8 +163,25 @@ 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
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/
diff --git a/make-macosx.sh b/make-macosx.sh
index dbcc5bb8..2a09ea1f 100755
--- a/make-macosx.sh
+++ b/make-macosx.sh
@@ -44,7 +44,11 @@ Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'`
# "8" is the Darwin major kernel version.
TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 8) ? "1" : "0");'`
-# we want to use the oldest available SDK for max compatiblity
+# we want to use the oldest available SDK for max compatiblity. However 10.4 and older
+# 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
+
unset X86_SDK
unset X86_CFLAGS
unset X86_LDFLAGS
@@ -122,8 +126,14 @@ echo "
</plist>
" > $DESTDIR/$APPBUNDLE/Contents/Info.plist
-lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY $BIN_OBJ
-lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN $BIN_DEDOBJ
+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
+
+
+cp $BIN_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY
+cp $BIN_DEDOBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN
cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/
cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/
cp $MPACK_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR/
diff --git a/src/libs/macosx/SDL-1.2.15.framework.zip b/src/libs/macosx/SDL-1.2.15.framework.zip
new file mode 100644
index 00000000..ec32e38f
--- /dev/null
+++ b/src/libs/macosx/SDL-1.2.15.framework.zip
Binary files differ