osxcross/ogcc/ogcc
Thomas Pöchtrager 6c79d88501 add SDK packaging script
libc++ works now out of the box as long 'tools/gen_sdk_package.sh'
is used to create the SDK package
2014-03-28 21:04:32 +01:00

100 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
pushd "${0%/*}" &>/dev/null
eval `./osxcross-env`
eval `./osxcross-conf`
popd &>/dev/null
type=`basename $0`
if [[ $type == *o64* ]] || [[ $type == *x86_64* ]]; then
ARCH="x86_64"
ARCHFLAG="-m64"
else
if [[ $type == *o32* ]] || [[ $type == *i386* ]]; then
ARCH="i386"
ARCHFLAG="-m32"
else
echo "unknown arch"
exit 1
fi
fi
if [[ $type == *++* ]]; then
COMPILER="$OSXCROSS_TARGET_DIR/bin/$ARCH-apple-$OSXCROSS_TARGET-base-g++"
else
COMPILER="$OSXCROSS_TARGET_DIR/bin/$ARCH-apple-$OSXCROSS_TARGET-base-gcc"
fi
OSX_VERSION_MIN=$OSXCROSS_OSX_VERSION_MIN
if [ $# -gt 0 ]; then
ARCHGIVEN=0
for p in "$@"
do
if [ "$p" == "-arch" ] || [ "$p" == "-m32" ] || [ "$p" == "-m64" ]; then
ARCHGIVEN=1
continue
fi
if [[ "$p" == -mmacosx-version-min=* ]]; then
OSXCROSS_OSX_VERSION_MIN="default"
OSX_VERSION_MIN=`echo "$p" | tr '=' ' ' | awk '{print $2}'`
continue
fi
if [ "$p" == "-v" ] || [ "$p" == "--version" ]; then
if [ $# -eq 1 ]; then
$COMPILER $p
exit $?
fi
fi
done
if [ $ARCHGIVEN -eq 0 ]; then
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS $ARCHFLAG"
fi
fi
if [[ $COMPILER == *g++ ]] && [[ $type == *libc++* ]]; then
if ( [ $OSX_VERSION_MIN != "default" ] &&
[ `echo "$OSX_VERSION_MIN<=10.6" | bc -l` -eq 1 ] );
then
if [ $OSXCROSS_OSX_VERSION_MIN = "default" ]; then
echo -en "\e[1mosxcross \e[31merror:\e[0m\e[0m" 2>&1
echo " -stdlib=libc++ requires Mac OS X 10.7 or later" 2>&1
exit 1
fi
OSXCROSS_OSX_VERSION_MIN="10.7"
fi
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -std=c++0x -nostdinc++ -nodefaultlibs"
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -lc -isystem $OSXCROSS_SDK/usr/include/c++/v1"
REGEX="\-o\s*[^ ]+\.gch"
if [[ ! "$@" =~ $REGEX ]]; then
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -lc++ -lc++abi -lgcc_s.10.5"
fi
else
REGEX="\-o\s*[^ ]+\.gch"
if [[ ! "$@" =~ $REGEX ]]; then
if [[ $COMPILER == *g++ ]]; then
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -static-libgcc -static-libstdc++"
else
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -static-libgcc"
fi
fi
fi
if [ $OSXCROSS_OSX_VERSION_MIN != "default" ]; then
OSX_VERSION_MIN_OPT="-mmacosx-version-min=$OSXCROSS_OSX_VERSION_MIN"
else
OSX_VERSION_MIN_OPT=""
fi
export COMPILER_PATH="$OSXCROSS_CCTOOLS_PATH:$COMPILER_PATH"
export LD_LIBRARY_PATH="/usr/local/lib:/usr/pkg/lib:$LD_LIBRARY_PATH"
$COMPILER $OSX_VERSION_MIN_OPT $OSXCROSS_OPT_ARGS ${1+"$@"}
exit $?