]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Avoid parallel 'make check' issue.
authorEric Blake <ebb9@byu.net>
Thu, 13 Sep 2007 19:59:18 +0000 (19:59 +0000)
committerEric Blake <ebb9@byu.net>
Thu, 13 Sep 2007 19:59:18 +0000 (19:59 +0000)
* tests/Makefile.am (mktests.stamp): New witness.
(TESTSUITE_GENERATED_AT): Use it.
(CLEANFILES): Clean the witness.
* tests/.cvsignore (mktests.stamp): Ignore the witness.

ChangeLog
tests/Makefile.am
tests/Makefile.in

index d0ce0a6e93381ec5748ad964e87d22897f5c3e9d..04e4f51c7f904ee8fc8ad50591220a7db470aea6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2007-09-13  Eric Blake  <ebb9@byu.net>
 
+       Avoid parallel 'make check' issue.
+       * tests/Makefile.am (mktests.stamp): New witness.
+       (TESTSUITE_GENERATED_AT): Use it.
+       (CLEANFILES): Clean the witness.
+       * tests/.cvsignore (mktests.stamp): Ignore the witness.
+
        Document another awk pitfall.
        * doc/autoconf.texi (Limitations of Usual Tools) <awk>: Document
        limitation of field variables in END.
index 8952ba303957c3eeb342387209e96f83c3f56136..7e23df880841118a3b484ec67f52c18aff8e5010 100644 (file)
@@ -1,6 +1,6 @@
 ## Make Autoconf tests.
 
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 # Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -158,10 +158,21 @@ AUTOCONF_FILES = $(autoconfdir)/general.m4 \
                 $(autoconfdir)/types.m4 \
                 $(autoconfdir)/programs.m4
 
-$(TESTSUITE_GENERATED_AT): mktests.sh $(AUTOCONF_FILES)
+$(TESTSUITE_GENERATED_AT): mktests.stamp
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+         rm -f mktests.stamp; \
+         $(MAKE) $(AM_MAKEFLAGS) mktests.stamp; \
+       fi
+
+mktests.stamp : mktests.sh $(AUTOCONF_FILES)
+       @rm -f mktests.tmp
+       @touch mktests.tmp
        cd $(srcdir) && ./mktests.sh \
          `echo " "$(AUTOCONF_FILES) | sed 's, [^ ]*/, ../lib/autoconf/,g'`
+       @mv -f mktests.tmp $@
 
+CLEANFILES += mktests.stamp mktests.tmp
 
 ## maintainer-check ##
 
index e658b3874f4b107df9907d9aaa9db4f6770225b0..2b694ebad595d5ce3dfddf53733f31998f712a93 100644 (file)
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 # Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
@@ -239,7 +239,7 @@ ETAGS_FOR_AUTOCONF = \
 wrappers = autoconf autoheader autom4te autoreconf autoscan autoupdate ifnames
 
 # The hairy heredoc is more robust than using echo.
-CLEANFILES = wrapper.in $(wrappers) expr
+CLEANFILES = wrapper.in $(wrappers) mktests.stamp mktests.tmp expr
 edit = sed \
        -e 's|@wrap_program[@]|$@|g' \
        -e 's|@abs_top_srcdir[@]|@abs_top_srcdir@|g' \
@@ -540,9 +540,18 @@ check-local: atconfig atlocal $(TESTSUITE)
 installcheck-local: atconfig atlocal $(TESTSUITE)
        $(SHELL) $(TESTSUITE) AUTOTEST_PATH="$(bindir)" $(TESTSUITEFLAGS)
 
-$(TESTSUITE_GENERATED_AT): mktests.sh $(AUTOCONF_FILES)
+$(TESTSUITE_GENERATED_AT): mktests.stamp
+       @if test -f $@; then :; else \
+         rm -f mktests.stamp; \
+         $(MAKE) $(AM_MAKEFLAGS) mktests.stamp; \
+       fi
+
+mktests.stamp : mktests.sh $(AUTOCONF_FILES)
+       @rm -f mktests.tmp
+       @touch mktests.tmp
        cd $(srcdir) && ./mktests.sh \
          `echo " "$(AUTOCONF_FILES) | sed 's, [^ ]*/, ../lib/autoconf/,g'`
+       @mv -f mktests.tmp $@
 
 maintainer-check: maintainer-check-posix maintainer-check-c++
 expr: