+Sun Jun 9 17:45:48 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * texinfos.am (install-info): Don't install ~ files. Bug report
+ from Greg McGary.
+ * automake.in (handle_texinfo): Don't push '.info*' onto
+ @infos_list.
+
+ * automake.in (handle_gettext): Ensure po and intl in SUBDIRS when
+ using gettext.
+ (handle_dist): Pass --with-included-gettext to configure if using
+ gettext.
+
+ * compile-kr.am (._c._o): Pass -c to $(COMPILE).
+ (.c._o): Ditto.
+ * compile.am (.c.o): Pass -c to $(COMPILE).
+ * compile-vars.am (COMPILE): Don't include -c.
+
+ * remake.am ($(srcdir)/Makefile.in): Pass --strictness to
+ automake.
+ * automake.in (handle_configure): Supply --strictness arg to
+ automake.
+
Fri Jun 7 12:31:31 1996 Tom Tromey <tromey@creche.cygnus.com>
* automake.in (handle_tests): Fix quoting on `pwd`.
(handle_man_pages): Don't put man directory on @installdirs if
no-installman is specified.
(handle_texinfo): Handle no-installinfo option.
+ (handle_options): Compare version against $num_version, not
+ $VERSION.
+ (handle_source_transform): Generate rules for output of lex,
+ yacc. Bug report from Thomas Morgan. Test yacc.test.
+ (handle_dist): "distcheck" now runs "make dvi".
+ (handle_tests): Support $(TESTS_ENVIRONMENT). Idea from Ulrich
+ Drepper.
* dejagnu.am (check-DEJAGNU): Depend on site.exp.
Priorities for release:
[ none ]
-** Write test case to check that no-installman suppresses dirs on
- "make installdirs"
+** Consider using implicit .y.c and .l.c rules instead of current
+ lex/yacc trickery
+
consider supporting "var+= stuff" syntax. rewrite to just var=... on
output. This is sometimes convenient when you want to write a
Consider adding an option that statically rewrites @MAINT@ to "#M#".
(this would be useful at Cygnus)
-Automake and Cygnus: info target separate from all. Always make
-install-info target. install-info separate from install.
-
Automake: should EXTRA_DIST files be statically findable?
Automake: devo/inet/Makefile.am has "all-local". "install" depends on
for yacc and lex source
* if AC_PROG_LEX used, ensure LEXLIB is in foo_LDADD
* require AC_DECL_YYTEXT for lex
+* Actually use $seen_prog_yacc
+* Require AC_PROG_LEX or equivalent
require AC_PROG_CXX if any C++ source files found?
Better support for C++ all around
. Consider allowing eg "foo/bar" to appear in EXTRA_DIST, and generating
code to make directory foo at dist time
+consider having no-gzip option that turns off gzip/GNU tar.
+
================================================================
Document:
document _LISP handling
-document no-installinfo option
-
================================================================
Libraries:
# Got a version number. Is the syntax too strict?
local ($num_version);
($num_version = $VERSION) =~ tr/0-9//d;
- if ($VERSION < $_)
+ if ($num_version < $_)
{
&am_line_error ('AUTOMAKE_OPTIONS',
"require version $_, only have $VERSION");
# Skip things that look like configure substitutions.
next if /^\@.*\@$/;
+ # Include .c file for lex or yacc source in distribution.
if (/^(.*)\.[yl]$/)
{
- # Automatically include generated .c file in
- # distribution.
+ # Yacc source.
&push_dist_common ($1 . '.c');
+ if (! defined $targets{$1 . '.c'})
+ {
+ # Generate a target.
+ $output_rules .= ($1 . '.c: ' . $_ . "\n"
+ . "\t"
+ . 'cd $(srcdir) && $(YACC) $< && mv y.tab.c '
+ . $1 . '.c' . "\n");
+ }
+ }
+ elsif (/^(.*)\.l$/)
+ {
+ # Lex source.
+ &push_dist_common ($1 . '.c');
+ if (! defined $targets{$1 . '.c'})
+ {
+ $output_rules .= ($1 . '.c: ' . $_ . "\n"
+ . "\t"
+ . 'cd $(srcdir) && $(LEX) $< && mv lex.yy.c '
+ . $1 . '.c' . "\n");
+ }
}
# Transform source files into .o files.
$output_rules .= ("\n" . $infobase . ".info: "
. join (' ', @texi_deps) . "\n\n");
- push (@infos_list, $infobase . '.info*');
+ push (@infos_list, $infobase . '.info', '.info-[0-9]',
+ '.info-[0-9][0-9]');
push (@info_deps_list, $infobase . '.info');
push (@dvis_list, $infobase . '.dvi');
if ($relative_dir eq '.')
{
# Rule to check whether a distribution is viable.
- $output_rules .= '# This target untars the dist file and tries a VPATH configuration. Then
+ $output_rules .= ('# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \\
cd $(distdir)/=build \\
- && ../configure --srcdir=.. --prefix=$$dc_install_base \\
+ && ../configure '
+
+ . ($seen_gettext ? '--with-included-gettext ' : '')
+ . '--srcdir=.. --prefix=$$dc_install_base \\
&& $(MAKE) \\
+ && $(MAKE) dvi \\
&& $(MAKE) check \\
&& $(MAKE) install \\
&& $(MAKE) installcheck \\
@echo "========================"; \\
echo "$(distdir).tar.gz is ready for distribution"; \\
echo "========================"
-';
+');
$output_rules .= 'dist: distdir' . "\n\t";
$output_rules .= 'chmod -R a+r $(distdir)' . "\n\t";
$output_vars .= "ACLOCAL = aclocal.m4\n";
&push_dist_common ('aclocal.m4');
}
- $output_rules .= &file_contents ('remake');
+ $output_rules .= &file_contents_with_transform ('s/\@STRICTNESS\@/'
+ . $strictness_name
+ . '/g',
+ 'remake');
&am_error
("\`install.sh' is an anachronism; use \`install-sh' instead")
{
return if ! $seen_gettext || $relative_dir ne '.';
- # As of 0.10.6, gettext still wants @INTLSUB@ and @POSUB@ in
- # SUBDIRS. This is going to change in a future version. So for
- # now we simply do no checking.
- if (0 && &variable_defined ('SUBDIRS'))
+ if (&variable_defined ('SUBDIRS'))
{
&am_line_error
('SUBDIRS',
all=`expr $$all + 1`; \\
if test -f $$tst; then dir=.; \\
else dir="$(srcdir)"; fi; \\
- if $$dir/$$tst; then \\
+ if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \\
echo "PASS: $$tst"; \\
else \\
failed=`expr $$failed + 1`; \\
Automake.
Automake generates an @code{install-info} target; some people apparently
-use this.
+use this. By default, info pages are installed by @samp{make install}.
+This can be prevented via the @code{no-installinfo} option.
@node Man pages
of programs to run in order to do the testing. The programs can either
be derived objects or source objects; the generated rule will look both
in @var{srcdir} and @file{.}. The number of failures will be printed at
-the end of the run.
+the end of the run. The variable @code{TESTS_ENVIRONMENT} can be used
+to set environment variables for the test run; the environment variable
+@code{srcdir} is set in the rule.
+@vindex TESTS
+@vindex TESTS_ENVIRONMENT
If @samp{dejagnu} appears in @code{AUTOMAKE_OPTIONS}, then the a
@code{dejagnu}-based test suite is assumed. The value of the variable
be available for optional installation.
@trindex install-man
+@item @code{no-installinfo}
+The generated @file{Makefile.in} will not cause info pages to be built
+or installed by default. However, @code{info} and @code{install-info}
+targets will still be available.
+@trindex info
+@trindex install-info
+
@item @code{ansi2knr}
Turn on automatic de-ANSI-fication.
$(ANSI2KNR) $< > $*.tmp && mv $*.tmp $@
._c._o:
- @echo $(COMPILE) $<
+ @echo $(COMPILE) -c $<
@rm -f _$*.c
- @ln $< _$*.c && $(COMPILE) _$*.c && mv _$*.o $@ && rm _$*.c
+ @ln $< _$*.c && $(COMPILE) -c _$*.c && mv _$*.o $@ && rm _$*.c
.c._o:
$(ANSI2KNR) $< > $*.tmp && mv $*.tmp $*._c
- @echo $(COMPILE) $*._c
+ @echo $(COMPILE) -c $*._c
@rm -f _$*.c
- @ln $*._c _$*.c && $(COMPILE) _$*.c && mv _$*.o $@ && rm _$*.c
+ @ln $*._c _$*.c && $(COMPILE) -c _$*.c && mv _$*.o $@ && rm _$*.c
ansi2knr: ansi2knr.o
$(LINK) ansi2knr.o $(LIBS)
LEX = @LEX@
YACC = @YACC@
-## FIXME?
DEFS = @DEFS@ -I. -I$(srcdir) @CONFIG_INCLUDE_SPEC@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(LDFLAGS) -o $@
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
.c.o:
- $(COMPILE) $<
+ $(COMPILE) -c $<
mostlyclean-compile:
## Don't remove 'core.*' because some distributions have eg "core.c".
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
.c.o:
- $(COMPILE) $<
+ $(COMPILE) -c $<
mostlyclean-compile:
## Don't remove 'core.*' because some distributions have eg "core.c".
## break a possible install-sh reference.
install-info: $(INFO_DEPS)
$(mkinstalldirs) $(infodir)
- for file in $(INFO_DEPS); do \
+ for file in $(INFO_DEPS); do \
## We use these strange circumlocutions because we want the "ifile" to
## be relative, for the install.
- for ifile in `cd $(srcdir) && echo $$file*`; do \
- $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
- done; \
+ for ifile in `cd $(srcdir) && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+ test -f $(srcdir)/$$ifile \
+ && $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
+ done; \
## We need the 'else' because in some broken versions of sh 'if' will
## return false if the test fails. We use ':' because the GNU
## standards prohibit us from using 'true'.
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
$(srcdir)/Makefile.in: @MAINT@Makefile.am configure.in
- cd $(srcdir) && automake Makefile
+ cd $(srcdir) && automake --strictness=@STRICTNESS@ Makefile
# For an explanation of the following Makefile rules, see node
# `Automatic Remaking' in GNU Autoconf documentation.
+Sun Jun 9 23:20:03 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * texinfo2.test: New file.
+
+Sat Jun 8 10:00:42 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * mkinstall2.test: New file.
+
+Fri Jun 7 18:17:11 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * yacc.test: New file.
+
Sun Jun 2 09:04:52 1996 Tom Tromey <tromey@creche.cygnus.com>
* dejagnu.test: New file.
canon.test installsh.test empty.test rulepat.test insh.test canon2.test \
target.test extra.test noinst.test instman.test mkinstall.test auxdir.test \
canon3.test mdate2.test subdir.test backsl.test package.test number.test \
-insh2.test outdir.test fpinstall.test fpinst2.test texinfo.test dejagnu.test
+insh2.test outdir.test fpinstall.test fpinst2.test texinfo.test dejagnu.test \
+yacc.test mkinstall2.test texinfo2.test
EXTRA_DIST = defs $(TESTS)
-# Makefile.in generated automatically by automake 1.0 from Makefile.am
+# Makefile.in generated automatically by automake 1.1a from Makefile.am
# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
canon.test installsh.test empty.test rulepat.test insh.test canon2.test \
target.test extra.test noinst.test instman.test mkinstall.test auxdir.test \
canon3.test mdate2.test subdir.test backsl.test package.test number.test \
-insh2.test outdir.test fpinstall.test fpinst2.test texinfo.test dejagnu.test
+insh2.test outdir.test fpinstall.test fpinst2.test texinfo.test dejagnu.test \
+yacc.test mkinstall2.test texinfo2.test
EXTRA_DIST = defs $(TESTS)
mkinstalldirs = $(top_srcdir)/mkinstalldirs
--- /dev/null
+#! /bin/sh
+
+# Test to make sure no-installman suppresses man dir creation.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = no-installman
+man_MANS = foo.1
+END
+
+: > foo.1
+
+cat > mkinstalldirs << 'END'
+echo "$@"
+END
+
+chmod +x mkinstalldirs
+
+$AUTOMAKE || exit 1
+
+make -s -f Makefile.in installdirs | grep -v man
--- /dev/null
+#! /bin/sh
+
+# Test to ensure that a ".info~" file doesn't end up in the
+# distribution. Bug report from Greg McGary.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = textutils.texi
+magic:
+ @echo $(DISTFILES)
+END
+
+: > texinfo.tex
+: > textutils.texi
+: > textutils.info~
+
+$AUTOMAKE || exit 1
+
+test -z `make -s -f Makefile.in magic | grep '~'`
--- /dev/null
+#! /bin/sh
+
+# Test to make sure intermediate .c file is built from yacc source.
+# Bug from Thomas Morgan.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am <<'END'
+bin_PROGRAMS = zardoz
+zardoz_SOURCES = zardoz.y
+END
+
+$AUTOMAKE || exit 1
+
+grep '^zardoz.c:' Makefile.in
## break a possible install-sh reference.
install-info: $(INFO_DEPS)
$(mkinstalldirs) $(infodir)
- for file in $(INFO_DEPS); do \
+ for file in $(INFO_DEPS); do \
## We use these strange circumlocutions because we want the "ifile" to
## be relative, for the install.
- for ifile in `cd $(srcdir) && echo $$file*`; do \
- $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
- done; \
+ for ifile in `cd $(srcdir) && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+ test -f $(srcdir)/$$ifile \
+ && $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
+ done; \
## We need the 'else' because in some broken versions of sh 'if' will
## return false if the test fails. We use ':' because the GNU
## standards prohibit us from using 'true'.
-@set UPDATED 25 May 1996
+@set UPDATED 8 June 1996
@set EDITION 1.1a
@set VERSION 1.1a