]> git.draconx.ca Git - dxcommon.git/blobdiff - snippet/autotest.mk
Fix depfiles compatibility with modern Automake.
[dxcommon.git] / snippet / autotest.mk
index 293a85860976c8a8fd4f97d58c3427733f2acd22..0a10c9f792b688b4b4b666153908d81fce4c7f09 100644 (file)
@@ -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
@@ -53,14 +53,17 @@ DX_AUTOTEST_ERROR = @:; { \
          printf 'Autoconf package: <https://gnu.org/s/autoconf/>\n'; \
        } 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 $@
 
@@ -68,7 +71,7 @@ testsuite.deps: testsuite
 if !HAVE_AUTOTEST
        $(DX_AUTOTEST_ERROR)
 endif
-       $(AM_V_GEN) $(AUTOTEST) $(ATFLAGS) -t m4_include:'$$1' -o $@.tmp \
+       $(AM_V_GEN) $(AUTOTEST) $(DX_ATFLAGS) -t m4_include:'$$1' -o $@.tmp \
          testsuite.at
        $(AM_V_at) mv -f $@.tmp $@
 
@@ -86,3 +89,12 @@ 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 $@