summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorMatthieu Patou <mat@matws.net>2014-09-25 23:32:50 -0700
committerMatthieu Patou <mat@samba.org>2014-09-26 11:48:11 +0200
commit0b08db43bb10a909f7f7bf01eccd7b65140ae950 (patch)
tree49c53c26b238124b917da5993d17ea96add8fb41 /Makefile
parent0aacbe78bb40d76b65087c2a197c92b0101e625e (diff)
downloadsamba-0b08db43bb10a909f7f7bf01eccd7b65140ae950.tar.gz
Add some plumbing in our top level Makefile to make life easier
For instance you can type make bin/smbd to build just smbd (and it's dependencies still) or make bin/smbd bin/smbtorture You can also do make service_drepl if you want just to build the stuff related to DRS Change-Id: I61bdaeff79ecfb1a15728c2de7e6a6a14dd8bc7d Signed-off-by: Matthieu Patou <mat@matws.net> Reviewed-by: Michael Adam <obnox@samba.org> Autobuild-User(master): Matthieu Patou <mat@samba.org> Autobuild-Date(master): Fri Sep 26 11:48:11 CEST 2014 on sn-devel-104
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile40
1 files changed, 35 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index a53c27af854..4cbbb146841 100644
--- a/Makefile
+++ b/Makefile
@@ -70,13 +70,43 @@ etags:
ctags:
$(WAF) ctags
-# this allows for things like "make bin/smbtorture"
-bin/%:: FORCE
- $(WAF) --targets=$@
-FORCE:
-
pydoctor:
$(WAF) pydoctor
pep8:
$(WAF) pep8
+
+# Adding force on the depencies will force the target to be always rebuild form the Make
+# point of view forcing make to invoke waf
+
+bin/smbd: FORCE
+ $(WAF) --targets=smbd/smbd
+
+bin/winbindd: FORCE
+ $(WAF) --targets=winbindd/winbindd
+
+bin/nmbd: FORCE
+ $(WAF) --targets=nmbd/nmbd
+
+bin/smbclient: FORCE
+ $(WAF) --targets=client/smbclient
+
+# this allows for things like "make bin/smbtorture"
+# mainly for the binary that don't have a broken mode like smbd that must
+# be build with smbd/smbd
+bin/%: FORCE
+ $(WAF) --targets=$(subst bin/,,$@)
+
+# Catch all rule to be able to call make service_repl in order to find the name
+# of the submodule you want to build, look at the wscript
+%:
+ $(WAF) --targets=$@
+
+# This rule has to be the last one
+FORCE:
+# Having .NOTPARALLEL will force make to do target once at a time but still -j
+# will be present in the MAKEFLAGS that are in turn interpreted by WAF
+# so only 1 waf at a time will be called but it will still be able to do parralel builds if
+# instructed to do so
+.NOTPARALLEL: %
+.PHONY: FORCE