X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=bootstrap.sh;h=6464f1d85bac9fece9c347db771bf559f44c849e;hb=c75c89d2425ab0c69e94d45a5d956286838bbc67;hp=dd0e8a6e09748f5f8e9eddc2f0caaeb2bcef6bd2;hpb=619d785d9874b67a20339e1ebe5b89d22cba2f11;p=builder.git diff --git a/bootstrap.sh b/bootstrap.sh index dd0e8a6..6464f1d 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -8,11 +8,21 @@ REQUIRED="core datafile" CFLAGS="-I$INCLUDEDIR `pkg-config --cflags sigc++-2.0`" LIBS="`pkg-config --libs sigc++-2.0` -lpthread" MACHINE="`uname -m`" +SYSTEM="`uname -s`" if [ "$MACHINE" = "x86_64" ]; then MULTIARCH="x86_64-linux-gnu" else MULTIARCH="i386-linux-gnu" fi +if [ "$SYSTEM" = "Darwin" ]; then + if which clang++ >/dev/null; then + COMPILER="clang++" + else + COMPILER="g++" + fi +else + COMPILER="g++" +fi if [ -e /usr/lib/libdl.so -o -e /usr/lib/$MULTIARCH/libdl.so ]; then LIBS="$LIBS -ldl" fi @@ -36,6 +46,18 @@ while [ "$1" ]; do --keep-temp) KEEP_TEMP=yes ;; + --compiler) + shift + COMPILER="$1" + CUSTOM_COMPILER=yes + ;; + --compiler=*) + COMPILER="${1#--compiler=}" + CUSTOM_COMPILER=yes + ;; + --debug) + DEBUG=-g + ;; *) echo "Unknown option $1" exit 1 @@ -83,17 +105,19 @@ fi echo "Compiling builder-stage1. This may take several minutes." objects="" for i in $sources; do - obj=`mktemp --tmpdir=temp/bootstrap XXXXXX.o` + obj=`mktemp temp/bootstrap/XXXXXX` + mv $obj $obj.o + obj=$obj.o dir=${i%/*} dir=${dir%/unix} flags="$CFLAGS" if [ -d "$dir/unix" ]; then flags="$flags -iquote $dir -iquote $dir/unix" fi - g++ -c $i -o $obj $flags + $COMPILER -c $DEBUG $i -o $obj $flags objects="$objects $obj" done -g++ $objects -o builder-stage1 $LIBS +$COMPILER $objects -o builder-stage1 $LIBS if [ "$KEEP_TEMP" != "yes" ]; then echo "Cleaning up" @@ -105,4 +129,7 @@ ARGS= if [ "$PREFIX" ]; then ARGS="$ARGS --prefix='$PREFIX'" fi +if [ "$CUSTOM_COMPILER" = "yes" ]; then + ARGS="$ARGS CXX=$COMPILER" +fi eval "./builder-stage1 $ARGS"