Thanks to the flooding in Bangkok making my Internet connection unreliable enough that email has been a bit of a challenge even when the electricity is on... I've been tidying up Libtool some more.
This patch makes errors in an end-user build extremely easy to spot. After a successful configure, an error free build from a dist tarball with this patch now looks like this: $ make GEN libtoolize GEN libltdl/argz.h make all-recursive Making all in . CC libltdl/loaders/libltdl_libltdl_la-preopen.lo CC libltdl/libltdl_libltdl_la-lt__alloc.lo CC libltdl/libltdl_libltdl_la-lt_dlloader.lo CC libltdl/libltdl_libltdl_la-lt_error.lo CC libltdl/libltdl_libltdl_la-ltdl.lo CC libltdl/libltdl_libltdl_la-slist.lo CC libltdl/loaders/dlopen.lo CCLD libltdl/dlopen.la CC libltdl/argz.lo CCLD libltdl/libltdl.la I'll apply in 72 hours or so, along with any changes inspired by review or other feedback. * configure.ac: Add AM_SILENT_RULES. * Makefile.am (.version, ChangeLog, README, doc/notes.txt) (libtool, libtoolize, libtoolize.in, libltdl/Makefile.am) (libltdl/stamp-mk, m4/ltversion.m4, tests/atconfig, tests/defs) (tests/defs.in, tests/package.m4): Output an AM_SILENT_RULES-like GEN when V==0. * libltdl/Makfile.inc (libltdl/argz.h): Ditto. --- Makefile.am | 75 ++++++++++++++++++++++++++++---------------------- configure.ac | 1 + libltdl/Makefile.inc | 6 ++-- 3 files changed, 46 insertions(+), 36 deletions(-) diff --git a/Makefile.am b/Makefile.am index 38582ef..821b58e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -144,7 +144,9 @@ $(ltversion_m4): $(ltversion_in) $(dotversion) else \ serial=`$(git_commit_count)`; \ fi; \ - echo "$(bootstrap_edit) '$(ltversion_in)' > '$@'"; \ + if test 0 = '$(V)'; then echo " GEN " $@; else \ + echo "$(bootstrap_edit) '$(ltversion_in)' > '$@'"; \ + fi; \ $(bootstrap_edit) '$(ltversion_in)' > '$@'; \ chmod a-w '$@'; \ fi @@ -170,21 +172,23 @@ $(ltmain_sh): $(ltmain_m4sh) $(sh_files) $(dotversion) done; \ if $$rebuild; then \ rm -f '$@'; \ - echo "$(LT_M4SH) '$(ltmain.m4sh)' | $(ltmain_sh_edit) > '$@'"; \ + if test 0 = '$(V)'; then echo " GEN " $@; else \ + echo "$(LT_M4SH) '$(ltmain.m4sh)' | $(ltmain_sh_edit) > '$@'"; \ + fi; \ $(LT_M4SH) '$(ltmain_m4sh)' | $(ltmain_sh_edit) > '$@'; \ chmod a-w '$@'; \ fi $(libtoolize_in): $(libtoolize_m4sh) $(sh_files) Makefile.am - $(LT_M4SH) '$(libtoolize_m4sh)' | $(bootstrap_edit) > '$@' + $(AM_V_GEN)$(LT_M4SH) '$(libtoolize_m4sh)' | $(bootstrap_edit) > '$@' lt_Makefile_am = $(ltdl_dir)/Makefile.am lt_Makefile_in = $(ltdl_dir)/Makefile.in lt_Makefile_inc = $(ltdl_dir)/Makefile.inc $(lt_Makefile_am): $(lt_Makefile_inc) - rm -f '$@' - ( '$(SED)' -n '1,/^.. DO NOT REMOVE THIS LINE -- /p' \ + $(AM_V_at)rm -f '$@' + $(AM_V_GEN)( '$(SED)' -n '1,/^.. DO NOT REMOVE THIS LINE -- /p' \ '$(lt_Makefile_inc)'; \ { echo 'ACLOCAL_AMFLAGS = -I m4'; \ echo 'AUTOMAKE_OPTIONS = foreign'; \ @@ -205,7 +209,7 @@ $(lt_Makefile_am): $(lt_Makefile_inc) -e 's,\$$(libltdl_,$$(,' \ ) |'$(SED)' -e '/^.. DO NOT REMOVE THIS LINE -- /d' \ -e '1s,^\(.. Makefile.\)inc.*,\1am -- Process this file with automake to produce Makefile.in,' > '$@' - chmod a-w '$@' + $(AM_V_at)chmod a-w '$@' ## Document the make macros that are needed to build bootstrap-deps ## dependencies when called from `bootstrap' (developer's machine), @@ -282,10 +286,10 @@ configure_edit = $(SED) \ bin_SCRIPTS = libtoolize libtool libtoolize: $(libtoolize_in) $(config_status) - rm -f '$@' - $(configure_edit) '$(libtoolize_in)' > '$@' - chmod a+x '$@' - chmod a-w '$@' + $(AM_V_at)rm -f '$@' + $(AM_V_GEN)$(configure_edit) '$(libtoolize_in)' > '$@' + $(AM_V_at)chmod a+x '$@' + $(AM_V_at)chmod a-w '$@' # We used to do this with a 'stamp-vcl' file, but non-gmake builds # would rerun configure on every invocation, so now we manually @@ -300,14 +304,16 @@ libtool: $(ltmain_sh) $(config_status) $(dotversion) case $$prereq in *.version);; *) rebuild=:;; esac; \ done; \ if $$rebuild; then \ - echo '$(SHELL) ./config.status "$@"'; \ + if test 0 = '$(V)'; then echo " GEN " $@; else \ + echo '$(SHELL) $(top_builddir)/config.status "$@"'; \ + fi; \ cd '$(top_builddir)' && '$(SHELL)' ./config.status '$@'; \ fi .PHONY: configure-subdirs configure-subdirs distdir: $(DIST_MAKEFILE_LIST) @DIST_MAKEFILE_LIST@: - dir=`echo '$@' |'$(SED)' 's,^[^/]*$$,.,;s,/[^/]*$$,,'`; \ + $(AM_V_at)dir=`echo '$@' |'$(SED)' 's,^[^/]*$$,.,;s,/[^/]*$$,,'`; \ test -d "$$dir" || mkdir "$$dir" || exit 1; \ abs_srcdir=`$(lt__cd) '$(srcdir)' && pwd`; \ (cd "$$dir" && "$$abs_srcdir/$$dir/configure" --with-dist) || exit 1 @@ -332,12 +338,12 @@ $(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4) cd '$(ltdl_dir)' && $(AUTOMAKE) Makefile $(stamp_mk): $(lt_Makefile_in) - T='$(ltdl_dir)/Makefile.tmp'; \ + $(AM_V_at)T='$(ltdl_dir)/Makefile.tmp'; \ '$(SED)' -e 's,config/mdate-sh,,' -e 's,config/texinfo.tex,,' \ -e 's,config/mkinstalldirs,,' \ < '$(lt_Makefile_in)' > "$$T" && \ mv -f "$$T" '$(lt_Makefile_in)' - echo stamp > '$@' + $(AM_V_GEN)echo stamp > '$@' lt_aclocal_m4_deps = \ $(lt_obsolete_m4) \ @@ -392,8 +398,8 @@ DISTCLEANFILES += libtool.dvi all-local: $(notes_txt) $(notes_txt): $(notes_texi) - $(MAKEINFO) -P '$(srcdir)/doc' --no-headers $(MAKEINFOFLAGS) \ - -o '$@' '$(notes_texi)' + $(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \ + $(MAKEINFOFLAGS) -o '$@' '$(notes_texi)' dist_man1_MANS = $(libtool_1) $(libtoolize_1) MAINTAINERCLEANFILES += $(dist_man1_MANS) @@ -406,9 +412,9 @@ update_mans = \ # manual pages if the sources for the build-tree files we want to # run have changed. $(libtool_1): $(ltmain_sh) - $(update_mans) --help-option=--help-all libtool + $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool $(libtoolize_1): $(libtoolize_in) - $(update_mans) libtoolize + $(AM_V_GEN)$(update_mans) libtoolize ## ------------- ## @@ -499,7 +505,7 @@ changelog = $(distdir)/ChangeLog # date is updated to the following year. changelog_start_date = 2011-01-01 $(changelog): FORCE - if test -d .git; then \ + $(AM_V_GEN)if test -d .git; then \ $(gitlog_to_changelog) --since=$(changelog_start_date) > '$@T'; \ rm -f '$@'; mv '$@T' '$@'; \ fi @@ -509,14 +515,17 @@ $(changelog): FORCE EXTRA_DIST += $(dotversion) BUILT_SOURCES += $(dotversion) $(dotversion): - echo '$(VERSION)' > '$@T' && mv '$@T' '$@' + $(AM_V_GEN)echo '$(VERSION)' > '$@T' && mv '$@T' '$@' ## Edit the README file for alpha releases. EXTRA_DIST += $(edit_readme_alpha) re_odd_version = '\([0-9][0-9]*.[0-9][0-9]*.[0-9]*[13579]\)' $(readme): FORCE - test -n `expr $(VERSION) : $(re_odd_version)` && \ - $(SHELL) $(edit_readme_alpha) '$@' + @if test -n `expr $(VERSION) : $(re_odd_version)`; then \ + if test 0 = '$(V)'; then echo " GEN " $@; else \ + echo "$(SHELL) $(edit_readme_alpha) $@"; fi; \ + $(SHELL) $(edit_readme_alpha) '$@'; \ + fi git_commit_count = git log --pretty=oneline |wc -l |$(SED) 's,[ ],,g' @@ -527,7 +536,7 @@ dist-hook: $(changelog) $(dotversion) $(readme) ## ...and similarly for .serial. $(git_commit_count) > $(dotserial) ## Ensure aclocal has not wrongly picked up old macro definitions. - for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \ + @for macro in LT_INIT AC_PROG_LIBTOOL AM_PROG_LIBTOOL; do \ if grep "$$macro" '$(srcdir)/aclocal.m4' '$(lt_aclocal_m4)'; then \ echo "Bogus $$macro macro contents in an aclocal.m4 file." >&2; \ exit 1; \ @@ -657,7 +666,7 @@ $(testsuite): $(package_m4) $(TESTSUITE_AT) Makefile.am $(AUTOTEST) -I '$(srcdir)' -I '$(srcdir)/tests' $(TESTSUITE_AT) -o '$@' $(package_m4): $(dotversion) Makefile.am - { \ + $(AM_V_GEN){ \ echo '# Signature of the current package.'; \ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \ @@ -668,7 +677,7 @@ $(package_m4): $(dotversion) Makefile.am } > '$@' tests/atconfig: $(config_status) - '$(SHELL)' '$(config_status)' '$@' + $(AM_V_GEN)$(SHELL) '$(config_status)' '$@' DISTCLEANFILES += tests/atconfig @@ -680,13 +689,13 @@ testsuite_deps_uninstalled = $(testsuite_deps) libltdl/libltdlc.la \ # Hook the test suite into the check rule check-local: $(testsuite_deps_uninstalled) - $(CD_TESTDIR); \ + $(AM_V_at)$(CD_TESTDIR); \ CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \ $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(TESTSUITEFLAGS) # Run the test suite on the *installed* tree. installcheck-local: $(testsuite_deps) - $(CD_TESTDIR); \ + $(AM_V_at)$(CD_TESTDIR); \ CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \ $(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(TESTSUITEFLAGS) \ AUTOTEST_PATH='$(exec_prefix)/bin' @@ -698,7 +707,7 @@ check-interactive-old: # Run only noninteractive parts of the new testsuite. check-noninteractive-new: $(testsuite_deps_uninstalled) - $(CD_TESTDIR); \ + $(AM_V_at)$(CD_TESTDIR); \ CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \ $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \ -k '!interactive' INNER_TESTSUITEFLAGS=',!interactive' \ @@ -706,7 +715,7 @@ check-noninteractive-new: $(testsuite_deps_uninstalled) # Run only interactive parts of the new testsuite. check-interactive-new: $(testsuite_deps_uninstalled) - $(CD_TESTDIR); \ + $(AM_V_at)$(CD_TESTDIR); \ CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \ $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \ -k interactive -k recursive INNER_TESTSUITEFLAGS=',interactive' \ @@ -1012,12 +1021,12 @@ DIST_SUBDIRS += $(CONF_SUBDIRS) # regenerated since the source tree can be read-only. check-recursive: $(defs) $(defs): $(defs_in) - rm -f '$@' - $(configure_edit) '$(defs_in)' > '$@' + $(AM_V_at)rm -f '$@' + $(AM_V_GEN)$(configure_edit) '$(defs_in)' > '$@' $(defs_in): $(defs_m4sh) $(general_m4sh) Makefile.am - rm -f '$@' - $(LT_M4SH) '$(defs_m4sh)' > '$@' + $(AM_V_at)rm -f '$@' + $(AM_V_GEN)$(LT_M4SH) '$(defs_m4sh)' > '$@' # We need to remove any files that the above tests created. clean-local-legacy: diff --git a/configure.ac b/configure.ac index b2aff61..7ca5250 100644 --- a/configure.ac +++ b/configure.ac @@ -84,6 +84,7 @@ dnl These are bootstrap requirements! Once built, libtool may work with dnl much older releases of autoconf and automake. See release notes. dnl 1.11 is needed for color-tests, 1.11.1 fixes a security issue. AM_INIT_AUTOMAKE([1.11.1 gnu subdir-objects dist-xz color-tests parallel-tests]) +AM_SILENT_RULES([yes]) ## ------------------------- ## diff --git a/libltdl/Makefile.inc b/libltdl/Makefile.inc index adf2aad..931b68d 100644 --- a/libltdl/Makefile.inc +++ b/libltdl/Makefile.inc @@ -146,8 +146,8 @@ EXTRA_DIST += libltdl/argz_.h \ # doesn't have one that works with the given compiler. all-local $(lib_OBJECTS): libltdl/$(ARGZ_H) libltdl/argz.h: libltdl/argz_.h - $(mkinstalldirs) . libltdl/ - cp $(srcdir)/libltdl/argz_.h $@-t - mv $@-t $@ + $(AM_V_at)$(mkinstalldirs) . libltdl/ + $(AM_V_GEN)cp $(srcdir)/libltdl/argz_.h $@-t + $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += libltdl/argz.h \ libltdl/argz.h-t -- 1.7.7.1