summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:20:00 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:20:00 +0000
commit8daa83a594a2e98f39d764422bfbdbc62c9efd44 (patch)
tree4099e8021376c7d8c05bdf8503093d80e9c7bad0 /Makefile
parentInitial commit. (diff)
downloadsamba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.tar.xz
samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.zip
Adding upstream version 2:4.20.0+dfsg.upstream/2%4.20.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile140
1 files changed, 140 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b037c39
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,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