Failing to distribute all testsuite dependencies will cause failures
if the testsuite is modified. Unfortunately, this is not caught by
distcheck because the testsuite is not rebuilt normally. Therefore,
it is desirable for the dependencies to be picked up automatically
to reduce the possibility of omission.
We could check the M4 traces in a dist-hook, but then Autotest becomes
a dependency for "make dist", even when the testsuite is not modified.
Instead, distribute a record of all dependencies, and use that to
implement the dist-hook.
/compile
/testsuite.dir
/testsuite.log
/compile
/testsuite.dir
/testsuite.log
/testsuite
/package.m4
/atconfig
/testsuite
/package.m4
/atconfig
; } >$@.tmp
$(AM_V_at) mv -f $@.tmp $@
; } >$@.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'; \
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
+
+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_at) :; { \
endif
$(AM_V_GEN) $(AUTOTEST) $(ATFLAGS) -p m4_include -o $@.tmp testsuite.at
$(AM_V_at) :; { \
} >$(DEPDIR)/$(@F).P
$(AM_V_at) mv -f $@.tmp $@
} >$(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) $(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@
DISTCLEANFILES += atconfig $(DEPDIR)/testsuite.P
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/testsuite.P@am__quote@