libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/3] build: support AM_SILENT_RULES


From: Gary V. Vaughan
Subject: [PATCH 1/3] build: support AM_SILENT_RULES
Date: Mon, 31 Oct 2011 22:18:36 +0700

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) > 
'address@hidden'; \
          rm -f '$@'; mv 'address@hidden' '$@'; \
        fi
@@ -509,14 +515,17 @@ $(changelog): FORCE
 EXTRA_DIST += $(dotversion)
 BUILT_SOURCES += $(dotversion)
 $(dotversion):
-       echo '$(VERSION)' > 'address@hidden' && mv 'address@hidden' '$@'
+       $(AM_V_GEN)echo '$(VERSION)' > 'address@hidden' && mv 'address@hidden' 
'$@'
 
 ## 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],      address@hidden@])'; \
          echo 'm4_define([AT_PACKAGE_TARNAME],   address@hidden@])'; \
@@ -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 address@hidden
-       mv address@hidden $@
+       $(AM_V_at)$(mkinstalldirs) . libltdl/
+       $(AM_V_GEN)cp $(srcdir)/libltdl/argz_.h address@hidden
+       $(AM_V_at)mv address@hidden $@
 MOSTLYCLEANFILES += libltdl/argz.h \
                    libltdl/argz.h-t
-- 
1.7.7.1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]