summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>1996-11-20 07:15:26 +0000
committerTom Tromey <tromey@redhat.com>1996-11-20 07:15:26 +0000
commit37162c06f36d0e6852ca9bb78c4116ad34dcf6c5 (patch)
tree92df510882436a3583ed9db26ce951a13ec77be6
parent9424e57ebd12db85160f7e9d4ac3f7eec4410757 (diff)
downloadautomake-37162c06f36d0e6852ca9bb78c4116ad34dcf6c5.tar.gz
omit spelling checks in some cases
-rw-r--r--ChangeLog4
-rw-r--r--TODO14
-rwxr-xr-xautomake.in12
-rw-r--r--automake.texi110
-rw-r--r--tests/ChangeLog4
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/Makefile.in4
-rwxr-xr-xtests/confvar2.test15
-rw-r--r--version.texi2
9 files changed, 141 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 90a0cbd4c..41cdb1445 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/TODO b/TODO
index a251b8302..d8916a549 100644
--- a/TODO
+++ b/TODO
@@ -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