From 949debf88e97dde51a861014cba0e11dfb4927c9 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 14 Apr 2006 05:43:04 +0000 Subject: [PATCH] A script to build a fat version of the SDL library... completely untested! --- build-scripts/fatbuild.sh | 137 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100755 build-scripts/fatbuild.sh diff --git a/build-scripts/fatbuild.sh b/build-scripts/fatbuild.sh new file mode 100755 index 000000000..3f1b84d61 --- /dev/null +++ b/build-scripts/fatbuild.sh @@ -0,0 +1,137 @@ +#!/bin/sh +# +# Build a fat binary on Mac OS X, thanks Ryan! + +# PowerPC compiler flags (10.2 runtime compatibility) +CFLAGS_PPC=-DBUILD_PPC +xCFLAGS_PPC="-arch ppc \ +-F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \ +-I/Developer/SDKs/MacOSX10.2.8.sdk/Developer/Headers/FlatCarbon \ +-DMAC_OS_X_VERSION_MIN_REQUIRED=1020 \ +-I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \ +-I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3/c++ \ +-I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3/c++/ppc-darwin \ +-isystem /Developer/SDKs/MacOSX10.2.8.sdk/usr/include" + +# PowerPC linker flags +xLFLAGS_PPC="-arch ppc -mmacosx-version-min=10.2 \ +-L/Developer/SDKs/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \ +-F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \ +-Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk" + +# Intel compiler flags (10.4 runtime compatibility) +CFLAGS_X86=-DBUILD_X86 +xCFLAGS_X86="-arch i386 -mmacosx-version-min=10.4 \ +-DMAC_OS_X_VERSION_MIN_REQUIRED=1040 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" + +# Intel linker flags +xLFLAGS_X86="-arch i386 -mmacosx-version-min=10.4 \ +-L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.0 \ +-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" + +# +# Find the configure script +# +cd `dirname $0`/.. + +# +# Figure out which phase to build: +# all, +# configure, configure-ppc, configure-x86, +# make, make-ppc, make-x86, merge +# install +if test x"$1" = x; then + phase=all +else + phase="$1" +fi +case $phase in + all) + configure_ppc="yes" + configure_x86="yes" + make_ppc="yes" + make_x86="yes" + merge="yes" + ;; + configure) + configure_ppc="yes" + configure_x86="yes" + ;; + configure-ppc) + configure_ppc="yes" + ;; + configure-x86) + configure_x86="yes" + ;; + make) + make_ppc="yes" + make_x86="yes" + merge="yes" + ;; + make-ppc) + make_ppc="yes" + ;; + make-x86) + make_x86="yes" + ;; + merge) + merge="yes" + ;; + install) + make_x86="yes" + ;; +esac + +# +# Create the build directories +# +for dir in build build/ppc build/x86; do + if test -d $dir; then + : + else + mkdir $dir || exit 1 + fi +done + +# +# Build the PowerPC binary +# +if test x$configure_ppc = xyes; then + (cd build/ppc && \ + sh ../../configure CFLAGS="$CFLAGS_PPC" LDFLAGS="$LFLAGS_PPC") || exit 2 +fi +if test x$make_ppc = xyes; then + (cd build/ppc && make) || exit 3 +fi + +# +# Build the Intel binary +# +if test x$configure_x86 = xyes; then + (cd build/x86 && \ + sh ../../configure CFLAGS="$CFLAGS_X86" LDFLAGS="$LFLAGS_X86") || exit 2 +fi +if test x$make_x86 = xyes; then + (cd build/x86 && make) || exit 3 +fi + +# +# Combine into fat binary +# +target=`echo build/x86/build/.libs/*.dylib | sed 's|.*/||'` +if test x$merge = xyes; then + (cd build && \ + lipo -create -o $target */build/.libs/*.dylib && + lipo -create -o SDLMain.o */build/SDLMain.o && + ar cru libSDLmain.a SDLMain.o && ranlib libSDLmain.a && + echo "Build complete!" && + echo "Files can be found in the build directory.") || exit 4 +fi + +# +# Install +# +if test x$install = xyes; then + echo "Install not implemented" + exit 1 +fi