]> sourceware.org Git - automake.git/commitdiff
* automake.in (generate_makefile): Do not output Makefile.in on
authorAlexandre Duret-Lutz <adl@gnu.org>
Thu, 13 May 2004 22:02:40 +0000 (22:02 +0000)
committerAlexandre Duret-Lutz <adl@gnu.org>
Thu, 13 May 2004 22:02:40 +0000 (22:02 +0000)
errors.
* tests/werror2.test: New file.
* tests/Makefile.am (TESTS): Add werror2.test.
* tests/substtarg.test, tests/cond36.test, tests/backsl4.test:
Adjust to run automake with -Wno-error when the output is expected
in spite of the error.
Report from Harlan Stenn.

ChangeLog
NEWS
automake.in
tests/Makefile.am
tests/Makefile.in
tests/backsl4.test
tests/cond36.test
tests/substtarg.test
tests/werror2.test [new file with mode: 0755]

index 774d4592abfc54c50ad331bacf42e0a834f25a69..e34141e825ef724c4e0ee19ba1907e7822cf1aae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2004-05-13  Alexandre Duret-Lutz  <adl@gnu.org>
 
+       * automake.in (generate_makefile): Do not output Makefile.in on
+       errors.
+       * tests/werror2.test: New file.
+       * tests/Makefile.am (TESTS): Add werror2.test.
+       * tests/substtarg.test, tests/cond36.test, tests/backsl4.test:
+       Adjust to run automake with -Wno-error when the output is expected
+       in spite of the error.
+       Report from Harlan Stenn.
+
        * doc/automake.texi (Program and Library Variables): Remove
        doubled word in footnote.
 
diff --git a/NEWS b/NEWS
index e504bda07796fc3b4aee765deb60af29c901fe8a..eb804a07090428918139e05d35f2e1518720e2d9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -61,6 +61,11 @@ New in 1.8a:
 
   Non-augmented variables are still output as they are defined in
   the Makefile.am.
+
+* Automake stops writing Makefile.ins as soons as it encounters an error.
+  (Warnings will not prevent output, but remember they can be turned into
+  errors with -Werror.)
+
 \f
 New in 1.8:
 
index 882e2888cdd996884e3149814fcabbebf056f4a2..929ab677ec00fa0773798479e0189029e2b06c6c 100755 (executable)
@@ -7131,13 +7131,19 @@ sub generate_makefile ($$)
 
   check_typos;
 
+  my ($out_file) = $output_directory . '/' . $makefile_in;
+
+  if ($exit_code != 0)
+    {
+      verb "not writing $out_file because of earlier errors";
+      return;
+    }
+
   if (! -d ($output_directory . '/' . $am_relative_dir))
     {
       mkdir ($output_directory . '/' . $am_relative_dir, 0755);
     }
 
-  my ($out_file) = $output_directory . '/' . $makefile_in;
-
   # We make sure that `all:' is the first target.
   my $output =
     "$output_vars$output_all$output_header$output_rules$output_trailer";
@@ -7160,7 +7166,7 @@ sub generate_makefile ($$)
       && $configure_deps_greatest_timestamp < $timestamp
       && $output_deps_greatest_timestamp < $timestamp
       && $output eq contents ($out_file))
-  {
+    {
       verb "$out_file unchanged";
       # No need to update.
       return;
index 56402194e967f55f36e4674c9cb0c30028ce0738..d9d419109f4be2d875c19e2492f15b1d9bd89091 100644 (file)
@@ -532,6 +532,7 @@ vtexi.test \
 vtexi2.test \
 warnopts.test \
 werror.test \
+werror2.test \
 whoami.test \
 xsource.test \
 yacc.test \
index cdff1796d20f56f2f60c7180dbb881285200166d..6a73928f996a9cdefdc62df0b269cb39c1d0e7d2 100644 (file)
@@ -649,6 +649,7 @@ vtexi.test \
 vtexi2.test \
 warnopts.test \
 werror.test \
+werror2.test \
 whoami.test \
 xsource.test \
 yacc.test \
index be6f2ef9824d4e666749688f8ba14650cbcfce89..2736f17b63c2b8312855130bc5aeb6f1f9ad2dae 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2003  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004  Free Software Foundation, Inc.
 #
 # This file is part of GNU Automake.
 #
@@ -45,6 +45,7 @@ $AUTOCONF
 AUTOMAKE_fails
 grep ':1:.*whitespace' stderr
 grep ':5:.*whitespace' stderr
+$AUTOMAKE -Wno-error
 ./configure
 # Older versions of Automake used to produce invalid Makefiles such input.
 $MAKE ok
index e87c460d3709679e4e60c4ab32d0da7962cf526a..ac728bf39786d4432a94c28b303d884397430ef5 100755 (executable)
@@ -57,6 +57,7 @@ $ACLOCAL
 # and should complain.
 AUTOMAKE_fails --add-missing
 grep 'tparse.h.*already defined' stderr
+$AUTOMAKE -Wno-error
 
 # Still and all, it should generate two rules.
 test `grep tparse.h: Makefile.in | wc -l` = 2
index 077cc156b292b70b0b96fcbaada508345abe3907..2aba499c608b2ae922a741fd8c0e37016b39f216 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
 #
 # This file is part of GNU Automake.
 #
@@ -49,6 +49,6 @@ END
 $ACLOCAL
 AUTOMAKE_fails
 grep 'overrid.*libfake@SUBST@.a' stderr
+$AUTOMAKE -Wno-override
 num=`grep '^libfake@SUBST@.a:' Makefile.in | wc -l`
 test $num -eq 1
-$AUTOMAKE -Wno-override
diff --git a/tests/werror2.test b/tests/werror2.test
new file mode 100755 (executable)
index 0000000..ecee4d8
--- /dev/null
@@ -0,0 +1,52 @@
+#! /bin/sh
+# Copyright (C) 2004  Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Automake is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Automake; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Make sure that Makefile.in is not overwritten on error.  Otherwise
+# although the rebuilding rules would fail on error, they would
+# succeed if make is run a second time immediately afterwards.
+# Report from Harlan Stenn.
+
+required=GNUmake
+. ./defs || exit 1
+
+set -e
+
+echo AC_OUTPUT>>configure.in
+
+: > Makefile.am
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+$MAKE
+
+cat >Makefile.am <<END
+AUTOMAKE_OPTIONS = -Werror
+INCLUDES = -Ifoo
+foo_SOURCES = unused
+END
+
+$MAKE && exit 1
+
+$MAKE && exit 1
+
+:
This page took 0.056239 seconds and 5 git commands to generate.