+Sat Feb 17 00:15:20 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * subdirs.am: No longer depend on Makefile and $(CONFIG_HEADER).
+ * automake.in (handle_merge_targets): Correctly handle recursive
+ calls of uninstall, install-exec, and install-data.
+ (handle_merge_targets): Put Makefile, and possibly $config_name,
+ onto @all.
+ (handle_merge_targets): Push 'all' onto @install as appropriate.
+
Fri Feb 16 08:27:04 1996 Tom Tromey <tromey@creche.cygnus.com>
* automake.in (handle_configure): config.status is in
$(srcdir)/configure: configure.in $(ACLOCAL)
cd $(srcdir) && autoconf
automake: $(top_builddir)/config.status automake.in
- cd $(top_srcdir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
+ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
mostlyclean-binSCRIPTS:
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive: $(CONFIG_HEADER) Makefile
+maintainer-clean-recursive:
for subdir in $(SUBDIRS); do \
target=`echo $@ | sed s/-recursive//`; \
echo making $$target in $$subdir; \
chmod -R a+r $(distdir)
tar chozf $(distdir).tar.gz $(distdir)
rm -rf $(distdir)
-all: $(INFO_DEPS) $(SCRIPTS) $(DATA) all-recursive
+all: $(INFO_DEPS) $(SCRIPTS) $(DATA) all-recursive Makefile
info: $(INFO_DEPS) info-recursive
install-data-am: install-info install-pkgdataDATA
-uninstall-am: uninstall-binSCRIPTS uninstall-info uninstall-pkgdataDATA uninstall-recursive
+uninstall-am: uninstall-binSCRIPTS uninstall-info uninstall-pkgdataDATA
install-exec: install-exec-recursive install-exec-am
* Rewrite clean targets.
* Expand test suite.
-BUGS:
-** textutils makes uninstall do uninstall-recursive twice!?!
-** 'all-am' should depend on Makefile, etc -- not 'all'
+NOTE: in handle_merge_targets, 'all' handling is still wrong wrt
+subdirs. 'install' should always depend on "local all", whether 'all'
+or 'all-am'. Actually, something perplexing is going on. Why does
+"make install" in automake cause the recursion to happen twice??
+ANSWER: install-binSCRIPTS depends on 'all'. How to fix??
Check all require_file errors to see if any should reference a line in
Makefile.am or configure.in.
# avoid double colon rules, otherwise we'd use them instead.
sub handle_merge_targets
{
+ push (@all, 'Makefile');
+ push (@all, $config_name)
+ if $config_name && &dirname ($config_name) eq $relative_dir;
&do_one_merge_target ('all', @all);
&do_one_merge_target ('info', @info);
&do_one_merge_target ('dvi', @dvi);
if (! defined $contents{'SUBDIRS'} || $relative_dir ne '.')
{
# 'check' must depend on 'all', but not at top level.
+ # Ditto install.
unshift (@check, 'all');
+ unshift (@install, 'all');
}
&do_one_merge_target ('check', @check);
&do_one_merge_target ('installcheck', @installcheck);
if ($recursive_install)
{
push (@install, 'install-recursive');
- push (@uninstall, 'uninstall-recursive');
if (@install_exec)
{
push (@install, 'install-exec-am');
push (@phony, 'install-exec-am');
}
+ else
+ {
+ @install_exec = ('install-exec-recursive');
+ }
if (@install_data)
{
$output_rules .= ('install-data-am: '
push (@install, 'install-data-am');
push (@phony, 'install-data-am');
}
+ else
+ {
+ @install_data = ('install-data-recursive');
+ }
if (@uninstall)
{
$output_rules .= ('uninstall-am: '
@uninstall = ('uninstall-recursive', 'uninstall-am');
push (@phony, 'uninstall-am');
}
+ else
+ {
+ @uninstall = ('uninstall-recursive');
+ }
}
# Step three: print definitions users can use.
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive: $(CONFIG_HEADER) Makefile
+maintainer-clean-recursive:
for subdir in $(SUBDIRS); do \
target=`echo $@ | sed s/-recursive//`; \
echo making $$target in $$subdir; \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive: $(CONFIG_HEADER) Makefile
+maintainer-clean-recursive:
for subdir in $(SUBDIRS); do \
target=`echo $@ | sed s/-recursive//`; \
echo making $$target in $$subdir; \
|| ln $(srcdir)/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir)/$$file; \
done
-all:
+all: Makefile
info: