5 SOURCEDIRS="source/lib source/bootstrap plugins/base plugins/gnu"
6 INCLUDEDIR=temp/bootstrap/include
7 REQUIRED="core datafile"
8 CFLAGS="-std=c++11 -iquote . -I$INCLUDEDIR `pkg-config --cflags sigc++-2.0`"
9 LIBS="`pkg-config --libs sigc++-2.0` -lpthread"
12 if [ "$MACHINE" = "x86_64" ]; then
13 MULTIARCH="x86_64-linux-gnu"
15 MULTIARCH="i386-linux-gnu"
17 if [ "$SYSTEM" = "Darwin" -o "$SYSTEM" = "FreeBSD" ]; then
18 if which clang++ >/dev/null; then
26 if [ -e /usr/lib/libdl.so -o -e /usr/lib/$MULTIARCH/libdl.so ]; then
37 LIBPATH="${1#--libpath=}"
44 PREFIX="${1#--prefix=}"
55 COMPILER="${1#--compiler=}"
62 echo "Unknown option $1"
69 if [ -z "$LIBPATH" -o "${LIBPATH%%/*}" ]; then
70 LIBPATH="$PWD/${LIBPATH:-..}"
74 mkdir -p "$INCLUDEDIR/msp"
76 sources=`find $SOURCEDIRS -name '*.cpp'`
78 mkdir -p "$INCLUDEDIR/msp/builder"
79 ln -sf "$PWD/source/lib"/*.h "$INCLUDEDIR/msp/builder/"
81 use_overlays="unix generic"
83 for i in $REQUIRED; do
84 path=`ls -1d $LIBPATH/*$i* 2>/dev/null | head -n1`
85 if [ -z "$path" -o ! -d "$path/source" ]; then
86 missing="$missing msp$i"
88 if [ "`echo $path/source/*.cpp`" = "$path/source/*.cpp" ]; then
89 subdirs=`find "$path/source" -mindepth 1 -maxdepth 1 -type d`
91 subdirs="$path/source"
95 for j in $use_overlays; do
96 [ -z "$check_overlay" ] || check_overlay="$check_overlay -o "
97 check_overlay="${check_overlay}-name $j"
100 if [ "$check_overlay" ]; then
101 findargs="$findargs -mindepth 1 ( -type d ! ( $check_overlay ) -prune -false ) -o "
104 for j in `find $findargs -name '*.h'`; do
105 rel=${j#$path/source/}
107 if [ "$comp" = "$rel" ]; then
110 mkdir -p "$INCLUDEDIR/msp/$comp"
111 ln -sf $j "$INCLUDEDIR/msp/$comp/"
113 sources="$sources `find $findargs -name '*.cpp'`"
117 if [ ! -z "$missing" ]; then
118 echo "The following libraries were not found:$missing"
119 echo "I looked for them in $LIBPATH"
120 echo "If they are somewhere else, please add --libpath=PATH to the command line."
124 echo "Compiling builder-stage1. This may take several minutes."
126 for i in $sources; do
127 obj=`mktemp temp/bootstrap/XXXXXX`
132 for j in $use_overlays; do
134 if [ -d "$dir/$j" ]; then
135 flags="$flags -iquote $dir -iquote $dir/$j"
140 $COMPILER -c $DEBUG $i -o $obj $flags
141 objects="$objects $obj"
143 echo "Linking builder-stage1"
144 $COMPILER $objects -o builder-stage1 $LIBS
146 if [ "$KEEP_TEMP" != "yes" ]; then
151 echo "Using builder-stage1 to compile builder."
153 if [ "$PREFIX" ]; then
154 ARGS="$ARGS --prefix='$PREFIX'"
156 if [ "$CUSTOM_COMPILER" = "yes" ]; then
157 ARGS="$ARGS --compiler=$COMPILER"
159 eval "./builder-stage1 $ARGS"