Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A script to build a fat version of the SDL library... completely unte…
…sted!
- Loading branch information
Showing
1 changed file
with
137 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,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 |