annotate test/gcc-fat.sh @ 4150:1019eb074a56 SDL-1.2

Check defines do not already exist in recent system headers
author Patrice Mandin <patmandin@gmail.com>
date Thu, 07 Aug 2008 20:55:45 +0000
parents 6cb18cf1777e
children
rev   line source
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 #!/bin/sh
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 #
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3 # Build Universal binaries on Mac OS X, thanks Ryan!
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4 #
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 # Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf ppc x86
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6
4127
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
7 # Locate Xcode SDK path
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
8 SDK_PATH=/Developer/SDKs
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
9 if [ ! -d $SDK_PATH ]; then
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
10 echo "Couldn't find SDK path"
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
11 exit 1
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
12 fi
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
13
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
14 if [ -d "$SDK_PATH/MacOSX10.2.8.sdk" ]; then
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
15 # PowerPC compiler flags (10.2 runtime compatibility)
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
16 GCC_COMPILE_PPC="gcc-3.3 -arch ppc \
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 -DMAC_OS_X_VERSION_MIN_REQUIRED=1020 \
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18 -nostdinc \
4127
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
19 -F$SDK_PATH/MacOSX10.2.8.sdk/System/Library/Frameworks \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
20 -I$SDK_PATH/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
21 -isystem $SDK_PATH/MacOSX10.2.8.sdk/usr/include"
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
22
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
23 GCC_LINK_PPC="\
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
24 -L$SDK_PATH/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
25 -F$SDK_PATH/MacOSX10.2.8.sdk/System/Library/Frameworks \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
26 -Wl,-syslibroot,$SDK_PATH/MacOSX10.2.8.sdk"
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27
4127
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
28 else # 10.2 or 10.3 SDK
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
29 # PowerPC compiler flags (10.3 runtime compatibility)
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
30 GCC_COMPILE_PPC="gcc-4.0 -arch ppc -mmacosx-version-min=10.3 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
31 -DMAC_OS_X_VERSION_MIN_REQUIRED=1030 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
32 -nostdinc \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
33 -F$SDK_PATH/MacOSX10.3.9.sdk/System/Library/Frameworks \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
34 -I$SDK_PATH/MacOSX10.3.9.sdk/usr/lib/gcc/powerpc-apple-darwin9/4.0.1/include \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
35 -isystem $SDK_PATH/MacOSX10.3.9.sdk/usr/include"
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
36
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
37 GCC_LINK_PPC="\
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
38 -L$SDK_PATH/MacOSX10.3.9.sdk/usr/lib/gcc/powerpc-apple-darwin9/4.0.1 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
39 -F$SDK_PATH/MacOSX10.3.9.sdk/System/Library/Frameworks \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
40 -Wl,-syslibroot,$SDK_PATH/MacOSX10.3.9.sdk"
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
41
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
42 fi # 10.2 or 10.3 SDK
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 # Intel compiler flags (10.4 runtime compatibility)
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 GCC_COMPILE_X86="gcc-4.0 -arch i386 -mmacosx-version-min=10.4 \
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47 -nostdinc \
4127
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
48 -F$SDK_PATH/MacOSX10.4u.sdk/System/Library/Frameworks \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
49 -I$SDK_PATH/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1/include \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
50 -isystem $SDK_PATH/MacOSX10.4u.sdk/usr/include"
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 GCC_LINK_X86="\
4127
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
53 -L$SDK_PATH/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin9/4.0.1 \
6cb18cf1777e Updated gcc-fat.sh to build on Mac OS X 10.5
Sam Lantinga <slouken@libsdl.org>
parents: 1797
diff changeset
54 -Wl,-syslibroot,$SDK_PATH/MacOSX10.4u.sdk"
1797
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 # Output both PowerPC and Intel object files
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 args="$*"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 compile=yes
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 link=yes
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60 while test x$1 != x; do
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 case $1 in
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 --version) exec gcc $1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 -v) exec gcc $1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 -V) exec gcc $1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 -print-prog-name=*) exec gcc $1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 -print-search-dirs) exec gcc $1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 -E) GCC_COMPILE_PPC="$GCC_COMPILE_PPC -E"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68 GCC_COMPILE_X86="$GCC_COMPILE_X86 -E"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 compile=no; link=no;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 -c) link=no;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 -o) output=$2;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 *.c|*.cc|*.cpp|*.S) source=$1;;
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 esac
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 shift
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 done
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 if test x$link = xyes; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 GCC_COMPILE_PPC="$GCC_COMPILE_PPC $GCC_LINK_PPC"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 if test x"$output" = x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 if test x$link = xyes; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 output=a.out
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 elif test x$compile = xyes; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
84 output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
85 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
86 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
87
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
88 if test x"$output" != x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
89 dir=ppc/`dirname $output`
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
90 if test -d $dir; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
91 :
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92 else
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
93 mkdir -p $dir
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
95 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
96 set -- $args
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
97 while test x$1 != x; do
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98 if test -f "ppc/$1" && test "$1" != "$output"; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
99 ppc_args="$ppc_args ppc/$1"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
100 else
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
101 ppc_args="$ppc_args $1"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
102 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103 shift
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
104 done
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
105 $GCC_COMPILE_PPC $ppc_args || exit $?
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
106 if test x"$output" != x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
107 cp $output ppc/$output
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
109
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
110 if test x"$output" != x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
111 dir=x86/`dirname $output`
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
112 if test -d $dir; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
113 :
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
114 else
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
115 mkdir -p $dir
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
116 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
117 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
118 set -- $args
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
119 while test x$1 != x; do
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
120 if test -f "x86/$1" && test "$1" != "$output"; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
121 x86_args="$x86_args x86/$1"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
122 else
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
123 x86_args="$x86_args $1"
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
124 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
125 shift
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
126 done
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
127 $GCC_COMPILE_X86 $x86_args || exit $?
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
128 if test x"$output" != x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
129 cp $output x86/$output
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
130 fi
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
131
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
132 if test x"$output" != x; then
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
133 lipo -create -o $output ppc/$output x86/$output
783b9409baa0 Fat test programs! :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
134 fi