X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/c68b1198b4b11d686384cba21bf7f82e431ef542..92a89700c65e52fac8c2cace51a7112d60b3f42f:/snippet/autotest.mk diff --git a/snippet/autotest.mk b/snippet/autotest.mk index 04643f1..0a10c9f 100644 --- a/snippet/autotest.mk +++ b/snippet/autotest.mk @@ -1,4 +1,4 @@ -# Copyright © 2015 Nick Bowler +# Copyright © 2015,2019 Nick Bowler # # Automake fragment to hook up a basic Autotest test suite into the build. # It is expected that a testsuite.at file exists in $(srcdir). The @@ -46,24 +46,55 @@ package.m4: ; } >$@.tmp $(AM_V_at) mv -f $@.tmp $@ -testsuite: testsuite.at package.m4 -if !HAVE_AUTOTEST - @:; { \ +DX_AUTOTEST_ERROR = @:; { \ printf 'ERROR: Autotest was not available at configure time.\n'; \ printf 'You should only need it if you modified the test suite.\n'; \ printf 'Autotest is part of autom4te, included in the GNU\n'; \ printf 'Autoconf package: \n'; \ - } 1>&2 - @false + } 1>&2; false + +DX_ATFLAGS = -I$(srcdir) $(ATFLAGS) + +testsuite: testsuite.at package.m4 +if !HAVE_AUTOTEST + $(DX_AUTOTEST_ERROR) endif - $(AM_V_GEN) $(AUTOTEST) $(ATFLAGS) -p m4_include -o $@.tmp testsuite.at + $(AM_V_GEN) $(AUTOTEST) $(DX_ATFLAGS) -p m4_include -o $@.tmp \ + testsuite.at $(AM_V_at) :; { \ - $(AUTOTEST) $(ATFLAGS) -t m4_include:'$@: $$1' testsuite.at; \ - $(AUTOTEST) $(ATFLAGS) -t m4_include:'$$1:' testsuite.at; \ + $(AUTOTEST) $(DX_ATFLAGS) -t m4_include:'$@: $$1' testsuite.at; \ + $(AUTOTEST) $(DX_ATFLAGS) -t m4_include:'$$1:' testsuite.at; \ } >$(DEPDIR)/$(@F).P $(AM_V_at) mv -f $@.tmp $@ -EXTRA_DIST += testsuite testsuite.at package.m4 +testsuite.deps: testsuite +if !HAVE_AUTOTEST + $(DX_AUTOTEST_ERROR) +endif + $(AM_V_GEN) $(AUTOTEST) $(DX_ATFLAGS) -t m4_include:'$$1' -o $@.tmp \ + testsuite.at + $(AM_V_at) mv -f $@.tmp $@ + +dist-hook: dist-autotest-deps +dist-autotest-deps: testsuite.deps + exec 3<$?; while read f <&3; do \ + dir=`expr "$$f" : '\(.*\)/'`; \ + $(MKDIR_P) "$(distdir)/$$dir" && \ + chmod u+w "$(distdir)/$$dir" && \ + cp -p "$(srcdir)/$$f" "$(distdir)/$$f" || exit; \ + done +.PHONY: dist-autotest-deps + +EXTRA_DIST += testsuite testsuite.at testsuite.deps package.m4 DISTCLEANFILES += atconfig $(DEPDIR)/testsuite.P @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/testsuite.P@am__quote@ + +# Automake 1.16 and newer use make rules to generate the dependency stubs. +# we must hook those which is kind of annoying to do. This should be harmless +# on previous versions which generate the stubs directly in config.status. +_dx_autotest_depfiles = am--depfiles +$(_dx_autotest_depfiles): $(DEPDIR)/testsuite.P +$(DEPDIR)/testsuite.P: + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && mv -f $@-t $@