X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/157fb6f1bcb5af0d93bb588522bb1be86aa2fd71..HEAD:/snippet/autotest.mk diff --git a/snippet/autotest.mk b/snippet/autotest.mk index badfc9f..4e02f0b 100644 --- a/snippet/autotest.mk +++ b/snippet/autotest.mk @@ -1,17 +1,18 @@ -# Copyright © 2015,2019-2020 Nick Bowler +# Copyright © 2015,2019-2023 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 -# testsuite will be output to $(builddir)/testsuite. +# 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 testsuite will be output to $(builddir)/testsuite. +# +# The DX_AUTOMAKE_COMPAT macro must be expanded by configure.ac to +# provide necessary substitutions. # # You must define the AUTOTEST variable to the Autotest program (normally, -# this is autom4te -l autotest). The DX_PROG_AUTOTEST macro can be used -# to set this automatically. You must also define the HAVE_AUTOTEST Automake -# conditional which controls whether the testsuite-generating rules are -# enabled. If DX_PROG_AUTOTEST is used, this may be set like: +# this is autom4te -l autotest). You must also define the HAVE_AUTOTEST +# Automake conditional which controls whether the testsuite-generating +# rules are enabled (that is, if Autotest is available and works). # -# DX_PROG_AUTOTEST -# AM_CONDITIONAL([HAVE_AUTOTEST], [test x"$dx_cv_autotest_works" = x"yes"]) +# The DX_PROG_AUTOTEST_AM macro may be used to set all of the above. # # License WTFPL2: Do What The Fuck You Want To Public License, version 2. # This is free software: you are free to do what the fuck you want to. @@ -62,8 +63,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 @@ -81,7 +84,7 @@ dist-autotest-deps: testsuite.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@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/testsuite.P@am__quote@@dx_include_marker@ # Automake 1.16 and newer use make rules to generate the dependency stubs. # Use this opportunity to generate accurate prerequisites from distributed @@ -92,9 +95,8 @@ DISTCLEANFILES += atconfig $(DEPDIR)/testsuite.P # With older Automake the stubs are generated directly in config.status. # Since this rule is ignored things should still work but the build may # miss modifications to the testsuite on the first build from a tarball. -_dx_autotest_depfiles = am--depfiles -$(_dx_autotest_depfiles): $(DEPDIR)/testsuite.P -$(DEPDIR)/testsuite.P: +@dx_depfiles_target@: ./$(DEPDIR)/testsuite.P +./$(DEPDIR)/testsuite.P: @$(MKDIR_P) $(@D) @if test -f $(builddir)/testsuite.deps; then \ exec 3<$(builddir)/testsuite.deps; \