s4:WAF buildsystem - support out of "source4" directory builds
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Thu, 8 Apr 2010 10:38:17 +0000 (12:38 +0200)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Thu, 8 Apr 2010 12:14:24 +0000 (14:14 +0200)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=4081

With this patch we are able to invoke s4 builds from the outside of the
"source4" directory (but the target remains the "source4/bin" path).

One constraint: all commands: "autogen-waf.sh", "configure", "make" have to be
run from the same directory!
Regarding "make": you have to run it using "make -C <source4 path> [targets]" if
the invoke directory is not "source4" itself.

buildtools/scripts/configure.waf
source4/autogen-waf.sh

index a6367e7314173efbc35d20381b796c521de5a2f4..79a7a35c5dc7db4708aabce9ad07b3e863573fb6 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+PREVPATH=`dirname $0`
 
 WAF=BUILDTOOLS/bin/waf
 
@@ -8,4 +9,6 @@ WAF=BUILDTOOLS/bin/waf
 JOBS=1
 export JOBS
 
+cd BUILDPATH
 $WAF configure $*
+cd $PREVPATH
index 9cb144afcf475025e8791c774a558503e3b2bc10..a3aa979f517f4980214b68aa3f7783d9c44debf3 100755 (executable)
@@ -1,22 +1,28 @@
 #!/bin/sh
 
+p=`dirname $0`
+
 echo "Setting up for waf build"
 
 echo "Looking for the buildtools directory"
 
 d="buildtools"
-while test \! -d $d; do d="../$d"; done
+while test \! -d "$p/$d"; do d="../$d"; done
 
-echo "Found buildtools in $d"
+echo "Found buildtools in $p/$d"
 
 echo "Setting up configure"
-rm -f configure
-sed "s|BUILDTOOLS|$d|g" < "$d/scripts/configure.waf" > configure
-chmod +x configure
+rm -f $p/configure
+sed "s|BUILDTOOLS|$d|g;s|BUILDPATH|$p|g" < "$p/$d/scripts/configure.waf" > $p/configure
+chmod +x $p/configure
 
 echo "Setting up makefile"
 # this relies on the fact that make looks for 'makefile' before 'Makefile'
-rm -f makefile
-sed "s|BUILDTOOLS|$d|g" < "$d/scripts/Makefile.waf" > makefile
+rm -f $p/makefile
+sed "s|BUILDTOOLS|$d|g" < "$p/$d/scripts/Makefile.waf" > $p/makefile
 
-echo "done. Now run ./configure or ./configure.developer then make"
+echo "done. Now run $p/configure or $p/configure.developer then make."
+if [ $p != "." ]; then
+       echo "Notice: The build invoke path is not 'source4'! Use make with the parameter"
+       echo "-C <'source4' path>. Example: make -C source4 all"
+fi