From: Tom Tromey Date: Sat, 17 Feb 1996 07:34:22 +0000 (+0000) Subject: Bug fixes X-Git-Tag: Release-0-30~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9be3ddeb64cc562f18245cbecc77a80e721c38b1;p=thirdparty%2Fautomake.git Bug fixes --- diff --git a/ChangeLog b/ChangeLog index 3747b865c..bf356dc3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Feb 17 00:15:20 1996 Tom Tromey + + * 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 * automake.in (handle_configure): config.status is in diff --git a/Makefile.in b/Makefile.in index d14edad4c..59b8f3f97 100644 --- a/Makefile.in +++ b/Makefile.in @@ -108,7 +108,7 @@ config.status: configure $(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: @@ -214,7 +214,7 @@ all-recursive install-data-recursive install-exec-recursive \ 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; \ @@ -276,7 +276,7 @@ dist: $(DEP_DISTFILES) 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 @@ -290,7 +290,7 @@ install-exec-am: install-binSCRIPTS 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 diff --git a/TODO b/TODO index 2d49ce233..b68e7335c 100644 --- a/TODO +++ b/TODO @@ -5,9 +5,11 @@ Top priorities: * 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. diff --git a/automake.in b/automake.in index eacecb1e7..e2ce3a139 100755 --- a/automake.in +++ b/automake.in @@ -1350,6 +1350,9 @@ sub handle_installdirs # 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); @@ -1357,7 +1360,9 @@ sub handle_merge_targets 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); @@ -1392,7 +1397,6 @@ sub handle_merge_targets if ($recursive_install) { push (@install, 'install-recursive'); - push (@uninstall, 'uninstall-recursive'); if (@install_exec) { @@ -1403,6 +1407,10 @@ sub handle_merge_targets push (@install, 'install-exec-am'); push (@phony, 'install-exec-am'); } + else + { + @install_exec = ('install-exec-recursive'); + } if (@install_data) { $output_rules .= ('install-data-am: ' @@ -1412,6 +1420,10 @@ sub handle_merge_targets push (@install, 'install-data-am'); push (@phony, 'install-data-am'); } + else + { + @install_data = ('install-data-recursive'); + } if (@uninstall) { $output_rules .= ('uninstall-am: ' @@ -1420,6 +1432,10 @@ sub handle_merge_targets @uninstall = ('uninstall-recursive', 'uninstall-am'); push (@phony, 'uninstall-am'); } + else + { + @uninstall = ('uninstall-recursive'); + } } # Step three: print definitions users can use. diff --git a/lib/am/subdirs.am b/lib/am/subdirs.am index a335ab6c7..85c037a64 100644 --- a/lib/am/subdirs.am +++ b/lib/am/subdirs.am @@ -28,7 +28,7 @@ all-recursive install-data-recursive install-exec-recursive \ 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; \ diff --git a/subdirs.am b/subdirs.am index a335ab6c7..85c037a64 100644 --- a/subdirs.am +++ b/subdirs.am @@ -28,7 +28,7 @@ all-recursive install-data-recursive install-exec-recursive \ 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; \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 3c071441b..fcb934e92 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -74,7 +74,7 @@ dist: $(DEP_DISTFILES) || ln $(srcdir)/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir)/$$file; \ done -all: +all: Makefile info: