-
Notifications
You must be signed in to change notification settings - Fork 8
/
Makefile
140 lines (101 loc) · 2.8 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# simple makefile wrapper to run waf
WAF_BINARY=$(PYTHON) ./buildtools/bin/waf
WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY)
all:
$(WAF) build
install:
$(WAF) install
uninstall:
$(WAF) uninstall
test:
$(WAF) test $(TEST_OPTIONS)
testonly:
$(WAF) testonly $(TEST_OPTIONS)
perftest:
$(WAF) test --perf-test $(TEST_OPTIONS)
help:
@echo NOTE: to run extended waf options use $(WAF_BINARY) or modify your PATH
$(WAF) --help
subunit-test:
$(WAF) test --filtered-subunit $(TEST_OPTIONS)
testenv:
$(WAF) test --testenv $(TEST_OPTIONS)
lcov:
@echo usage:
@echo ""
@echo ./configure --enable-coverage
@echo make -j
@echo make test TESTS=mytest
@echo make lcov
@echo ""
rm -f lcov.info
lcov --capture --directory . --output-file lcov.info && \
genhtml lcov.info --output-directory public --prefix=$$(pwd) && \
echo Please open public/index.html in browser to view the coverage report
gdbtestenv:
$(WAF) test --testenv --gdbtest $(TEST_OPTIONS)
quicktest:
$(WAF) test --quick $(TEST_OPTIONS)
randomized-test:
$(WAF) test --random-order $(TEST_OPTIONS)
testlist:
$(WAF) test --list $(TEST_OPTIONS)
test-nopython:
$(WAF) test --no-subunit-filter --test-list=selftest/no-python-tests.txt $(TEST_OPTIONS)
dist:
touch .tmplock
WAFLOCK=.tmplock $(WAF) dist
distcheck:
touch .tmplock
WAFLOCK=.tmplock $(WAF) distcheck
printversion:
touch .tmplock
WAFLOCK=.tmplock $(WAF) printversion
clean:
$(WAF) clean
distclean:
$(WAF) distclean
reconfigure: configure
$(WAF) reconfigure
show_waf_options:
$(WAF) --help
# some compatibility make targets
everything: all
testsuite: all
check: test
torture: all
# this should do an install as well, once install is finished
installcheck: test
etags:
$(WAF) etags
ctags:
$(WAF) ctags
pep8:
$(WAF) pep8
# Adding force on the dependencies will force the target to be always rebuilt from 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 built 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 targets one 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 parallel builds if
# instructed to do so
.NOTPARALLEL: %
.PHONY: FORCE everything testsuite check torture