diff options
author | Tom Tromey <tromey@redhat.com> | 1996-11-20 07:15:26 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 1996-11-20 07:15:26 +0000 |
commit | 37162c06f36d0e6852ca9bb78c4116ad34dcf6c5 (patch) | |
tree | 92df510882436a3583ed9db26ce951a13ec77be6 | |
parent | 9424e57ebd12db85160f7e9d4ac3f7eec4410757 (diff) | |
download | automake-37162c06f36d0e6852ca9bb78c4116ad34dcf6c5.tar.gz |
omit spelling checks in some cases
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | TODO | 14 | ||||
-rwxr-xr-x | automake.in | 12 | ||||
-rw-r--r-- | automake.texi | 110 | ||||
-rw-r--r-- | tests/ChangeLog | 4 | ||||
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/Makefile.in | 4 | ||||
-rwxr-xr-x | tests/confvar2.test | 15 | ||||
-rw-r--r-- | version.texi | 2 |
9 files changed, 141 insertions, 26 deletions
@@ -1,5 +1,9 @@ Tue Nov 19 19:03:30 1996 Tom Tromey <tromey@cygnus.com> + * automake.in (am_primary_prefixes): Allow configure variables to + be named after primary. + (am_install_var): Ditto. + * automake.in (initialize_per_input): Initialize output_header. (generate_makefile): Set up output_header; print it before output_rules. @@ -13,6 +13,12 @@ Priorities for release: * consider adding pkglibexecdir, maybe others? requests for pkg-dirs with version included +Gord on pretty-printing instead of raw loops: +Gord> I think the best thing to do is to have make output be a valid shell +Gord> script, and to have it be clear exactly what is happening at a given +Gord> time. + + Further: - man page fixes - consider adding "echo"s to installs again. @@ -101,6 +107,8 @@ characters long. (ditto hard links) * Make sure that all the files in the distribution are world-readable. ** also, check --help output and --version output. Idea from François +* standards no longer prohibit ANSI C. What does this imply + for the de-ansi-fication feature? consider supporting "var+= stuff" syntax. rewrite to just var=... on output. This is sometimes convenient when you want to write a @@ -319,10 +327,6 @@ follow calc example in dejagnu docs document which variables are actually scanned and which are not. -finish yacc, lex - need for LEXLIB - document gdb's yacc hack for including multiple parsers - Document customary ordering of Makefile.am. From François. Should include extended version of diagram from Autoconf (suggested by @@ -330,8 +334,6 @@ Greg Woods) Make a definition of the term "source" -need xref to libtool in docs - document how to use Automake with CVS. Idea from Mark Galassi. Also include Greg Woods' more sophisticated "cvs-dist" target. diff --git a/automake.in b/automake.in index a14eddd54..e6263fd4e 100755 --- a/automake.in +++ b/automake.in @@ -4015,7 +4015,12 @@ sub am_primary_prefixes { if ($varname =~ /^(.*)_$primary$/) { - if (! defined $valid{$1} && ! &variable_defined ($1 . 'dir')) + if (! defined $valid{$1} + && ! &variable_defined ($1 . 'dir') + # Note that a configure variable is always legitimate. + # It is natural to name such variables after the + # primary, so we explicitly allow it. + && ! defined $configure_vars{$varname}) { &am_line_error ($varname, "invalid variable \"$varname\""); } @@ -4111,7 +4116,10 @@ sub am_install_var "\`$one_name' contains configure substitution, but shouldn't"); } } - else + # Check here to make sure variables defined in + # configure.in do not imply that EXTRA_PRIMARY + # must be defined. + elsif (! defined $configure_vars{$one_name}) { $require_extra = $one_name; } diff --git a/automake.texi b/automake.texi index e79128d62..61757be6b 100644 --- a/automake.texi +++ b/automake.texi @@ -700,7 +700,23 @@ This macro adds a @samp{--enable-maintainer-mode} option to ``maintainer-only'' rules to be turned off by default in the generated @file{Makefile.in}s. This macro is disallowed in @samp{Gnits} mode. FIXME xref. -@cvindex jm_MAINTAINER_MODE +@cvindex AM_MAINTAINER_MODE + +@item AC_SUBST +@item AC_CHECK_TOOL +@item AC_CHECK_PROG +@item AC_CHECK_PROGS +@item AC_PATH_PROG +@item AC_PATH_PROGS +For each of these macros, the first argument is automatically defined as +a variable in each generated @file{Makefile.in}. +@cvindex AC_SUBST +@cvindex AC_CHECK_TOOL +@cvindex AC_CHECK_PROG +@cvindex AC_CHECK_PROGS +@cvindex AC_PATH_PROG +@cvindex AC_PATH_PROGS + @end table @@ -1035,11 +1051,69 @@ do this. Automake's lex support also requires that you use the @samp{LEX_OUTPUT_ROOT}. Any program including a lex source file must be linked against -@samp{@@LEXLIB@@}. You can do this by puttins @samp{@@LEXLIB@@} into +@samp{@@LEXLIB@@}. You can do this by putting @samp{@@LEXLIB@@} into the appropriate @samp{LDADD} variable. Automake makes it possible to include multiple yacc (or lex) source -files in a single program. +files in a single program. Automake uses a small program called +@code{interlock} to manage locks between multiple yacc invocations. +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. @code{interlock} is distributed with +automake. It should appear in the directory specified by +@samp{AC_CONFIG_AUX_DIR}, or the current directory if that macro is not +used in @file{configure.in}. + +For @code{yacc}, simply managing locking is insufficient. @code{yacc} +output also always uses the same symbol names internally, so it isn't +possible to link two @code{yacc} parsers into the same executable. + +We recommend using the following renaming hack used in @code{gdb}: +@example +#define yymaxdepth c_maxdepth +#define yyparse c_parse +#define yylex c_lex +#define yyerror c_error +#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 yyexca c_exca +#define yyerrflag c_errflag +#define yynerrs c_nerrs +#define yyps c_ps +#define yypv c_pv +#define yys c_s +#define yy_yys c_yys +#define yystate c_state +#define yytmp c_tmp +#define yyv c_v +#define yy_yyv c_yyv +#define yyval c_val +#define yylloc c_lloc +#define yyreds c_reds +#define yytoks c_toks +#define yylhs c_yylhs +#define yylen c_yylen +#define yydefred c_yydefred +#define yydgoto c_yydgoto +#define yysindex c_yysindex +#define yyrindex c_yyrindex +#define yygindex c_yygindex +#define yytable c_yytable +#define yycheck c_yycheck +@end example + +For each define, replace the @samp{c_} prefix with whatever you like. +These defines work for @code{bison}, @code{byacc}, and traditional +@code{yacc}s. If you find a parser generator that uses a symbol not +covered here, please report the new name so it can be added to the list. @node C++ @@ -1079,8 +1153,10 @@ The command used to actually link a C++ program. @section Automatic de-ANSI-fication Although the GNU standards prohibit it, some GNU programs are written in -ANSI C; see FIXME. This is possible because each source file can be +ANSI C. This is possible because each source file can be ``de-ANSI-fied'' before the actual compilation takes place. +@c NOTE that the standards no longer prohibit this! +@c What does that imply for this feature? If the @file{Makefile.am} variable @code{AUTOMAKE_OPTIONS} @vindex AUTOMAKE_OPTIONS @@ -1089,14 +1165,20 @@ If the @file{Makefile.am} variable @code{AUTOMAKE_OPTIONS} then code to handle de-ANSI-fication is inserted into the generated @file{Makefile.in}. -This causes each source file to be treated as ANSI C. If an ANSI C -compiler is available, it is used. +This causes each C source file in the directory to be treated as ANSI C. +If an ANSI C compiler is available, it is used. If no ANSI C compiler +is available, the @code{ansi2knr} program is used to convert the source +files into K&R C, which is then compiled. + +The @code{ansi2knr} program is simple-minded. It assumes the source +code will be formatted in a particular way; see the @code{ansi2knr} man +page for details. Running @code{ansi2knr} on K&R C source will result +in compilation errors. -This support requires the source files @file{ansi2knr.c} and -@file{ansi2knr.1} to be in the same directory as the ANSI C source; -these files are distributed with Automake. -Also, the package @file{configure.in} must call the macro -@code{AM_C_PROTOTYPES}. +De-ANSI-fication support requires the source files @file{ansi2knr.c} and +@file{ansi2knr.1} to be in the same package as the ANSI C source; these +files are distributed with Automake. Also, the package +@file{configure.in} must call the macro @code{AM_C_PROTOTYPES}. @cvindex AM_C_PROTOTYPES Automake also handles finding the @code{ansi2knr} support files in some @@ -1111,13 +1193,13 @@ option. For instance, suppose the package has ANSI C code in the AUTOMAKE_OPTIONS = ../lib/ansi2knr @end example +If no directory prefix is given, the files are assumed to be in the +current directory. + Note that the directory holding the @code{ansi2knr} support files must be built before all other directories using these files. Automake does not currently check that this is the case. -Note also that @code{ansi2knr} assumes the source code will be formatted -in a particular way. See the @code{ansi2knr} man page for details. - @node Dependencies @section Automatic dependency tracking diff --git a/tests/ChangeLog b/tests/ChangeLog index 52c746123..7bd06d352 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +Tue Nov 19 23:37:32 1996 Tom Tromey <tromey@cygnus.com> + + * confvar2.test: New file. + Fri Nov 15 00:09:18 1996 Tom Tromey <tromey@cygnus.com> * ansi2.test: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index be82523e5..8ac21b0f0 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -18,6 +18,6 @@ gnits.test interp2.test colneq.test implicit.test spell.test spell2.test \ confsub.test primary.test primary2.test depend2.test spell3.test \ comment2.test vpath.test symlink.test discover.test acinclude.test req.test \ acsilent.test distdir.test lex2.test libobj4.test libobj5.test version.test \ -ranlib.test confvar.test +ranlib.test confvar.test confvar2.test EXTRA_DIST = defs $(TESTS) diff --git a/tests/Makefile.in b/tests/Makefile.in index 95c183c0b..6b9642207 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -57,7 +57,7 @@ gnits.test interp2.test colneq.test implicit.test spell.test spell2.test \ confsub.test primary.test primary2.test depend2.test spell3.test \ comment2.test vpath.test symlink.test discover.test acinclude.test req.test \ acsilent.test distdir.test lex2.test libobj4.test libobj5.test version.test \ -ranlib.test confvar.test +ranlib.test confvar.test confvar2.test EXTRA_DIST = defs $(TESTS) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -74,7 +74,6 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) \ TAR = tar default: all -.SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in cd $(top_srcdir) && automake --strictness=gnits $(subdir)/Makefile @@ -169,6 +168,7 @@ install-exec install-data install uninstall all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean +.SUFFIXES: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/confvar2.test b/tests/confvar2.test new file mode 100755 index 000000000..a1f5c6198 --- /dev/null +++ b/tests/confvar2.test @@ -0,0 +1,15 @@ +#! /bin/sh + +# Test for bug reported by Jim Meyering. + +. $srcdir/defs || exit 1 + +cat >> configure.in << 'END' +AC_SUBST(OTHER_SCRIPTS) +END + +cat > Makefile.am << 'END' +bin_SCRIPTS = foo +END + +$AUTOMAKE diff --git a/version.texi b/version.texi index 2cac3920f..9001c3f55 100644 --- a/version.texi +++ b/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 18 November 1996 +@set UPDATED 19 November 1996 @set EDITION 1.1h @set VERSION 1.1h |