X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=bootstrap.sh;h=70d032399886d10d9bd983342a426e47866be271;hb=c45cc6fd2b13513909d43b5f95370b00c8b4c25e;hp=cdaeee6138e989e66e4c155cc56987546bfaeb09;hpb=05aafad32a76aa43b95f0e1141027d0ebfc1b07e;p=builder.git diff --git a/bootstrap.sh b/bootstrap.sh index cdaeee6..70d0323 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -3,35 +3,80 @@ set -e -REQUIRED="core datafile fs strings io" -CFLAGS="-Iinclude `pkg-config --cflags sigc++-2.0`" +INCLUDEDIR=temp/bootstrap/include +REQUIRED="core datafile" +CFLAGS="-I$INCLUDEDIR `pkg-config --cflags sigc++-2.0`" LIBS="`pkg-config --libs sigc++-2.0` -lpthread" -if [ -e /usr/lib/libdl.so ]; then +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 + +while [ "$1" ]; do + case $1 in + --libpath) + shift + LIBPATH="$1" + ;; + --libpath=*) + LIBPATH="${1#--libpath=}" + ;; + --prefix) + shift + PREFIX="$1" + ;; + --prefix=*) + PREFIX="${1#--prefix=}" + ;; + *) + echo "Unknown option $1" + exit 1 + ;; + esac + shift +done + if [ -z "$LIBPATH" -o "${LIBPATH%%/*}" ]; then LIBPATH=`pwd`/${LIBPATH:-..} fi -rm -rf include -mkdir -p include/msp +rm -rf "$INCLUDEDIR" +mkdir -p "$INCLUDEDIR/msp" sources=source/*.cpp +missing="" for i in $REQUIRED; do path=`ls -1d $LIBPATH/*$i* 2>/dev/null | head -n1` - if [ -z "$path" ]; then - echo msp$i missing - exit 1 - fi - if [ $i = "core" ]; then - ln -sf $path/source/* include/msp/ + if [ -z "$path" -o ! -d "$path/source" ]; then + missing="$missing msp$i" else - ln -sf $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 add --libpath=PATH to the command line." + exit 1 +fi + echo "Compiling builder-stage1. This may take several minutes." g++ $sources -o builder-stage1 $CFLAGS $LIBS -echo "Done." +echo "Using builder-stage1 to compile builder." +ARGS= +if [ "$PREFIX" ]; then + ARGS="$ARGS --prefix='$PREFIX'" +fi +eval "./builder-stage1 $ARGS"