diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rwxr-xr-x | automake.in | 25 | ||||
-rw-r--r-- | doc/automake.texi | 10 | ||||
-rw-r--r-- | doc/stamp-vti | 4 | ||||
-rw-r--r-- | doc/version.texi | 4 | ||||
-rwxr-xr-x | tests/subpkg.test | 22 |
6 files changed, 47 insertions, 29 deletions
@@ -1,3 +1,14 @@ +2004-08-03 Alexandre Duret-Lutz <adl@gnu.org> + + * automake.in (yacc_lex_finish_helper): Fix definition of YLWRAP + when ylwrap is installed in a default aux dir found in a parent + package. + * tests/subpkg.test: Augment to check that YLWRAP is installed + properly. + * doc/automake.texi (Yacc and Lex): ylwrap is not sought is the + current directory. + Report from Norman Gray. + 2004-08-02 Alexandre Duret-Lutz <adl@gnu.org> * doc/automake.texi (Optional): Update documentation for diff --git a/automake.in b/automake.in index 05c4b3fd4..13c323f73 100755 --- a/automake.in +++ b/automake.in @@ -5310,22 +5310,15 @@ sub lang_lex_target_hook # This is a helper for both lex and yacc. sub yacc_lex_finish_helper { - return if defined $language_scratch{'lex-yacc-done'}; - $language_scratch{'lex-yacc-done'} = 1; - - # If there is more than one distinct yacc (resp lex) source file - # in a given directory, then the `ylwrap' program is required to - # allow parallel builds to work correctly. FIXME: for now, no - # line number. - require_conf_file ($configure_ac, FOREIGN, 'ylwrap'); - if ($config_aux_dir_set_in_configure_ac) - { - &define_variable ('YLWRAP', "$am_config_aux_dir/ylwrap", INTERNAL); - } - else - { - &define_variable ('YLWRAP', '$(top_srcdir)/ylwrap', INTERNAL); - } + return if defined $language_scratch{'lex-yacc-done'}; + $language_scratch{'lex-yacc-done'} = 1; + + # If there is more than one distinct yacc (resp lex) source file + # in a given directory, then the `ylwrap' program is required to + # allow parallel builds to work correctly. FIXME: for now, no + # line number. + require_conf_file ($configure_ac, FOREIGN, 'ylwrap'); + &define_variable ('YLWRAP', "$am_config_aux_dir/ylwrap", INTERNAL); } sub lang_yacc_finish diff --git a/doc/automake.texi b/doc/automake.texi index c886fd1c4..c8ac56f59 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -3777,11 +3777,11 @@ one distinct @code{yacc} (or @code{lex}) source file in a directory, Automake uses a small program called @code{ylwrap} to run @code{yacc} (or @code{lex}) in a subdirectory. This is necessary because yacc's output filename is fixed, and a parallel make could conceivably invoke -more than one instance of @code{yacc} simultaneously. The @code{ylwrap} -program is distributed with Automake. It should appear in the directory -specified by @samp{AC_CONFIG_AUX_DIR} (@pxref{Input, , Finding -`configure' Input, autoconf, The Autoconf Manual}), or the current -directory if that macro is not used in @file{configure.ac}. +more than one instance of @code{yacc} simultaneously. The +@code{ylwrap} program is distributed with Automake. It should appear +in the directory specified by @samp{AC_CONFIG_AUX_DIR}, or one of its +default locations (@pxref{Input, , Finding `configure' Input, +autoconf, The Autoconf Manual}). For @code{yacc}, simply managing locking is insufficient. The output of @code{yacc} always uses the same symbol names internally, so it isn't diff --git a/doc/stamp-vti b/doc/stamp-vti index 5fbd5f92c..b4bbf39f1 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 28 July 2004 -@set UPDATED-MONTH July 2004 +@set UPDATED 3 August 2004 +@set UPDATED-MONTH August 2004 @set EDITION 1.9.0a @set VERSION 1.9.0a diff --git a/doc/version.texi b/doc/version.texi index 5fbd5f92c..b4bbf39f1 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 28 July 2004 -@set UPDATED-MONTH July 2004 +@set UPDATED 3 August 2004 +@set UPDATED-MONTH August 2004 @set EDITION 1.9.0a @set VERSION 1.9.0a diff --git a/tests/subpkg.test b/tests/subpkg.test index 1018dbd72..ede650593 100755 --- a/tests/subpkg.test +++ b/tests/subpkg.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2002, 2003 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. # # This file is part of GNU Automake. # @@ -20,7 +20,7 @@ # Check subpackage handling. -required=gcc +required='gcc bison' . ./defs || exit 1 set -e @@ -73,23 +73,37 @@ cat >lib/configure.ac <<'EOF' AC_INIT([lib], [2.3]) AM_INIT_AUTOMAKE AC_PROG_RANLIB +AC_PROG_YACC AC_CONFIG_FILES([Makefile]) FOO EOF cat >lib/Makefile.am <<'EOF' noinst_LIBRARIES = liblib.a -liblib_a_SOURCES = src/x.c +liblib_a_SOURCES = src/x.c foo.y +EXTRA_liblib_a_SOURCES = bar.y dist-hook: test ! -f $(distdir)/LDADD.c test -f $(top_distdir)/LDADD.c test -f $(distdir)/src/x.c test ! -f $(top_distdir)/src/x.c + test -f $(YLWRAP) ACLOCAL_AMFLAGS = -I ../m4 EOF +cat > lib/foo.y << 'END' +%{ +int yylex () {return 0;} +void yyerror (char *s) {} +%} +%% +foobar : 'f' 'o' 'o' 'b' 'a' 'r' {}; +END + +cp lib/foo.y lib/bar.y + cat >lib/src/x.c <<'EOF' int lib () { @@ -105,7 +119,7 @@ cd lib $ACLOCAL -I ../m4 $FGREP 'm4_include([../m4/foo.m4])' aclocal.m4 $AUTOCONF -$AUTOMAKE -Wno-override +$AUTOMAKE -Wno-override --add-missing cd .. ./configure |