]> git.draconx.ca Git - dxcommon.git/blobdiff - snippet/autotest.mk
Fix testsuite VPATH builds.
[dxcommon.git] / snippet / autotest.mk
index b2baa2d09b4f45a2e5f019b636c9c9972898eb85..738e321851496ac33b23bc4c05d2af73cdfd4f73 100644 (file)
 
 check-local: check-autotest
 check-autotest: testsuite
-       $(SHELL) testsuite $(TESTSUITEFLAGS)
+       $(SHELL) $? $(TESTSUITEFLAGS)
 .PHONY: check-autotest
 
 clean-local: clean-autotest
 clean-autotest:
-       test ! -f testsuite || $(SHELL) testsuite --clean
+       for f in testsuite "$(srcdir)/testsuite"; do \
+         test ! -f "$$f" || { $(SHELL) "$$f" --clean; break; }; \
+       done
 .PHONY: clean-autotest
 
 maintainer-clean-local: maintainer-clean-autotest
@@ -44,22 +46,46 @@ 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: <https://gnu.org/s/autoconf/>\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@