>>>>> "Tom" == Tom Tromey <[EMAIL PROTECTED]> writes:

Akim> I suppose it is now a matter of religion

Tom> Yeah, basically.

OK, so I've extracted the atheist part of my patch, maybe it's useful?

        Akim

Index: ChangeLog
===================================================================
RCS file: /cvs/automake/automake/ChangeLog,v
retrieving revision 1.864
diff -u -r1.864 ChangeLog
--- ChangeLog   2000/04/15 09:13:49     1.864
+++ ChangeLog   2000/04/21 08:28:50
@@ -1,3 +1,10 @@
+2000-04-21  Akim Demaille  <[EMAIL PROTECTED]>
+
+       * automake.in (output_yacc_build_rule, output_lex_build_rule): Be
+       more alike.
+       * automake.texi (Yacc and Lex): Give details on the Yacc generated
+       headers, and on YFLAGS and LFLAGS.
+
 2000-04-13  Akim Demaille  <[EMAIL PROTECTED]>
 
        * compile: Remove unnecessary double quotes in assignments.
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.783
diff -u -r1.783 automake.in
--- automake.in 2000/04/15 08:30:14     1.783
+++ automake.in 2000/04/21 08:31:56
@@ -1049,25 +1049,25 @@
 # compiled with C or C++, depending on the extension of the YACC file.
 sub output_yacc_build_rule
 {
-    local ($yacc_suffix, $use_ylwrap, $c_suffix) = @_;
+    local ($yacc_suffix, $use_ylwrap) = @_;
+    local ($c_suffix);
 
-    local ($suffix);
-    ($suffix = $yacc_suffix) =~ tr/y/c/;
-    push (@suffixes, $yacc_suffix, $suffix);
+    ($c_suffix = $yacc_suffix) =~ tr/y/c/;
+    push (@suffixes, $yacc_suffix, $c_suffix);
 
     # Generate rule for c/c++.
-    $output_rules .= "$yacc_suffix$suffix:\n\t";
+    $output_rules .= "$yacc_suffix$c_suffix:\n\t";
 
     if ($use_ylwrap)
     {
        $output_rules .= ('$(SHELL) $(YLWRAP)'
-                         . ' "$(YACC)" $< y.tab.c $*' . $suffix
+                         . ' "$(YACC)" $< y.tab.c $*' . $c_suffix
                          . ' y.tab.h $*.h -- $(AM_YFLAGS) $(YFLAGS)');
     }
     else
     {
        $output_rules .= ('$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*'
-                         . $suffix . "\n"
+                         . $c_suffix . "\n"
                          . "\tif test -f y.tab.h; then \\\n"
                          . "\tif cmp -s y.tab.h \$*.h; then rm -f y.tab.h; else mv 
y.tab.h \$*.h; fi; \\\n"
                          . "\telse :; fi");
@@ -1081,7 +1081,7 @@
     local ($c_suffix);
 
     ($c_suffix = $lex_suffix) =~ tr/l/c/;
-    push (@suffixes, $lex_suffix);
+    push (@suffixes, $lex_suffix, $c_suffix);
     &define_configure_variable ('LEX_OUTPUT_ROOT');
     &define_configure_variable ('LEXLIB');
     $output_rules .= "$lex_suffix$c_suffix:\n\t";
Index: automake.texi
===================================================================
RCS file: /cvs/automake/automake/automake.texi,v
retrieving revision 1.180
diff -u -r1.180 automake.texi
--- automake.texi       2000/03/23 05:15:47     1.180
+++ automake.texi       2000/04/21 08:32:11
@@ -52,7 +52,7 @@
 
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995, 96 Free Software Foundation, Inc.
+Copyright @copyright{} 1995, 96, 2000 Free Software Foundation, Inc.
 @sp 2
 This is the first edition of the GNU Automake documentation,@*
 and is consistent with GNU Automake @value{VERSION}.@*
@@ -131,8 +131,8 @@
 * Extending::                   Extending Automake
 * Distributing::                Distributing the Makefile.in
 * Future::                      Some ideas for the future
-* Macro and Variable Index::    
-* General Index::               
+* Macro and Variable Index::
+* General Index::
 @end menu
 
 @end ifinfo
@@ -680,7 +680,7 @@
 
 @example
 bin_PROGRAMS = hello
-hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h 
+hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 hello_LDADD = @@INTLLIBS@@ @@ALLOCA@@
 localedir = $(datadir)/locale
 INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
@@ -1452,10 +1452,10 @@
 * A Shared Library::            Building a Libtool library
 * Program variables::           Variables used when building a program
 * Yacc and Lex::                Yacc and Lex support
-* C++ Support::                 
-* Fortran 77 Support::          
+* C++ Support::
+* Fortran 77 Support::
 * Java Support::
-* Support for Other Languages::  
+* Support for Other Languages::
 * ANSI::                        Automatic de-ANSI-fication
 * Dependencies::                Automatic dependency tracking
 @end menu
@@ -1488,7 +1488,7 @@
 into an executable:
 
 @example
-hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h 
+hello_SOURCES = hello.c version.c getopt.c getopt1.c getopt.h system.h
 @end example
 
 This causes each mentioned @samp{.c} file to be compiled into the
@@ -1792,7 +1792,8 @@
 of the resulting @samp{C} or @samp{C++} file.  Files with the extension
 @samp{.y} will be turned into @samp{.c} files; likewise, @samp{.yy} will
 become @samp{.cc}; @samp{.y++}, @samp{c++}; and @samp{.yxx},
-@samp{.cxx}.
+@samp{.cxx}.  Please note that the extension of the generated headers
+will always be @samp{.h}.
 
 Likewise, lex source files can be used to generate @samp{C} or
 @samp{C++}; the extensions @samp{.l}, @samp{.ll}, @samp{.l++}, and
@@ -1806,11 +1807,16 @@
 included in any distribution that is made.  That way the user doesn't
 need to have @code{yacc} or @code{lex}.
 
+@vindex YFLAGS
+@vindex LFLAGS
+
 If a @code{yacc} source file is seen, then your @file{configure.in} must
 define the variable @samp{YACC}.  This is most easily done by invoking
 the macro @samp{AC_PROG_YACC} (@pxref{Particular Programs, , Particular
-Program Checks, autoconf, The Autoconf Manual}).
+Program Checks, autoconf, The Autoconf Manual}).  You may use
+@samp{YFLAGS} to pass additional flags to @code{yacc}.
 
+
 Similarly, if a @code{lex} source file is seen, then your
 @file{configure.in} must define the variable @samp{LEX}.  You can use
 @samp{AC_PROG_LEX} to do this (@pxref{Particular Programs, , Particular
@@ -1818,7 +1824,9 @@
 support also requires that you use the @samp{AC_DECL_YYTEXT}
 macro---automake needs to know the value of @samp{LEX_OUTPUT_ROOT}.
 This is all handled for you if you use the @code{AM_PROG_LEX} macro
-(@pxref{Macros}).
+(@pxref{Macros}).  You may use @samp{LFLAGS} to pass additional flags to
+@code{lex}.
+
 
 @cindex ylwrap
 @cindex yacc, multiple parsers
@@ -1851,13 +1859,13 @@
 #define        yylval  c_lval
 #define        yychar  c_char
 #define        yydebug c_debug
-#define        yypact  c_pact  
-#define        yyr1    c_r1                    
-#define        yyr2    c_r2                    
-#define        yydef   c_def           
-#define        yychk   c_chk           
-#define        yypgo   c_pgo           
-#define        yyact   c_act           
+#define        yypact  c_pact
+#define        yyr1    c_r1
+#define        yyr2    c_r2
+#define        yydef   c_def
+#define        yychk   c_chk
+#define        yypgo   c_pgo
+#define        yyact   c_act
 #define        yyexca  c_exca
 #define yyerrflag c_errflag
 #define yynerrs        c_nerrs
@@ -1974,10 +1982,10 @@
 These issues are covered in the following sections.
 
 @menu
-* Preprocessing Fortran 77::    
-* Compiling Fortran 77 Files::  
-* Mixing Fortran 77 With C and C++::  
-* Fortran 77 and Autoconf::     
+* Preprocessing Fortran 77::
+* Compiling Fortran 77 Files::
+* Mixing Fortran 77 With C and C++::
+* Fortran 77 and Autoconf::
 @end menu
 
 
@@ -2103,7 +2111,7 @@
 
 @page
 @menu
-* How the Linker is Chosen::    
+* How the Linker is Chosen::
 @end menu
 
 @node How the Linker is Chosen,  , Mixing Fortran 77 With C and C++, Mixing Fortran 
77 With C and C++

Reply via email to