[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH 1/3] build: support AM_SILENT_RULES,
Gary V. Vaughan <=