Fri Jun 21 10:42:06 1996 Tom Tromey <tromey@creche.cygnus.com>
+ * texinfos.am (install-info): Use "if", not "&&", to avoid
+ install problem when glob doesn't match.
+
+ * automake.in (initialize_global_constants): [USAGE] Added
+ --no-force.
+ (force_generation): New global.
+ (parse_arguments): Handle --no-force.
+ (generate_makefile): Handle --no-force.
+
* Makefile.am (maintainer-check): Ensure all invocations of
mkinstalldirs are correct.
$(mkinstalldirs) $(infodir)
for file in $(INFO_DEPS); do \
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; \
+ if test -f $(srcdir)/$$ifile; then \
+ $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
+ else : ; fi; \
done; \
done
* Better DejaGNU support
* Added no-installinfo option
* Added Emacs Lisp support
+* Added --no-force option
\f
New in 1.0:
* Bug fixes
** Consider using implicit .y.c and .l.c rules instead of current
lex/yacc trickery
+add new flag to only remake Makefile.in's that are old. use this in
+autoreconf.
+
+add support for Makefile.tmpl that is auto-included in every
+Makefile.am. That makes it easier to do some non-std thing in every
+subdirectory.
consider printing full file name of Makefile.am or configure.in when
giving error. This would help for very large trees with many
# Variables global to entire run.
+# TRUE if we should always generate Makefile.in.
+$force_generation = 1;
+
# Strictness level as set on command line.
$default_strictness = $GNU;
{
$cmdline_use_dependencies = 0;
}
+ elsif ($arglist[0] eq '--no-force')
+ {
+ $force_generation = 0;
+ }
elsif ($arglist[0] =~ /^--output-dir=(.*)$/)
{
# Set output directory.
$in_file_name = $am_file_name . '.in';
$am_file_name .= '.am';
- print "automake: creating ", $makefile, ".in\n" if $verbose;
-
&initialize_per_input;
$relative_dir = &dirname ($makefile);
{
&mkdir ($output_directory . '/' . $relative_dir);
}
- if (! open (GM_FILE, "> " . $output_directory . '/' . $makefile . ".in"))
+
+ local ($out_file) = $output_directory . '/' . $makefile . ".in";
+ if (! $force_generation && -e $out_file)
+ {
+ local ($am_time) = (stat ($makefile . '.am'))[9];
+ local ($in_time) = (stat ($out_file))[9];
+ # FIXME how to do unsigned comparison?
+ if ($am_time < $in_time)
+ {
+ # No need to update.
+ return;
+ }
+ }
+
+ if (! open (GM_FILE, "> " . $out_file))
{
warn "automake: ${am_file}.in: cannot open: $!\n";
$exit_status = 1;
return;
}
+ print "automake: creating ", $makefile, ".in\n" if $verbose;
print GM_FILE $output_vars;
print GM_FILE $output_rules;
--help print this help, then exit
-i, --include-deps include generated dependencies in Makefile.in
-a, --add-missing add missing standard files to package
+ --no-force only update Makefile.in's that are out of date
-o DIR, --output-dir=DIR
put generated Makefile.in's into DIR
-s LEVEL, --strictness=LEVEL
## We use these strange circumlocutions because we want the "ifile" to
## be relative, for the install.
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; \
+ if test -f $(srcdir)/$$ifile; then \
+ $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
+ else : ; fi; \
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
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`; \
## We use these strange circumlocutions because we want the "ifile" to
## be relative, for the install.
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; \
+ if test -f $(srcdir)/$$ifile; then \
+ $(INSTALL_DATA) $(srcdir)/$$ifile $(infodir)/$$ifile; \
+ else : ; fi; \
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