]> git.tdb.fi Git - builder.git/commitdiff
Fix bootstrap to handle overlays in a more generic way
authorMikko Rasa <tdb@tdb.fi>
Mon, 9 Mar 2015 16:58:40 +0000 (18:58 +0200)
committerMikko Rasa <tdb@tdb.fi>
Mon, 9 Mar 2015 16:58:40 +0000 (18:58 +0200)
bootstrap.sh

index f198f6f6ad5526b5045c654e5319a4f05922ce8d..02fbd33445a9735dd78e5c3c3d71f7446d54619d 100755 (executable)
@@ -1,5 +1,4 @@
 #!/bin/sh
-# $Id$
 
 set -e
 
@@ -75,13 +74,30 @@ mkdir -p "$INCLUDEDIR/msp"
 
 sources=source/*.cpp
 
+use_overlays="unix generic"
 missing=""
 for i in $REQUIRED; do
        path=`ls -1d $LIBPATH/*$i* 2>/dev/null | head -n1`
        if [ -z "$path"  -o ! -d "$path/source" ]; then
                missing="$missing msp$i"
        else
-               headers=`find $path/source \( -name windows -prune \) -o \( -name '*.h' -print \)`
+               if [ "`echo $path/source/*.cpp`" = "$path/source/*.cpp" ]; then
+                       subdirs=`find "$path/source" -mindepth 1 -maxdepth 1 -type d`
+               else
+                       subdirs="$path/source"
+               fi
+
+               check_overlay=""
+               for j in $use_overlays; do
+                       [ -z "$check_overlay" ] || check_overlay="$check_overlay -o "
+                       check_overlay="${check_overlay}-name $j"
+               done
+               findargs="$subdirs"
+               if [ "$check_overlay" ]; then
+                       findargs="$findargs -mindepth 1 ( -type d ! ( $check_overlay ) -prune ) ,"
+               fi
+
+               headers=`find $findargs -name '*.h'`
                for j in $headers; do
                        rel=${j#$path/source/}
                        comp=${rel%%/*}
@@ -91,7 +107,7 @@ for i in $REQUIRED; do
                        mkdir -p "$INCLUDEDIR/msp/$comp"
                        ln -sf $j "$INCLUDEDIR/msp/$comp/"
                done
-               sources="$sources `find $path/source \( -name windows -prune \) -o \( -name '*.cpp' -print \)`"
+               sources="$sources `find $findargs -name '*.cpp'`"
        fi
 done
 
@@ -109,11 +125,14 @@ for i in $sources; do
        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
+       for j in $use_overlays; do
+               dir=${dir%/$j}
+               if [ -d "$dir/$j" ]; then
+                       flags="$flags -iquote $dir -iquote $dir/$j"
+                       break
+               fi
+       done
        $COMPILER -c $DEBUG $i -o $obj $flags
        objects="$objects $obj"
 done