X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=Subdir.sd.mk;h=bb2476fbc4413aa90dbe2573c4bc4edd1a74757f;hb=4a6ee8b677fd7addc97fc0d245f95ddde3b5f8e4;hp=0423cf44ebf5a87a13b618664c544f4e2bafa291;hpb=163a6e361847c3f3f63f6756a143035753d5e151;p=secnet.git diff --git a/Subdir.sd.mk b/Subdir.sd.mk index 0423cf4..bb2476f 100644 --- a/Subdir.sd.mk +++ b/Subdir.sd.mk @@ -65,6 +65,9 @@ OBJECTS:=version.o TEST_OBJECTS:= endif +&OBJECTS += $(OBJECTS) $(TEST_OBJECTS) +&:include subdirmk/cdeps.sd.mk + STALE_PYTHON_FILES= $(foreach e, py pyc, \ $(foreach p, /usr /usr/local, \ $(foreach l, ipaddr, \ @@ -80,36 +83,16 @@ STALE_PYTHON_FILES= $(foreach e, py pyc, \ bison -d -o $@ $< %.o: %.c conffile.yy.h - $(CC) $(CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@ - -all: $(TARGETS) check + $(CC) $(CPPFLAGS) $(ALL_CFLAGS) $(CDEPS_CFLAGS) -c $< -o $@ -# Automatic remaking of configuration files, from autoconf documentation -${srcdir}/configure: configure.in - cd ${srcdir} && autoconf +all:: $(TARGETS) -# autoheader might not change config.h.in, so touch a stamp file. -${srcdir}/config.h.in: config.stamp.in -${srcdir}/config.stamp.in: configure.in +${srcdir}/config.h.in: configure.ac cd ${srcdir} && autoheader - echo timestamp > ${srcdir}/config.stamp.in - -config.h: config.stamp -config.stamp: config.h.in config.status - ./config.status - -Makefile: Makefile.in config.status - ./config.status - -config.status: configure - ./config.status --recheck -# End of config file remaking rules - -# C and header file dependency rules -SOURCES:=$(OBJECTS:.o=.c) $(TEST_OBJECTS:.o=.c) -DEPENDS:=$(OBJECTS:.o=.d) $(TEST_OBJECTS:.o=.d) + touch $@ --include *.d +MAKEFILE_TEMPLATES += config.h.in +CONFIG_STATUS_OUTPUTS += config.h # Manual dependencies section conffile.yy.c: conffile.fl conffile.tab.c @@ -135,17 +118,15 @@ endif TESTDIRS=stest mtest -FAST_CHECKS= eax-aes-test.confirm eax-serpent-test.confirm \ - eax-serpentbe-test.confirm check-ipaddrset \ - $(addprefix check-,$(TESTDIRS)) +&TARGETS_check = eax-aes-test.confirm eax-serpent-test.confirm \ + eax-serpentbe-test.confirm ipaddrset.confirm \ + $(addsuffix /check,$(TESTDIRS)) -CHECKS += $(FAST_CHECKS) -CHECKS += msgcode-test.confirm - -check: $(CHECKS) +&TARGETS_fullcheck += $(&TARGETS_check) +&TARGETS_fullcheck += msgcode-test.confirm recheck: - rm -f $(FAST_CHECKS) + rm -f $(&TARGETS_CHECK) rm -rf $(addsuffix /d-*, $(TESTDIRS)) $(MAKE) check @@ -174,18 +155,10 @@ msgcode-test.confirm: msgcode-test ./msgcode-test touch $@ -check-ipaddrset: ipaddrset-test.py ipaddrset.py ipaddrset-test.expected +ipaddrset.confirm: ipaddrset-test.py ipaddrset.py ipaddrset-test.expected $(srcdir)/ipaddrset-test.py >ipaddrset-test.new diff -u $(srcdir)/ipaddrset-test.expected ipaddrset-test.new - -check-stest: secnet test-example/sites.conf - $(MAKE) -C stest check - -check-mtest: make-secnet-sites $(PYMODULES) - $(MAKE) -C mtest check - -test-example/sites.conf: - $(MAKE) -C test-example + touch $@ .PRECIOUS: eax-%-test @@ -197,7 +170,7 @@ installdirs: install: installdirs set -e; ok=true; for f in $(STALE_PYTHON_FILES); do \ if test -e $$f; then \ - echo >&2 "ERROR: $$f still exists "\ + echo >\&2 "ERROR: $$f still exists "\ "- try \`make install-force'"; \ ok=false; \ fi; \ @@ -216,21 +189,21 @@ install-force: rm -f $(STALE_PYTHON_FILES) $(MAKE) install -clean: $(addprefix clean-,$(TESTDIRS)) +clean:: $(RM) -f *.o *.yy.[ch] *.tab.[ch] $(TARGETS) core version.c - $(RM) -f *.d *.pyc *~ eax-*-test.confirm eax-*-test + $(RM) -f *.pyc *~ eax-*-test.confirm eax-*-test + $(RM) $(&CLEAN) $(RM) -rf __pycache__ $(RM) -f msgcode-test.confirm msgcode-test -$(addprefix clean-,$(TESTDIRS)): clean-%: - $(MAKE) -C $* clean - -realclean: clean - $(RM) -f *~ Makefile config.h *.d \ +realclean:: clean + $(RM) -f *~ Makefile config.h \ config.log config.status config.cache \ config.stamp Makefile.bak -distclean: realclean +distclean:: realclean + +include subdirmk/regen.mk # Release checklist: #