]> git.tdb.fi Git - builder.git/blobdiff - bootstrap.sh
Force shared linking on Android
[builder.git] / bootstrap.sh
index dd0e8a6e09748f5f8e9eddc2f0caaeb2bcef6bd2..f198f6f6ad5526b5045c654e5319a4f05922ce8d 100755 (executable)
@@ -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" -o "$SYSTEM" = "FreeBSD" ]; 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"