summaryrefslogtreecommitdiff
path: root/make-macosx-ub.sh
diff options
context:
space:
mode:
authorjeremiah sypult <jeremiah@sypult.com>2013-07-18 10:39:08 -0500
committerTim Angus <tim@ngus.net>2014-06-17 17:43:33 +0100
commit9fd4d49c178c4f53b3a24df9be52a87b0deca164 (patch)
tree0f9381d0a44fb4ca73fef537a3c3740535068b0e /make-macosx-ub.sh
parentd5108d45fb4b278039f324e1cf4220b9e3c2ba12 (diff)
Another pass at the Mac OS X make scripts.
Ironed out issues with generating an application bundle with universal binaries on supported systems. Fall back to bundling a single architecture when support for universal binary generation is not available. Tested on Mac OS X 10.5.8 (and 10.5 SDK).
Diffstat (limited to 'make-macosx-ub.sh')
-rwxr-xr-xmake-macosx-ub.sh125
1 files changed, 15 insertions, 110 deletions
diff --git a/make-macosx-ub.sh b/make-macosx-ub.sh
index a0b57446..6d1dbdf8 100755
--- a/make-macosx-ub.sh
+++ b/make-macosx-ub.sh
@@ -1,42 +1,6 @@
-#!/bin/sh
+#!/bin/bash
CC=gcc-4.0
-APPBUNDLE=Tremulous.app
-BINARY=Tremulous.ub
-DEDBIN=Tremded.ub
-PKGINFO=APPLTREM
-ICNS=misc/Tremulous.icns
-DESTDIR=build/release-darwin-ub
-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_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_opengl2_x86_64.dylib
- build/release-darwin-x86/renderer_opengl2_x86.dylib
- build/release-darwin-ppc/renderer_opengl2_ppc.dylib
-"
+BINARY=tremulous.ub
cd `dirname $0`
if [ ! -f Makefile ]; then
@@ -88,7 +52,7 @@ if [ -z $X86_64_SDK ] || [ -z $X86_SDK ] || [ -z $PPC_SDK ]; then
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
installed. If you just want to to compile for your own system run
- 'make' instead of this script."
+ 'make-macosx.sh' instead of this script."
exit 1
fi
@@ -106,91 +70,32 @@ WARNING: in order to build a binary with maximum compatibility you must
sleep 3
fi
-if [ ! -d $DESTDIR ]; then
- mkdir -p $DESTDIR
-fi
-
# For parallel make on multicore boxes...
NCPU=`sysctl -n hw.ncpu`
# x86_64 client and server
-if [ -d build/release-release-x86_64 ]; then
- rm -r build/release-darwin-x86_64
-fi
+#if [ -d build/release-release-x86_64 ]; then
+# rm -r build/release-darwin-x86_64
+#fi
(ARCH=x86_64 CC=gcc-4.0 CFLAGS=$X86_64_CFLAGS LDFLAGS=$X86_64_LDFLAGS make -j$NCPU) || exit 1;
echo;echo
# x86 client and server
-if [ -d build/release-darwin-x86 ]; then
- rm -r build/release-darwin-x86
-fi
+#if [ -d build/release-darwin-x86 ]; then
+# rm -r build/release-darwin-x86
+#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
+#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;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR ]; then
- mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR || exit 1;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/Resources ]; then
- mkdir -p $DESTDIR/$APPBUNDLE/Contents/Resources
-fi
-cp $ICNS $DESTDIR/$APPBUNDLE/Contents/Resources/Tremulous.icns || exit 1;
-echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo
-echo "
- <?xml version=\"1.0\" encoding=\"UTF-8\"?>
- <!DOCTYPE plist
- PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
- \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
- <plist version=\"1.0\">
- <dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>$BINARY</string>
- <key>CFBundleGetInfoString</key>
- <string>$Q3_VERSION</string>
- <key>CFBundleIconFile</key>
- <string>Tremulous.icns</string>
- <key>CFBundleIdentifier</key>
- <string>net.tremulous</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Tremulous</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>$Q3_VERSION</string>
- <key>CFBundleSignature</key>
- <string>$PKGINFO</string>
- <key>CFBundleVersion</key>
- <string>$Q3_VERSION</string>
- <key>NSExtensions</key>
- <dict/>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- </dict>
- </plist>
- " > $DESTDIR/$APPBUNDLE/Contents/Info.plist
-
-# Make UB's from previous builds of x86, 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
-
-cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/
-cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/
-cp src/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/
+echo
+# use the following shell script to build a universal application bundle
+"./make-macosx-app.sh" release