s3:winbindd: use better debug messages than 'talloc_strdup failed'
[metze/samba-autobuild/.git] / Makefile
1 # simple makefile wrapper to run waf
2
3 WAF_BINARY=$(PYTHON) ./buildtools/bin/waf
4 WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY)
5
6 all:
7         $(WAF) build
8
9 install:
10         $(WAF) install
11
12 uninstall:
13         $(WAF) uninstall
14
15 test:
16         $(WAF) test $(TEST_OPTIONS)
17
18 testonly:
19         $(WAF) testonly $(TEST_OPTIONS)
20
21 perftest:
22         $(WAF) test --perf-test $(TEST_OPTIONS)
23
24 help:
25         @echo NOTE: to run extended waf options use $(WAF_BINARY) or modify your PATH
26         $(WAF) --help
27
28 subunit-test:
29         $(WAF) test --filtered-subunit $(TEST_OPTIONS)
30
31 testenv:
32         $(WAF) test --testenv $(TEST_OPTIONS)
33
34 lcov:
35         @echo usage:
36         @echo ""
37         @echo ./configure --enable-coverage
38         @echo make -j
39         @echo make test TESTS=mytest
40         @echo make lcov
41         @echo ""
42         rm -f lcov.info
43         lcov --capture --directory . --output-file lcov.info && \
44         genhtml lcov.info --output-directory public --prefix=$$(pwd) && \
45         echo Please open public/index.html in browser to view the coverage report
46
47 gdbtestenv:
48         $(WAF) test --testenv --gdbtest $(TEST_OPTIONS)
49
50 quicktest:
51         $(WAF) test --quick $(TEST_OPTIONS)
52
53 randomized-test:
54         $(WAF) test --random-order $(TEST_OPTIONS)
55
56 testlist:
57         $(WAF) test --list $(TEST_OPTIONS)
58
59 test-nopython:
60         $(WAF) test --no-subunit-filter --test-list=selftest/no-python-tests.txt $(TEST_OPTIONS)
61
62 dist:
63         touch .tmplock
64         WAFLOCK=.tmplock $(WAF) dist
65
66 distcheck:
67         touch .tmplock
68         WAFLOCK=.tmplock $(WAF) distcheck
69
70 printversion:
71         touch .tmplock
72         WAFLOCK=.tmplock $(WAF) printversion
73
74 clean:
75         $(WAF) clean
76
77 distclean:
78         $(WAF) distclean
79
80 reconfigure: configure
81         $(WAF) reconfigure
82
83 show_waf_options:
84         $(WAF) --help
85
86 # some compatibility make targets
87 everything: all
88
89 testsuite: all
90
91 check: test
92
93 torture: all
94
95 # this should do an install as well, once install is finished
96 installcheck: test
97
98 etags:
99         $(WAF) etags
100
101 ctags:
102         $(WAF) ctags
103
104 pep8:
105         $(WAF) pep8
106
107 # Adding force on the dependencies will force the target to be always rebuilt from the Make
108 # point of view forcing make to invoke waf
109
110 bin/smbd: FORCE
111         $(WAF) --targets=smbd/smbd
112
113 bin/winbindd: FORCE
114         $(WAF) --targets=winbindd/winbindd
115
116 bin/nmbd: FORCE
117         $(WAF) --targets=nmbd/nmbd
118
119 bin/smbclient: FORCE
120         $(WAF) --targets=client/smbclient
121
122 # this allows for things like "make bin/smbtorture"
123 # mainly for the binary that don't have a broken mode like smbd that must
124 # be built with smbd/smbd
125 bin/%: FORCE
126         $(WAF) --targets=$(subst bin/,,$@)
127
128 # Catch all rule to be able to call make service_repl in order to find the name
129 # of the submodule you want to build, look at the wscript
130 %:
131         $(WAF) --targets=$@
132
133 # This rule has to be the last one
134 FORCE:
135 # Having .NOTPARALLEL will force make to do targets one at a time but still -j
136 # will be present in the MAKEFLAGS that are in turn interpreted by WAF
137 # so only 1 waf at a time will be called but it will still be able to do parallel builds if
138 # instructed to do so
139 .NOTPARALLEL: %
140 .PHONY: FORCE everything testsuite check torture