From f3f82496ac1198ffa65d5b2a052838248e0685aa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Matthias=20Dieter=20Walln=C3=B6fer?= Date: Thu, 8 Apr 2010 12:38:17 +0200 Subject: [PATCH] s4:WAF buildsystem - support out of "source4" directory builds 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 [targets]" if the invoke directory is not "source4" itself. --- buildtools/scripts/configure.waf | 3 +++ source4/autogen-waf.sh | 22 ++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/buildtools/scripts/configure.waf b/buildtools/scripts/configure.waf index a6367e73141..79a7a35c5dc 100755 --- a/buildtools/scripts/configure.waf +++ b/buildtools/scripts/configure.waf @@ -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 diff --git a/source4/autogen-waf.sh b/source4/autogen-waf.sh index 9cb144afcf4..a3aa979f517 100755 --- a/source4/autogen-waf.sh +++ b/source4/autogen-waf.sh @@ -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 -- 2.34.1