summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2013-01-11 18:26:03 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-01-11 18:47:42 +0100
commitb670a66a6ac1ee8ef25dc48a26e477812c2dbacf (patch)
treed18b61e871f50512ee49fed36ef30c0fde0f1be6 /Makefile.am
parent10790d08f071a91160bbaeabab7fd8a8d23e5a55 (diff)
downloadautomake-b670a66a6ac1ee8ef25dc48a26e477812c2dbacf.tar.gz
tests: can fake a compiler not grasping "-c -o" -- globally in all tests
The ability to easily do so will be quite important in upcoming changes about C compilation handling and semantics of the 'subdir-objects' option. Refer to the extensive discussion about automake bug#13378 for more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378>. See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile rules used "-c -o" also with losing compilers". * t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and '-o' options are passed together to it on the command line. * Makefile.am (t/ax/cc-no-c-o): Generate this script from it. (noinst_SCRIPTS, CLEANFILES): Add it. (EXTRA_DIST): Add 't/ax/cc-no-c-o.in'. (check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o' as the C compiler (bot GNU and non-GNU). * .gitignore: Update. * t/ccnoco.sh: Use the new script instead of duplicating it. * t/ccnoco3.sh: Likewise. * t/ccnoco4.sh: Likewise. * t/self-check-cc-no-c-o.sh: New testsuite self-check. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am22
1 files changed, 22 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index ab98df708..64e9d4869 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -446,6 +446,17 @@ EXTRA_DIST += t/ax/shell-no-trail-bslash.in
CLEANFILES += t/ax/shell-no-trail-bslash
noinst_SCRIPTS += t/ax/shell-no-trail-bslash
+t/ax/cc-no-c-o: t/ax/cc-no-c-o.in Makefile
+ $(AM_V_at)rm -f $@ $@-t
+ $(AM_V_GEN)in=t/ax/cc-no-c-o.in \
+ && $(MKDIR_P) t/ax \
+ && $(do_subst) <$(srcdir)/$$in >$@-t \
+ && chmod a+x $@-t
+ $(generated_file_finalize)
+EXTRA_DIST += t/ax/cc-no-c-o.in
+CLEANFILES += t/ax/cc-no-c-o
+noinst_SCRIPTS += t/ax/cc-no-c-o
+
runtest: t/ax/runtest.in Makefile
$(AM_V_at)rm -f $@ $@-t
$(AM_V_GEN)in=t/ax/runtest.in \
@@ -518,6 +529,17 @@ check-no-trailing-backslash-in-recipes:
CONFIG_SHELL='$(abs_top_builddir)/t/ax/shell-no-trail-bslash'
.PHONY: check-no-trailing-backslash-in-recipes
+# Some compilers out there (hello, MSVC) still choke on "-c -o" being
+# passed together on the command line. Run the whole testsuite faking
+# the presence of such a compiler, to help catch regressions that would
+# otherwise only present themselves later "in the wild". See also the
+# long discussion about automake bug#13378.
+check-cc-no-c-o:
+ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
+ CC='$(abs_top_builddir)/t/ax/cc-no-c-o' \
+ GNU_CC='$(abs_top_builddir)/t/ax/cc-no-c-o'
+.PHONY: check-cc-no-c-o
+
## Checking the list of tests.
test_subdirs = t t/pm contrib/t
include $(srcdir)/t/CheckListOfTests.am