diff --git a/SP/make-macosx_xcode10.sh b/SP/make-macosx_xcode10.sh new file mode 100755 index 000000000..06f1c8dd7 --- /dev/null +++ b/SP/make-macosx_xcode10.sh @@ -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 " + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + $BINARY + CFBundleGetInfoString + iowolfsp $Q3_VERSION + CFBundleIconFile + iortcw.icns + CFBundleIdentifier + org.ioquake.iortcw + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + iowolfsp + CFBundlePackageType + APPL + CFBundleShortVersionString + $Q3_VERSION + CFBundleSignature + $PKGINFO + CFBundleVersion + $Q3_VERSION + NSExtensions + + NSPrincipalClass + NSApplication + + + + " > $DESTDIR/$APPBUNDLE/Contents/Info.plist +else + echo " + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + $BINARY + CFBundleGetInfoString + iowolfsp $Q3_VERSION + CFBundleIconFile + iortcw.icns + CFBundleIdentifier + org.ioquake.iortcw + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + iowolfsp + CFBundlePackageType + APPL + CFBundleShortVersionString + $Q3_VERSION + CFBundleSignature + $PKGINFO + CFBundleVersion + $Q3_VERSION + NSExtensions + + NSPrincipalClass + NSApplication + NSHighResolutionCapable + + + + " > $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