]> git.tdb.fi Git - builder.git/blobdiff - bootstrap.sh
Make bootstrap.sh create the staging include directory in temp
[builder.git] / bootstrap.sh
index 6053cea9f3a8572e25827c4a17308170a4ae8994..810ac1240882e883ef889960001ef1897fb304fd 100755 (executable)
@@ -1,34 +1,53 @@
 #!/bin/sh
 # $Id$
 
-REQUIRED="core datafile path strings io"
-CFLAGS="-Iinclude `pkg-config --cflags sigc++-2.0`"
-LIBS="`pkg-config --libs sigc++-2.0` -lpthread -ldl"
-if [ -z "$LIBPATH" ]; then
-       LIBPATH=`pwd`/..
-fi
+set -e
 
-LIBPATH=`readlink -f $LIBPATH`
+INCLUDEDIR=temp/bootstrap/include
+REQUIRED="core datafile"
+CFLAGS="-I$INCLUDEDIR `pkg-config --cflags sigc++-2.0`"
+LIBS="`pkg-config --libs sigc++-2.0` -lpthread"
+MACHINE="`uname -m`"
+if [ "$MACHINE" = "x86_64" ]; then
+       MULTIARCH="x86_64-linux-gnu"
+else
+       MULTIARCH="i386-linux-gnu"
+fi
+if [ -e /usr/lib/libdl.so -o -e /usr/lib/$MULTIARCH/libdl.so ]; then
+       LIBS="$LIBS -ldl"
+fi
+if [ -z "$LIBPATH" -o "${LIBPATH%%/*}" ]; then
+       LIBPATH=`pwd`/${LIBPATH:-..}
+fi
 
-mkdir -p include/msp
+rm -rf "$INCLUDEDIR"
+mkdir -p "$INCLUDEDIR/msp"
 
 sources=source/*.cpp
 
+missing=""
 for i in $REQUIRED; do
-       path=$LIBPATH/$i
-       if [ ! -e $path ]; then
-               echo $i missing
-               exit 1
-       fi
-       if [ $i = "core" ]; then
-               ln -sfT $path/source/core include/msp/core
-               ln -sfT $path/source/time include/msp/time
-       elif [ $i = "misc" ]; then
-               ln -sf $path/source/*.h include/msp
+       path=`ls -1d $LIBPATH/*$i* 2>/dev/null | head -n1`
+       if [ -z "$path"  -o ! -d "$path/source" ]; then
+               missing="$missing msp$i"
        else
-               ln -sfT $path/source include/msp/$i
+               if [ $i = "core" ]; then
+                       ln -sf $path/source/* "$INCLUDEDIR/msp/"
+               else
+                       ln -sf $path/source "$INCLUDEDIR/msp/$i"
+               fi
+               sources="$sources `find $path/source -name '*.cpp'`"
        fi
-       sources="$sources `find $path/source -name '*.cpp'`"
 done
 
+if [ ! -z "$missing" ]; then
+       echo "The following libraries were not found:$missing"
+       echo "I looked for them in $LIBPATH"
+       echo "If they are somewhere else, please adjust the LIBPATH environment variable."
+       exit 1
+fi
+
+echo "Compiling builder-stage1.  This may take several minutes."
 g++ $sources -o builder-stage1 $CFLAGS $LIBS
+echo "Using builder-stage1 to compile builder."
+./builder-stage1