]> sourceware.org Git - automake.git/commitdiff
* automake.in (lang_yacc_target_hook): Add rule to recover from
authorAlexandre Duret-Lutz <adl@gnu.org>
Sat, 8 Jun 2002 17:22:19 +0000 (17:22 +0000)
committerAlexandre Duret-Lutz <adl@gnu.org>
Sat, 8 Jun 2002 17:22:19 +0000 (17:22 +0000)
the removal of $header.
* lib/am/yacc.am (%BASE%.h): Remove (duplicate with the one
output by lang_yacc_target_hook).
* tests/yacc7.test: Try to recreate foo.h after its removal.
* tests/yacc8.test: Add `AM_YFLAGS = -d' and try to recreate
parse.h too.
Reported by Bernd Jendrissek.

ChangeLog
THANKS
automake.in
lib/am/yacc.am
tests/yacc7.test
tests/yacc8.test

index 3dda149eae31831f6632bcc5274b2552cc30d826..b880cd8014d0648f0c80663cc87101e2feff75e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-06-08  Alexandre Duret-Lutz  <duret_g@epita.fr>
+
+       * automake.in (lang_yacc_target_hook): Add rule to recover from
+       the removal of $header.
+       * lib/am/yacc.am (%BASE%.h): Remove (duplicate with the one
+       output by lang_yacc_target_hook).
+       * tests/yacc7.test: Try to recreate foo.h after its removal.
+       * tests/yacc8.test: Add `AM_YFLAGS = -d' and try to recreate
+       parse.h too.
+       Reported by Bernd Jendrissek.
+
 2002-06-08  Alexandre Duret-Lutz  <duret_g@epita.fr>
 
        For PR automake/317:
diff --git a/THANKS b/THANKS
index 44952f9a8d59a12192c8dfc4f7bb1a6c56dad491..0e528c0c057c586d9787e6cf2e0ddc4c35410a00 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -20,6 +20,7 @@ Arkadiusz Miskiewicz  misiek@pld.ORG.PL
 Assar Westerlund       assar@sics.se
 Axel Belinfante                Axel.Belinfante@cs.utwente.nl
 Bernard Urban          Bernard.Urban@meteo.fr
+Bernd Jendrissek       berndj@prism.co.za
 Bill Currie            bcurrie@tssc.co.nz
 Bill Davidson          bill@kayhay.com
 Bill Fenner            fenner@parc.xerox.com
index 8cfad3409ca2f6494662e515faae6a90436c293a..92f187fec54b2a0c8fae886fed029d74305672bf 100755 (executable)
@@ -5081,7 +5081,12 @@ sub lang_yacc_target_hook
        # Add a dependency for the generated header file, and arrange
        # for that file to be included in the distribution.
        # FIXME: this fails for `nodist_*_SOURCES'.
-       $output_rules .= "${header}: $output\n";
+       $output_rules .= ("${header}: $output\n"
+                         # Recover from removal of $header
+                         . "\t\@if test ! -f \$@; then \\\n"
+                         . "\t  rm -f $output; \\\n"
+                         . "\t  \$(MAKE) $output; \\\n"
+                         . "\telse :; fi\n");
        &push_dist_common ($header);
        # If the files are built in the build directory, then we want
        # to remove them with `make clean'.  If they are in srcdir
index 5bffe568f3ecd6791a3693291a708d29a99cad44..8dcbdb8cda6ad625e4193464b440e1c1665fa99c 100644 (file)
@@ -44,8 +44,3 @@ else !%?MORE-THAN-ONE%
          mv y.output %BASE%.output; \
        fi
 endif !%?MORE-THAN-ONE%
-
-## Also generate a dependency for the .h file.
-if !%?GENERIC%
-%BASE%.h: %OBJ%
-endif !%?GENERIC%
index 7bd62748d463b866a85065b037722fde1ff79838..7b474a73f1cfbe83469361db8ea085d35dfb70ab 100755 (executable)
@@ -45,4 +45,10 @@ test -f foo.h || exit 1
 rm -f foo.h foo.c
 $MAKE check-dist || exit 1
 
+# We should be able to recover if foo.h is deleted.
+
+rm foo.h || exit 1
+$MAKE foo.h || exit 1
+test -f foo.h || exit 1
+
 exit 0
index d37e4ade6f977697984cbc068518c64f6207ee93..610f8a969407b5a9906e5d8488b188febc421b37 100755 (executable)
@@ -20,6 +20,7 @@ cat > Makefile.am << 'END'
 AUTOMAKE_OPTIONS = subdir-objects
 bin_PROGRAMS = foo/foo
 foo_foo_SOURCES = foo/parse.y
+AM_YFLAGS = -d
 END
 
 mkdir foo
@@ -49,6 +50,13 @@ $MAKE foo/parse.o
 test -f foo/parse.c
 test -f foo/parse.o
 
+# Aside of the rest of this test, let's see if we can recover from
+# parse.h removal
+test -f foo/parse.h
+rm -f foo/parse.h
+$MAKE foo/parse.h
+test -f foo/parse.h
+
 # Now, adds another parser to test ylwrap.
 
 cd ..
This page took 0.043843 seconds and 5 git commands to generate.