Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b96f1c2
commit 8604154
Showing
1 changed file
with
183 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
#!/bin/sh | ||
# | ||
|
||
# Lets make the user give us a target build system | ||
|
||
if [ $# -ne 1 ]; then | ||
echo "Usage: $0 target_architecture" | ||
echo "Example: $0 x86" | ||
echo "The other valid option is x86_64" | ||
echo | ||
echo "If you don't know or care about architectures please consider using make-macosx-ub.sh instead of this script." | ||
exit 1 | ||
fi | ||
|
||
if [ "$1" == "x86" ]; then | ||
BUILDARCH=x86 | ||
ARCH=i386 | ||
elif [ "$1" == "x86_64" ]; then | ||
BUILDARCH=x86_64 | ||
ARCH=x86_64 | ||
else | ||
echo "Invalid architecture: $1" | ||
echo "Valid architectures are x86, x86_64" | ||
exit 1 | ||
fi | ||
|
||
CC=clang | ||
CXX=clang++ | ||
APPBUNDLE=iowolfsp.app | ||
BINARY=iowolfsp.${ARCH} | ||
PKGINFO=APPLIOTCW | ||
ICNS=misc/iortcw.icns | ||
DESTDIR=build/release-darwin-${BUILDARCH} | ||
BASEDIR=main | ||
|
||
BIN_OBJ=" | ||
build/release-darwin-${BUILDARCH}/iowolfsp.${BUILDARCH} | ||
" | ||
BASE_OBJ=" | ||
build/release-darwin-${BUILDARCH}/$BASEDIR/cgame.sp.${ARCH}.dylib | ||
build/release-darwin-${BUILDARCH}/$BASEDIR/ui.sp.${ARCH}.dylib | ||
build/release-darwin-${BUILDARCH}/$BASEDIR/qagame.sp.${ARCH}.dylib | ||
" | ||
RENDER_OBJ=" | ||
build/release-darwin-${BUILDARCH}/renderer_sp_opengl1_${ARCH}.dylib | ||
build/release-darwin-${BUILDARCH}/renderer_sp_rend2_${ARCH}.dylib | ||
" | ||
|
||
cd `dirname $0` | ||
if [ ! -f Makefile ]; then | ||
echo "This script must be run from the iowolfsp 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. | ||
unset TIGERHOST | ||
|
||
TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 19) ? "1" : "0");'` | ||
|
||
unset XCVERSION | ||
|
||
XCVERSION=$(XCODE_VERSION_MAJOR) | ||
|
||
unset ARCH_CFLAGS | ||
|
||
if [ "$XCVERSION" == "1100" ]; then | ||
ARCH_CFLAGS="-arch ${ARCH} -mmacosx-version-min=10.9 -DMAC_OS_X_VERSION_MIN_REQUIRED=1090" | ||
elif [ "$XCVERSION" == "1000" ]; | ||
ARCH_CFLAGS="-arch ${ARCH} -mmacosx-version-min=10.9 -DMAC_OS_X_VERSION_MIN_REQUIRED=1090" | ||
else | ||
ARCH_CFLAGS="-arch ${ARCH}" | ||
fi | ||
|
||
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-${BUILDARCH} ]; then | ||
rm -r build/release-darwin-${BUILDARCH} | ||
fi | ||
(CC=${CC} CXX=${CXX} ARCH=${BUILDARCH} CFLAGS=$ARCH_CFLAGS 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/Resources ]; then | ||
mkdir -p $DESTDIR/$APPBUNDLE/Contents/Resources | ||
fi | ||
cp $ICNS $DESTDIR/$APPBUNDLE/Contents/Resources/iortcw.icns || exit 1; | ||
echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo | ||
if [ "$TIGERHOST" == "1" ]; then | ||
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>iowolfsp $Q3_VERSION</string> | ||
<key>CFBundleIconFile</key> | ||
<string>iortcw.icns</string> | ||
<key>CFBundleIdentifier</key> | ||
<string>org.ioquake.iortcw</string> | ||
<key>CFBundleInfoDictionaryVersion</key> | ||
<string>6.0</string> | ||
<key>CFBundleName</key> | ||
<string>iowolfsp</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> | ||
<false/> | ||
</dict> | ||
</plist> | ||
" > $DESTDIR/$APPBUNDLE/Contents/Info.plist | ||
else | ||
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>iowolfsp $Q3_VERSION</string> | ||
<key>CFBundleIconFile</key> | ||
<string>iortcw.icns</string> | ||
<key>CFBundleIdentifier</key> | ||
<string>org.ioquake.iortcw</string> | ||
<key>CFBundleInfoDictionaryVersion</key> | ||
<string>6.0</string> | ||
<key>CFBundleName</key> | ||
<string>iowolfsp</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> | ||
<key>NSHighResolutionCapable</key> | ||
<false/> | ||
</dict> | ||
</plist> | ||
" > $DESTDIR/$APPBUNDLE/Contents/Info.plist | ||
fi | ||
|
||
cp $BIN_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY | ||
cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/ | ||
cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/ | ||
cp code/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/ | ||
cp code/libs/macosx/*.dylib $DESTDIR |