]> sourceware.org Git - automake.git/commitdiff
Fix for yaccvpath.test:
authorTom Tromey <tromey@redhat.com>
Tue, 15 May 2001 02:21:52 +0000 (02:21 +0000)
committerTom Tromey <tromey@redhat.com>
Tue, 15 May 2001 02:21:52 +0000 (02:21 +0000)
* tests/Makefile.am (XFAIL_TESTS): Removed yaccvpath.test.
* lib/am/distdir.am (distdir): Always look for file in build
directory first.
* lib/ylwrap: Quote the `#line' regular expression.
* lib/am/yacc.am (%YACC_SUFFIX%%C_SUFFIX%): Reverted earlier
change; don't run sed on the generated file.
* tests/yaccvpath.test: Create new parser in srcdir.  Added test
to make sure parser will be rebuilt at dist time.

ChangeLog
lib/am/distdir.am
lib/am/yacc.am
lib/ylwrap
tests/Makefile.am
tests/Makefile.in
tests/yaccvpath.test

index 4eae378abf55d4fbfd43001d0d4f74120034661b..8c10dfa6184b5465538d556ebc89898d73997ec9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2001-05-14  Tom Tromey  <tromey@redhat.com>
+
+       Fix for yaccvpath.test:
+       * tests/Makefile.am (XFAIL_TESTS): Removed yaccvpath.test.
+       * lib/am/distdir.am (distdir): Always look for file in build
+       directory first.
+       * lib/ylwrap: Quote the `#line' regular expression.
+       * lib/am/yacc.am (%YACC_SUFFIX%%C_SUFFIX%): Reverted earlier
+       change; don't run sed on the generated file.
+       * tests/yaccvpath.test: Create new parser in srcdir.  Added test
+       to make sure parser will be rebuilt at dist time.
+
 2001-05-13  Pavel Roskin  <proski@gnu.org>
 
        * automake.in ($IGNORE_PATTERN): Allow spaces before comments
index 34840ce4789632cdc98fc496fa5cc8d186aba28f..3b11fc1d164c4ff4f9b5e89b67f464d80d7751b0 100644 (file)
@@ -57,22 +57,27 @@ endif %?TOPDIR_P%
 ##
        @for file in $(DISTFILES); do \
 ##
-## In loop, test for file existence because sometimes a file gets
-## included in DISTFILES twice.  For example this happens when a single
-## source file is used in building more than one program.  Also, there
-## are situations in which "ln" can fail.  For instance a file to
-## distribute could actually be a cross-filesystem symlink -- this can
-## easily happen if "gettextize" was run on the distribution.
+## Always look for the file in the build directory first.  That way
+## for something like yacc output we will correctly pick up the latest
+## version.
+##
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
 ##
-?CYGNUS?         if test -f $$file; then d=.; else d=$(srcdir); fi; \
-?!CYGNUS?        d=$(srcdir); \
 ## Make the subdirectory for the file.  This is going to make `dist'
 ## really crawl, but it seems like the only way to do it, given that
 ## files in subdirectories can be specified for `dist' conditionally.
+##
          dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
          if test "$$dir" != "$$file" && test "$$dir" != "."; then \
            $(mkinstalldirs) "$(distdir)/$$dir"; \
          fi; \
+##
+## In loop, test for file existence because sometimes a file gets
+## included in DISTFILES twice.  For example this happens when a single
+## source file is used in building more than one program.  Also, there
+## are situations in which "ln" can fail.  For instance a file to
+## distribute could actually be a cross-filesystem symlink -- this can
+## easily happen if "gettextize" was run on the distribution.
 ##
          if test -d $$d/$$file; then \
 ## Don't mention $$file in destination argument, since this fails if
index 344fb9ecb9db4b86718b6b1bedb379cd578b8430..0d7e10531736d849203f9dfd9f5c3a54d067c7fa 100644 (file)
@@ -21,8 +21,7 @@
 if %?YLWRAP%
        $(SHELL) $(YLWRAP) $(YACC) $< y.tab.c $*%C_SUFFIX% y.tab.h $*.h -- $(AM_YFLAGS) $(YFLAGS)
 else !%?YLWRAP%
-       $(YACC) $(AM_YFLAGS) $(YFLAGS) $<
-       sed -e '/^#/ s,$(srcdir)/,,' y.tab.c > $*%C_SUFFIX%
+       $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*%C_SUFFIX%
        if test -f y.tab.h; then \
          if cmp -s y.tab.h $*.h; then \
            rm -f y.tab.h; \
index c78cdd745674fa2849b6bb50444ee4822d4cee72..9ae6c05152dd112ecf275a504cd42f817b600491 100755 (executable)
@@ -65,6 +65,9 @@ esac
 
 # The directory holding the input.
 input_dir="`echo $input | sed -e 's,/[^/]*$,,'`"
+# Quote $INPUT_DIR so we can use it in a regexp.
+# FIXME: really we should care about more than `.'.
+input_rx="`echo $input_dir | sed -e 's,.,\.,g'`"
 
 pairlist=
 while test "$#" -ne 0; do
@@ -123,7 +126,7 @@ if test $status -eq 0; then
         # resulting debug information to point at an absolute srcdir;
         # it is better for it to just mention the .y file with no
         # path.
-        sed -e "/^#/ s,$input_dir,," "$from" > "$target" || status=$?
+        sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
       else
         # A missing file is only an error for the first file.  This
         # is a blatant hack to let us support using "yacc -d".  If -d
index 2c805f8fb5f0470b476e9a56ef1ac69bc9b4db1b..7fcbc0de8736ca7bc838db2fa1cd47c16bc22297 100644 (file)
@@ -2,7 +2,7 @@
 
 AUTOMAKE_OPTIONS = gnits
 
-XFAIL_TESTS = yaccvpath.test texinfo10.test subdir5.test
+XFAIL_TESTS = texinfo10.test subdir5.test
 
 TESTS =        \
 acinclude.test \
index 877dadc8528c2b6ef80b96be1dac4dd876bf99be..63537a2a112387cfba881d12ea4e1153a00449af 100644 (file)
@@ -74,7 +74,7 @@ install_sh = @install_sh@
 
 AUTOMAKE_OPTIONS = gnits
 
-XFAIL_TESTS = yaccvpath.test texinfo10.test subdir5.test
+XFAIL_TESTS = texinfo10.test subdir5.test
 
 TESTS = \
 acinclude.test \
@@ -453,7 +453,7 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
        @for file in $(DISTFILES); do \
-         d=$(srcdir); \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
          dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
          if test "$$dir" != "$$file" && test "$$dir" != "."; then \
            $(mkinstalldirs) "$(distdir)/$$dir"; \
index d78ca4edca8cdfde9ba7c2ea593e8fe28d469b22..04041fec155bf6712dee50262a24946746ff22c8 100755 (executable)
@@ -66,7 +66,7 @@ cd sub
 sleep 2
 
 # New parser, with `fubar'
-cat > parse.y << 'END'
+cat > ../parse.y << 'END'
 %{
 int yylex () {return 0;}
 void yyerror (char *s) {}
@@ -78,3 +78,24 @@ END
 $MAKE
 $MAKE distdir
 grep fubar foo-0.1/parse.c
+
+#
+# Now check to make sure that `make dist' will rebuild the parser.
+#
+
+# A delay is needed to make sure that the new parse.y is indeed newer
+# than parse.c, i.e. the they don't have the same timestamp.
+sleep 2
+
+# New parser, with `maude'
+cat > ../parse.y << 'END'
+%{
+int yylex () {return 0;}
+void yyerror (char *s) {}
+%}
+%%
+maude : 'm' 'a' 'u' 'd' 'e' {};
+END
+
+$MAKE distdir
+grep maude foo-0.1/parse.c
This page took 0.049493 seconds and 5 git commands to generate.