+Thu Apr 25 18:40:06 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * automake.in (handle_dist_worker): Use $(TAR), not tar.
+ (handle_merge_targets): Make sure config header is built before
+ recursing into subdirs.
+ (handle_libraries): Generate LIBFILES for check_LIBRARIES.
+ (handle_merge_targets): Handle case where nothing is installed but
+ something must be built -- "make install" must still work.
+
+ * dist-vars.am (TAR): New macro.
+
+ * automake.in (scan_configure): Support AC_REPLACE_GNU_GETOPT.
+ (handle_configure): Require stamp-h.in when config header used.
+
Tue Apr 23 17:57:13 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* doc/mdate-sh: Extract the last field from the date output, not
Priorities for release:
-??? targets for EXTRA_ should not be generated!!!
* Fix all mkinstalldirs invocations
* separate dist and distdir targets, so recursive uses of Automake work ok
+* make the auto-dep code crash if GNU make not in use?
* Add no-remake option
* scripts are installed in $exec_prefix/bin, not $prefix/bin
Bug or feature?
-* Add support for libtool
-* At top level, config.h is not depended on...
-* Must look for/enforce existence of stamp-h.in in srcdir?
- ... there is something broken here...
* Should be a way to have "nobuild_PROGRAMS" which aren't even built,
but which could be by running the magic make command.
+* Should have tool like "autoreconf" that only remakes Makefiles that
+ need it. Probably autoreconf should be modified to handle automake
+
Other priorities:
* Must rewrite am_install_var. Should break into multiple functions.
This will allow the callers to be a little smarter.
* Handle clean changes
* New definition for LINK
-* search for gnu tar and substitute in dist targets?
-
Scan source directories and warn about missing files, eg .c/.h files
that aren't mentioned?
future this will be just intl and po. When that happens, re-enable
warnings in handle_subdirs.
-Need way to say there are no suffixes in a Makefile
+Need way to say there are no suffixes in a Makefile (Franc,ois'
+"override" idea suffices here)
Check to make sure various scripts are executable (IE when looking for
them in a directory)
arrange for all .po files not to be recoded. In the long term this
might be a problem (consider when some systems use Unicode but the
rest do not)
+ MAINT_CHARSET *must* be local to each Makefile.am, to enable
+ merged distributions.
+ DIST_CHARSET must be passed down to subdir makes during a "make dist"
Handle dist-zoo and dist-zip. Generally add more DOS support. Maybe
run "doschk" (why isn't this merged with "pathchk"?) when doing a
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.
+
================================================================
Libraries:
# am_install_var.
local ($onedir, $onelib);
local (@outlist);
- foreach $onedir ('lib', 'pkglib', 'noinst')
+ foreach $onedir ('lib', 'pkglib', 'noinst', 'check')
{
if (&variable_defined ($onedir . '_LIBRARIES'))
{
}
else
{
- $output_rules .= 'tar chozf $(distdir).tar.gz $(distdir)';
+ $output_rules .= '$(TAR) chozf $(distdir).tar.gz $(distdir)';
}
$output_rules .= "\n\t" . 'rm -rf $(distdir)' . "\n";
}
&push_dist_common ($config_name . '.bot');
}
- &push_dist_common ('stamp-h.in');
+ &require_file_with_conf_line ($config_header_line, $FOREIGN,
+ 'stamp-h.in');
$output_rules .= &file_contents ('remake-hdr');
$output_vars .= "CONFIG_HEADER_IN = ${config_header}\n";
if (@all)
{
+ local (@hackall) = ();
+ if ($config_name && &dirname ($config_name) eq $relative_dir)
+ {
+
+ # This is kind of a hack, but I couldn't see a better
+ # way to handle it. In this particular case, we need
+ # to make sure config.h is built before we recurse.
+ # We can't do this by changing the order of
+ # dependencies to the "all" because that breaks when
+ # using parallel makes. Instead we handle things
+ # explicitly.
+ $output_rules .= ('all-recursive-hack: $(CONFIG_HEADER)'
+ . "\n\t" . '$(MAKE) all-recursive'
+ . "\n\n");
+ push (@hackall, 'all-recursive-hack');
+ push (@phony, 'all-recursive-hack');
+ }
+ else
+ {
+ push (@hackall, 'all-recursive');
+ }
+
$output_rules .= ('all-am: '
. join (' ', @all)
. "\n\n");
- @all = ('all-recursive', 'all-am');
+ @all = @hackall;
+ push (@all, 'all-am');
push (@phony, 'all-am');
}
else
}
}
- # Step three: print definitions users can use.
+ # Step three: print definitions users can use. Code below knows
+ # that install-exec is done before install-data, beware.
$output_rules .= ("install-exec: "
. join (' ', @install_exec)
. "\n");
# If no dependencies for 'install', add 'all'. Why? That way
# "make install" at top level of distclean'd distribution won't
# fail because stuff in 'lib' fails to build.
- push (@install, 'all') if ! @install;
+ if (! @install || ($#install == 1
+ && $install[0] eq 'install-exec'
+ && $install[1] eq 'install-data'))
+ {
+ push (@install, 'all');
+ }
$output_rules .= ('install: '
. join (' ', @install)
# Use "@:" as empty command so nothing prints.
$libsources{$_ . '.c'} = 1;
}
}
+ elsif (/AC_REPLACE_GNU_GETOPT/)
+ {
+ $libsources{'getopt.c'} = 1;
+ $libsources{'getopt1.c'} = 1;
+ }
elsif (/LIBOBJS="(.*)\s+\$LIBOBJS"/
|| /LIBOBJS="\$LIBOBJS\s+(.*)"/)
{
@table @code
@item AC_CONFIG_HEADER
Automake will generate rules to automatically regenerate the config
-header.
+header. If you do use this macro, you must create the file
+@file{stamp-h.in}. It can be empty. Also, the @code{AC_OUTPUT} command
+in @file{configure.in} must create @file{stamp-h}, eg:
+@example
+AC_OUTPUT(Makefile, [test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h])
+@end example
@cvindex AC_CONFIG_HEADER
@item AC_CONFIG_AUX_DIR
@item fp_FUNC_FNMATCH
@item AC_FUNC_FNMATCH
@item AC_REPLACE_FUNCS
+@item AC_REPLACE_GNU_GETOPT
Automake will ensure that the appropriate source files are part of the
distribution, and will ensure that the appropriate dependencies are
generated for these objects. @xref{A Library} for more
@cvindex fp_FUNC_FNMATCH
@cvindex AC_FUNC_FNMATCH
@cvindex AC_REPLACE_FUNCS
+@cvindex AC_REPLACE_GNU_GETOPT
Automake will also detect statements which put @samp{.o} files into
@code{LIBOBJS}, and will treat these additional files in a similar way.
## Like DISTFILES, but look at INFO_DEPS, not INFOS.
DEP_DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
$(TEXINFOS) $(INFO_DEPS) $(MANS) $(EXTRA_DIST) $(DATA)
+
+TAR = tar
Thu Apr 25 17:12:30 1996 Tom Tromey <tromey@creche.cygnus.com>
+ * noinst.test: New file
+
+ * exdir.test: Quoting change from Gord Matzigkeit.
+
* extra.test (EXTRA_PROGRAMS): New file.
Tue Apr 9 22:55:07 1996 Tom Tromey <tromey@creche.cygnus.com>
acoutnoq.test acouttbs.test libobj.test proginst.test acoutqnl.test \
confincl.test spelling.test prefix.test badprog.test depend.test exdir.test \
canon.test installsh.test empty.test rulepat.test insh.test canon2.test \
-target.test extra.test
+target.test extra.test noinst.test
EXTRA_DIST = defs $(TESTS)
acoutnoq.test acouttbs.test libobj.test proginst.test acoutqnl.test \
confincl.test spelling.test prefix.test badprog.test depend.test exdir.test \
canon.test installsh.test empty.test rulepat.test insh.test canon2.test \
-target.test extra.test
+target.test extra.test noinst.test
EXTRA_DIST = defs $(TESTS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
$(TEXINFOS) $(INFOS) $(MANS) $(EXTRA_DIST) $(DATA)
DEP_DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
$(TEXINFOS) $(INFO_DEPS) $(MANS) $(EXTRA_DIST) $(DATA)
+
+TAR = tar
default: all
$AUTOMAKE || exit 1
-grep ^DATA Makefile.in | grep html
+grep '^DATA' Makefile.in | grep html
--- /dev/null
+#! /bin/sh
+
+# Check to make sure "make install" will build all in directory with
+# nothing to install.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+all-local:
+ exit 1
+END
+
+$AUTOMAKE || exit 1
+
+# "make install" should fail here if there is a bug.
+make -f Makefile.in install && exit 1
+
+exit 0
-@set UPDATED 5 April 1996
+@set UPDATED 25 April 1996
@set EDITION 0.32
@set VERSION 0.32