From 6bba07ea3a95f69fcb47457dde0970a72eecbcee Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Fri, 25 Mar 2022 23:58:29 -0400 Subject: [PATCH] Fix autotest snippet with --disable-dependency-tracking. When configuring with --disable-dependency-tracking, the .deps directories are not created by config.status so unconditionally creating files in there will not work. We can avoid this problem by adjusting the rule to skip updating testsuite.P in this configuration. Add a new test case to expose the issue. --- snippet/autotest.mk | 4 +++- tests/snippets.at | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/snippet/autotest.mk b/snippet/autotest.mk index 10acd71..5b3764b 100644 --- a/snippet/autotest.mk +++ b/snippet/autotest.mk @@ -1,4 +1,4 @@ -# Copyright © 2015,2019-2021 Nick Bowler +# Copyright © 2015,2019-2022 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). @@ -66,8 +66,10 @@ endif $(AM_V_GEN) $(DX_AUTOTEST) -p m4_include -o $@.tmp testsuite.at $(AM_V_at) $(DX_AUTOTEST) -t m4_include:'$$1' -o $@.deps.tmp \ testsuite.at +if AMDEP $(AM_V_at) exec 3<$@.deps.tmp 4>$(DEPDIR)/$(@F).P; \ while read f <&3; do printf '$@: %s\n%s:\n' "$$f" "$$f" >&4; done +endif $(AM_V_at) mv -f $@.deps.tmp $@.deps $(AM_V_at) mv -f $@.tmp $@ testsuite.deps: testsuite diff --git a/tests/snippets.at b/tests/snippets.at index 4352725..fe4eb08 100644 --- a/tests/snippets.at +++ b/tests/snippets.at @@ -59,6 +59,37 @@ AT_CHECK([./configure MAKE=dmake && test -f .deps/testsuite.P], [0], [ignore]) AT_CLEANUP +AT_SETUP([autotest.mk no depfiles]) + +TEST_CONFIGURE_AC( +[[AM_INIT_AUTOMAKE([foreign]) + +AM_SET_DEPDIR +AM_OUTPUT_DEPENDENCY_COMMANDS +AM_MAKE_INCLUDE +AM_DEP_TRACK + +DX_AUTOMAKE_COMPAT +AM_CONDITIONAL([HAVE_AUTOTEST], [:]) + +AC_CONFIG_FILES([Makefile]) +]]) + +cp "$srcdir/snippet/autotest.mk" . +AT_DATA([Makefile.am], +[[DISTCLEANFILES = +EXTRA_DIST = +include $(top_srcdir)/autotest.mk +]]) +TEST_AUTORECONF + +TEST_CONFIGURE([--disable-dependency-tracking]) + +AT_DATA([testsuite.at]) +AT_CHECK([make -s AUTOTEST="$srcdir/t/autotest.sh" testsuite]) + +AT_CLEANUP + AT_SETUP([glconfig.mk no depfiles]) TEST_CONFIGURE_AC( -- 2.43.2