diff --git a/reaction/make-macosx.sh b/reaction/make-macosx.sh new file mode 100644 index 00000000..c3ed5347 --- /dev/null +++ b/reaction/make-macosx.sh @@ -0,0 +1,130 @@ +#!/bin/sh +APPBUNDLE=ioquake3.app +BINARY=ioquake3.x86_64 +DEDBIN=ioq3ded.x86_64 +PKGINFO=APPLIOQ3 +ICNS=misc/quake3.icns +DESTDIR=build/release-darwin-x86_64 +BASEDIR=baseq3 +MPACKDIR=missionpack +RENDERDIR=build/release-darwin-x86_64 + +BIN_OBJ=" + build/release-darwin-x86_64/ioquake3.x86_64 +" +BIN_DEDOBJ=" + build/release-darwin-x86_64/ioq3ded.x86_64 +" +BASE_OBJ=" + build/release-darwin-x86_64/$BASEDIR/cgamex86_64.dylib + build/release-darwin-x86_64/$BASEDIR/uix86_64.dylib + build/release-darwin-x86_64/$BASEDIR/qagamex86_64.dylib +" +MPACK_OBJ=" + build/release-darwin-x86_64/$MPACKDIR/cgamex86_64.dylib + build/release-darwin-x86_64/$MPACKDIR/uix86_64.dylib + build/release-darwin-x86_64/$MPACKDIR/qagamex86_64.dylib +" + +RENDER_OBJ=" + build/release-darwin-x86_64/renderer_opengl1_smp_x86_64.dylib + build/release-darwin-x86_64/renderer_opengl1_x86_64.dylib +" + +cd `dirname $0` +if [ ! -f Makefile ]; then + echo "This script must be run from the ioquake3 build directory" + exit 1 +fi + +Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'` + +# We only care if we're >= 10.4, not if we're specifically Tiger. +# "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 X86_SDK +unset X86_CFLAGS +unset X86_LDFLAGS +if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then + X86_SDK=/Developer/SDKs/MacOSX10.5.sdk + X86_CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk \ + -DMAC_OS_X_VERSION_MIN_REQUIRED=1050" + X86_LDFLAGS=" -mmacosx-version-min=10.5" +fi + + +echo "Building X86 Client/Dedicated Server against \"$X86_SDK\"" +sleep 3 + +if [ ! -d $DESTDIR ]; then + mkdir -p $DESTDIR +fi + +# For parallel make on multicore boxes... +NCPU=`sysctl -n hw.ncpu` + + +# intel client and server +if [ -d build/release-darwin-x86_64 ]; then + rm -r build/release-darwin-x86_64 +fi +(ARCH=x86_64 CFLAGS=$X86_CFLAGS LDFLAGS=$X86_LDFLAGS make -j$NCPU) || exit 1; + +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/ioquake3.icns || exit 1; +echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo +echo " + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + $BINARY + CFBundleGetInfoString + ioquake3 $Q3_VERSION + CFBundleIconFile + ioquake3.icns + CFBundleIdentifier + org.ioquake.ioquake3 + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ioquake3 + CFBundlePackageType + APPL + CFBundleShortVersionString + $Q3_VERSION + CFBundleSignature + $PKGINFO + CFBundleVersion + $Q3_VERSION + NSExtensions + + NSPrincipalClass + NSApplication + + + " > $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 +cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/ +cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/ +cp $MPACK_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR/ +cp code/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/ +