Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F628511
gcc-fat.sh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
gcc-fat.sh
View Options
#!/bin/sh
#
# Build Universal binaries on Mac OS X, thanks Ryan!
#
# Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf ppc ppc64 x86 x64
# PowerPC 32-bit compiler flags (10.4 runtime compatibility)
GCC_COMPILE_PPC32
=
"gcc-4.0 -arch ppc -mmacosx-version-min=10.4 \
-DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
-nostdinc \
-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \
-I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.0.1/include \
-isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include"
GCC_LINK_PPC32
=
"\
-L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.0.1 \
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
# PowerPC 64-bit compiler flags (10.5 runtime compatibility)
GCC_COMPILE_PPC64
=
"gcc-4.0 -arch ppc64 -mmacosx-version-min=10.5 \
-DMAC_OS_X_VERSION_MIN_REQUIRED=1050 \
-nostdinc \
-F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks \
-I/Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.0.1/include \
-isystem /Developer/SDKs/MacOSX10.5.sdk/usr/include"
GCC_LINK_PPC64
=
"\
-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/powerpc-apple-darwin10/4.0.1/ppc64 \
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk"
# Intel 32-bit compiler flags (10.4 runtime compatibility)
GCC_COMPILE_X86
=
"gcc-4.0 -arch i386 -mmacosx-version-min=10.4 \
-DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \
-nostdinc \
-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \
-I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/include \
-isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include"
GCC_LINK_X86
=
"\
-L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1 \
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
# Intel 64-bit compiler flags (10.5 runtime compatibility)
GCC_COMPILE_X64
=
"gcc-4.0 -arch x86_64 -mmacosx-version-min=10.5 \
-DMAC_OS_X_VERSION_MIN_REQUIRED=1050 \
-nostdinc \
-F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks \
-I/Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/include \
-isystem /Developer/SDKs/MacOSX10.5.sdk/usr/include"
GCC_LINK_X64
=
"\
-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/x86_64 \
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk"
# Output both PowerPC and Intel object files
args
=
"
$*
"
compile
=
yes
link
=
yes
while
test
x
$1
!
=
x
;
do
case
$1
in
--version
)
exec
gcc
$1
;;
-v
)
exec
gcc
$1
;;
-V
)
exec
gcc
$1
;;
-print-prog-name
=
*
)
exec
gcc
$1
;;
-print-search-dirs
)
exec
gcc
$1
;;
-E
)
GCC_COMPILE_PPC32
=
"
$GCC_COMPILE_PPC32
-E"
GCC_COMPILE_PPC64
=
"
$GCC_COMPILE_PPC64
-E"
GCC_COMPILE_X86
=
"
$GCC_COMPILE_X86
-E"
GCC_COMPILE_X64
=
"
$GCC_COMPILE_X64
-E"
compile
=
no
;
link
=
no
;;
-c
)
link
=
no
;;
-o
)
output
=
$2
;;
*.c
|
*.cc
|
*.cpp
|
*.S
)
source
=
$1
;;
esac
shift
done
if
test
x
$link
=
xyes
;
then
GCC_COMPILE_PPC32
=
"
$GCC_COMPILE_PPC32
$GCC_LINK_PPC32
"
GCC_COMPILE_PPC64
=
"
$GCC_COMPILE_PPC64
$GCC_LINK_PPC64
"
GCC_COMPILE_X86
=
"
$GCC_COMPILE_X86
$GCC_LINK_X86
"
GCC_COMPILE_X64
=
"
$GCC_COMPILE_X64
$GCC_LINK_X64
"
fi
if
test
x
"
$output
"
=
x
;
then
if
test
x
$link
=
xyes
;
then
output
=
a.out
elif
test
x
$compile
=
xyes
;
then
output
=
`
echo
$source
|
sed
-e
's|.*/||'
-e
's|\(.*\)\.[^\.]*|\1|'
`
.o
fi
fi
# Compile PPC 32-bit
if
test
x
"
$output
"
!
=
x
;
then
dir
=
ppc/
`
dirname
$output
`
if
test
-d
$dir
;
then
:
else
mkdir
-p
$dir
fi
fi
set
--
$args
while
test
x
$1
!
=
x
;
do
if
test
-f
"ppc/
$1
"
&&
test
"
$1
"
!
=
"
$output
"
;
then
ppc_args
=
"
$ppc_args
ppc/
$1
"
else
ppc_args
=
"
$ppc_args
$1
"
fi
shift
done
$GCC_COMPILE_PPC32
$ppc_args
||
exit
$?
if
test
x
"
$output
"
!
=
x
;
then
cp
$output
ppc/
$output
fi
# Compile PPC 64-bit
if
test
x
"
$output
"
!
=
x
;
then
dir
=
ppc64/
`
dirname
$output
`
if
test
-d
$dir
;
then
:
else
mkdir
-p
$dir
fi
fi
set
--
$args
while
test
x
$1
!
=
x
;
do
if
test
-f
"ppc64/
$1
"
&&
test
"
$1
"
!
=
"
$output
"
;
then
ppc64_args
=
"
$ppc64_args
ppc64/
$1
"
else
ppc64_args
=
"
$ppc64_args
$1
"
fi
shift
done
$GCC_COMPILE_PPC64
$ppc64_args
||
exit
$?
if
test
x
"
$output
"
!
=
x
;
then
cp
$output
ppc64/
$output
fi
# Compile X86 32-bit
if
test
x
"
$output
"
!
=
x
;
then
dir
=
x86/
`
dirname
$output
`
if
test
-d
$dir
;
then
:
else
mkdir
-p
$dir
fi
fi
set
--
$args
while
test
x
$1
!
=
x
;
do
if
test
-f
"x86/
$1
"
&&
test
"
$1
"
!
=
"
$output
"
;
then
x86_args
=
"
$x86_args
x86/
$1
"
else
x86_args
=
"
$x86_args
$1
"
fi
shift
done
$GCC_COMPILE_X86
$x86_args
||
exit
$?
if
test
x
"
$output
"
!
=
x
;
then
cp
$output
x86/
$output
fi
# Compile X86 32-bit
if
test
x
"
$output
"
!
=
x
;
then
dir
=
x64/
`
dirname
$output
`
if
test
-d
$dir
;
then
:
else
mkdir
-p
$dir
fi
fi
set
--
$args
while
test
x
$1
!
=
x
;
do
if
test
-f
"x64/
$1
"
&&
test
"
$1
"
!
=
"
$output
"
;
then
x64_args
=
"
$x64_args
x64/
$1
"
else
x64_args
=
"
$x64_args
$1
"
fi
shift
done
$GCC_COMPILE_X64
$x64_args
||
exit
$?
if
test
x
"
$output
"
!
=
x
;
then
cp
$output
x64/
$output
fi
if
test
x
"
$output
"
!
=
x
;
then
lipo
-create
-o
$output
ppc/
$output
ppc64/
$output
x86/
$output
x64/
$output
fi
File Metadata
Details
Attached
Mime Type
text/x-shellscript
Expires
Sun, Nov 15, 4:19 AM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
149187
Default Alt Text
gcc-fat.sh (5 KB)
Attached To
Mode
R75 R-Tech1
Attached
Detach File
Event Timeline