From: Stefano Lattarini Date: Sat, 4 May 2013 09:50:10 +0000 (+0200) Subject: Merge branch 'branch-1.13.2' into maint X-Git-Tag: v1.13b~71 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d3a2e36b595cd740894823d060e31c6c483f569;p=platform%2Fupstream%2Fautomake.git Merge branch 'branch-1.13.2' into maint * branch-1.13.2: maint: targets and recipes to simplify testing on real-world packages build: preparatory refactoring build: tiny reduction in code duplication make flags analysis: handle more options with args make flags analysis: use simpler variable names make flags analysis: whitespace changes make flags analysis: embed in a subshell make flags analysis: be more robust make flags analysis: cater to GNU make 3.83 (still unreleased as of now) tests: expose weaknesses in make flags analysis tests: improve debugging output in checks on make flags analysis make flags analysis: refactor, to reduce code duplication tests: avoid one tricky use of "make -e" tests: avoid a spurious error with Solaris make subdirs: don't return false positives for the '-k' option's presence header-vars: recognize more make flags ('-k' in particular) header-vars: simplify how make flags are determined tests: remove dead code from t/make-dryrun.tap header-vars: new variable $(am__running_with_option) tests: expose bug#12554 (false positives for presence of '-k' make option) --- 2d3a2e36b595cd740894823d060e31c6c483f569 diff --cc Makefile.am index 2e05561,0b337f1..a98a1ce --- a/Makefile.am +++ b/Makefile.am @@@ -69,9 -69,15 +69,14 @@@ EXTRA_DIST += $(AUTOMAKESOURCES) \ bootstrap.sh \ GNUmakefile \ - maint.mk \ - syntax-checks.mk \ - HACKING + HACKING \ + PLANS + # For some tests or targets, we need to have the just-build automake and + # aclocal scripts avaiable on PATH. + extend_PATH = \ + { PATH='$(abs_builddir)/t/wrap'$(PATH_SEPARATOR)$$PATH && export PATH; } + # Make versioned links. We only run the transform on the root name; # then we make a versioned link with the transformed base name. This # seemed like the most reasonable approach. diff --cc maintainer/maint.mk index 1ea10a2,77b072f..56c52be --- a/maintainer/maint.mk +++ b/maintainer/maint.mk @@@ -469,6 -466,93 +472,94 @@@ update-copyright ) | sed -e '$$!s,$$,|,' | tr -d '\012\015'`; \ $(GIT) ls-files \ | grep -Ev '(^|/)README$$' \ + | grep -Ev '^PLANS(/|$$)' \ | grep -Ev "^($$excluded_re)$$" \ | $(update_copyright_env) xargs $(srcdir)/lib/$@ + + # --------------------------------------------------------------- # + # Testing on real-world packages can help us avoid regressions. # + # --------------------------------------------------------------- # + + # + # NOTE (from Stefano Lattarini): + # + # This section is mostly hacky and ad-hoc, but works for me and + # on my system. And while far from clean, it should help catching + # real regressions on real world packages, which is important. + # Ideas about how to improve this and make it more generic, portable, + # clean, etc., are welcome. + # + + # Tiny sample package. + FEW_PACKAGES += hello + # Smallish package using recursive make setup. + FEW_PACKAGES += make + # Medium-size package using non-recursive make setup. + FEW_PACKAGES += coreutils + + ALL_PACKAGES = \ + $(FEW_PACKAGES) \ + autoconf \ + bison \ + grep \ + tar \ + diffutils \ + smalltalk + + pkg-targets = check dist + + # Note: "ttp" stays for "Third Party Package". + + ttp-check ttp-check-all: do-clone = $(GIT) clone --verbose + ttp-check: ttp-packages = $(FEW_PACKAGES) + ttp-check-all: ttp-packages = $(ALL_PACKAGES) + + # Note: some packages depend on pkg-config, and its provided macros. + ttp-check ttp-check-all: t/pkg-config-macros.log + @set -e; \ + $(setup_autotools_paths); \ + skip_all_ () \ + { \ + echo "***" >&2; \ + echo "*** $@: WARNING: $$@" >&2; \ + echo "*** $@: WARNING: some packages might fail to bootstrap" >&2; \ + echo "***" >&2; \ + }; \ + . t/pkg-config-macros.dir/get.sh || exit 1; \ + mkdir $@.d && cd $@.d || exit 1; \ + for p in $(ttp-packages); do \ + echo; \ + echo ======== BEGIN TTP $$p =========; \ + echo; \ + set -x; \ + $(do-clone) git://$(git-sv-host)/$$p.git || exit 1; \ + ( \ + cd $$p \ + && ls -l \ + && if test -f bootstrap; then \ + ./bootstrap --no-git; \ + else \ + $$AUTORECONF -fvi; \ + fi \ + && ./configure \ + && if test $$p = make; then \ + $(MAKE) update; \ + else :; fi \ + && for t in $(pkg-targets); do \ + $(MAKE) $$t WERROR_CFLAGS= || exit 1; \ + done \ + ) || exit 1; \ + set +x; \ + echo; \ + echo ======== END TTP $$p =========; \ + echo; \ + done + ifndef keep-ttp-dir + rm -rf $@.d + endif + + # Alias for lazy typists. + ttp: ttp-check + ttp-all: ttp-check-all + + .PHONY: ttp ttp-check ttp-all ttp-check-all