From: Ralf Wildenhues Date: Sat, 28 Mar 2009 23:59:46 +0000 (+0100) Subject: Merge branch 'master' into next X-Git-Tag: v1.10b~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe936f644680510cf2a0b15ea2942c88204c9566;p=thirdparty%2Fautomake.git Merge branch 'master' into next * master: Rewrite maintainer-check in separate tests, parallelizable. Fix maintainer-check failure. Fix latex warning in manual. Sync auxiliary files from upstream. manual: minor cleanups. Sane (un)install for empty directory variables. Ensure that empty directory variables work with empty content variables. Use --tag=FC with libtool also for .f90 files. DISTFILES containing a directory and files in that directory. Fix a documentation typo. Define AM_RECURSIVE_TARGETS, for gnulib's GNUmakefile. Signed-off-by: Ralf Wildenhues --- fe936f644680510cf2a0b15ea2942c88204c9566 diff --cc ChangeLog index a05df3af2,3e08fe611..62fda044b --- a/ChangeLog +++ b/ChangeLog @@@ -1,267 -1,124 +1,388 @@@ + 2009-03-29 Ralf Wildenhues + + Rewrite maintainer-check in separate tests, parallelizable. + * Makefile.am (sc_diff_automake_in_automake, sc_perl_syntax) + (sc_no_brace_variable_expansions, sc_rm_minus_f) + (sc_no_for_variable_in_macro, sc_mkinstalldirs) + (sc_pre_normal_post_install_uninstall, sc_perl_no_undef) + (sc_perl_no_split_regex_space, sc_cd_in_backquotes) + (sc_cd_relative_dir, sc_perl_at_uscore_in_scalar_context) + (sc_perl_local_no_parens, sc_perl_local) + (sc_AMDEP_TRUE_in_automake_in, sc_tests_make_without_am_makeflags) + (sc_tests_plain_make, sc_tests_plain_autoconf) + (sc_tests_plain_autoupdate, sc_tests_plain_automake) + (sc_tests_here_document_format, sc_tests_Exit_not_exit) + (sc_tests_automake_fails, sc_tests_plain_aclocal) + (sc_tests_plain_perl, sc_tests_required_after_defs) + (sc_tests_overriding_macros_on_cmdline, sc_tests_plain_sleep) + (sc_tests_plain_egrep_fgrep, sc_mkdir_p, sc_perl_at_substs) + (sc_unquoted_DESTDIR, sc_tabs_in_texi, sc_at_in_texi): New rules, + all phony, all listed in ... + (syntax_check_rules): ... this new variable and split out from ... + (maintainer-check): ... this rule. Depend on $(syntax_check_rules). + + * Makefile.am (maintainer-check): Do not complain if DESTDIR is + passed as argument to `make'. + + * doc/automake.texi (Cross-Compilation): Fix underfull hbox. + + Sync auxiliary files from upstream. + * INSTALL, lib/INSTALL, lib/config.guess, lib/config.sub, + lib/texinfo.tex: Sync from upstream. + + 2009-03-28 Ralf Wildenhues + + manual: minor cleanups. + * doc/automake.texi (Yacc and Lex): Adjust spacing in example. + (Mixing Fortran 77 With C and C++): Drop unneeded @page breaks. + + Sane (un)install for empty directory variables. + This patch fixes all install and uninstall rules to behave + sanely when $(wheredir) is the empty string, but $(where_HOW) is + nonempty, for all kinds of values of `where' and `HOW'. + * lib/am/data.am (install-%DIR%%PRIMARY%, uninstall-%DIR%%PRIMARY%): + Do not touch the install tree if the corresponding directory variable + $(%NDIR%dir) is empty. + * lib/am/java.am (install-%DIR%JAVA, uninstall-%DIR%JAVA): Likewise. + * lib/am/libs.am (install-%DIR%LIBRARIES, uninstall-%DIR%LIBRARIES): + Likewise. + * lib/am/lisp.am (install-%DIR%LISP, uninstall-%DIR%LISP): Likewise. + * lib/am/ltlib.am (install-%DIR%LTLIBRARIES, uninstall-%DIR%LTLIBRARIES): + Likewise. + * lib/am/mans.am (install-man%SECTION%, uninstall-man%SECTION%): + Likewise. + * lib/am/progs.am (install-%DIR%PROGRAMS, uninstall-%DIR%PROGRAMS): + Likewise. + * lib/am/python.am (install-%DIR%PYTHON, uninstall-%DIR%PYTHON): + Likewise. + * lib/am/scripts.am (install-%DIR%SCRIPTS, uninstall-%DIR%SCRIPTS): + Likewise. + * lib/am/texinfos.am (install-dvi-am, install-html-am, install-pdf-am) + (install-ps-am, uninstall-dvi-am, uninstall-html-am, uninstall-pdf-am) + (uninstall-ps-am): Likewise. + * tests/instdir2.test, tests/instdir-java.test, + tests/instdir-lisp.test, tests/instdir-ltlib.test, + tests/instdir-prog.test, tests/instdir-python.test, + tests/instdir-texi.test: New tests. + * tests/Makefile.am: Update. + * NEWS: Update. + Suggestion by Akim Demaille. + + Ensure that empty directory variables work with empty content variables. + This test ensures that, if both $(wheredir) and $(where_HOW) are + the empty string, then the `install' and `uninstall' rules behave + sanely, for several directory variables `wheredir' and several + primaries `HOW'. + * tests/instdir.test: New test. + * tests/Makefile.am: Update. + + 2009-03-23 Ralf Wildenhues + + Use --tag=FC with libtool also for .f90 files. + * automake.in: Set 'libtool_tag' for language `fc'. + * tests/fort5.test: Grep for the tag. + * THANKS: Update. + Report by John R. Cary. + + 2009-03-22 Peter Breitenlohner + Ralf Wildenhues + + For PR automake/533: + DISTFILES containing a directory and files in that directory. + When the source tree contains non-writable files or directories + (as happens during distcheck), and directories or entries + thereof are listed multiple times in variables to be + distributed, then the corresponding directories below $(distdir) + need to be made writable recursively. Since file modes should + not change, they need to be copied recursively using `cp -f'. + * lib/am/distdir.am: Handle this situation. + * tests/distdir.test: Extend test to those cases. + * NEWS: Update. + Report by Peter Breitenlohner. + + 2009-03-22 Jim Meyering + + Fix a documentation typo. + * doc/automake.texi (Headers): Clarify the note telling when it's + better not to use noinst_HEADERS. + + 2009-03-22 Ralf Wildenhues + + Define AM_RECURSIVE_TARGETS, for gnulib's GNUmakefile. + This new macro lists all public targets which invoke `make' + recursively, or depend on targets which do so. It allows to + prevent parallelism selectively, when multiple targets are + passed on the `make' command line. + * lib/am/distdir.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): New + macro. + * lib/am/subdirs.am (AM_RECURSIVE_TARGETS): Likewise. + * lib/am/tags.am [%?SUBDIRS%] (AM_RECURSIVE_TARGETS): + Likewise. + +2009-03-11 Ralf Wildenhues + + Fix LAZY_TEST_SUITE handling and $(TEST_SUITE_LOG) recreation. + * lib/am/check.am (check-TESTS): Expand `$(TEST_LOGS)' only once + in the rule command, for systems with low command line limits. + Remove $(TEST_SUITE_LOG) even in LAZY_TEST_SUITE mode. + ($(TEST_SUITE_LOG)): Always recreate $(TEST_SUITE_LOG). Mention + lazy mode in the summary output. + * tests/parallel-tests.test: Test LAZY_TEST_SUITE semantics. + +2009-03-10 Ralf Wildenhues + + Fix parallel-tests with empty $(TESTS) for BSD make. + * lib/am/check.am [PARALLEL_TESTS] ($(TEST_SUITE_LOG)): Ignore + empty line stemming from empty $(TEST_LOGS), to avoid counting + zero tests as one. + (check-TESTS): If `$(TESTS)' is empty, override TEST_LOGS to be + empty, rather than `.log', for BSD make. + * tests/parallel-tests6.test: New test. + * tests/Makefile.am: Update. + + Mark check-html and check-TESTS as recursive for BSD make. + * lib/am/check.am [PARALLEL_TESTS] (.MAKE): Add check-TESTS + and check-html prerequisites. + + Match XFAIL_TESTS correctly with Solaris make. + * lib/am/check.am [PARALLEL_TESTS]: VPATH rewriting may have + changed test names, so srcdir needs to be taken into account + explicitly when checking against the list of tests expected + to fail. Fixes spurious FAILures from XFAIL_TESTS. + + Use append mode to capture parallel test output. + * tests/lisp8.test: Use append mode for output from `make -j', + to avoid dropped lines. + * tests/parallel-tests3.test: Likewise. + + parallel-tests: Fix summary output. + * lib/am/check.am (am__text_box): Fix unportable sed script, + replacing `\n' in the right hand side of an `s' command with + a literal newline. Kudos to Bruno Haible for the newline idea. + * tests/parallel-tests.test: Update test to expose this. + +2009-03-08 Ralf Wildenhues + + Overhaul of tests/README. + * tests/README: General overhaul. Mention parallel test suite + execution, the test-suite.log file; document `Exit' vs. `exit', + `defs' vs. `defs-p', the naming of `parallel-tests' tests. + * README: Simplify, point to tests/README. + + Documentation for the parallel-tests driver. + * doc/automake.texi (Tests, Options): Document the `parallel-tests' + option, including new features of the test driver. + * NEWS: Update. + + New tests for `parallel-tests'. + * tests/parallel-tests.test: New file, to expose a bunch of + features of `parallel-tests': VERBOSE, clean, TEST_SUITE_LOG, + test dependencies, DISABLE_HARD_ERRORS. + * tests/parallel-tests2.test: New file, test check-html. + * tests/parallel-tests3.test: New file, test concurrency. + * tests/parallel-tests4.test: New file, test suffix rules. + * tests/parallel-tests5.test: New file, demonstrate compile/test + concurrency. + * tests/defs.in: Add a `required' check for rst2html. + * tests/Makefile.am: Update. + + parallel-tests: Ensure backward-compatible semantics. + For each test in Automake's test suite that uses TESTS, generate + an identical one that uses the `parallel-tests' option, for + coverage of backward-compatible functionality. + * tests/gen-parallel-tests: New file, generates distributed + Makefile.am snippet tests/parallel-tests.am to list all tests + that use the TESTS interface but not yet the `parallel-tests' + option, with names mangled to use suffix `-p.test', in ... + (parallel_tests): ... this new make macro. + * tests/Makefile.am ($(srcdir)/parallel-tests.am) + ($(parallel_tests), defs-p): New rules. + (TESTS): Add check11.test and $(parallel_tests). + (check_SCRIPTS): Add defs-p, $(parallel_tests). + (check-clean-local): Remove `defs-p'. + (EXTRA_DIST): Distribute gen-parallel-tests. + (MAINTAINERCLEANFILES): New variable, remove $(parallel_tests). + * bootstrap: Generate parallel-tests.am. + * tests/check8.test: Check for circular dependencies in rules. + * tests/check11.test: New test, check that SKIPs are not counted + as passed tests. + * tests/defs.in: Unset DISABLE_HARD_ERRORS, LAZY_TEST_SUITE, + VERBOSE, so the tests are not influenced by the way our test + suite is invoked. + +2009-03-08 Akim Demaille + Jim Meyering + Benoit Sigoure + Ralf Wildenhues + + Parallel test execution: new option `parallel-tests'. + * automake.in (handle_tests): Set new conditional PARALLEL_TESTS + when reading check.am. Handle option `parallel-tests' and all + its new semantics. Define macros TEST_SUFFIXES, TEST_SUITE_LOG, + TEST_SUITE_HTML, TEST_LOGS, TEST_LOGS_TMP, suffix rules if + applicable, and per-target rules for other tests. Add all log + files to %clean_files at the `MOSTLY_CLEAN' level. + * lib/Automake/Options.pm (_process_option_list): Accept + `parallel-tests'. + * lib/am/check.am [!PARALLEL_TESTS] (check-TESTS): Move existing + testsuite driver under this new conditional. + [PARALLEL_TESTS] + (am__rst_title, am__rst_section, am__text_box am__sh_e_setup) + (am__check_pre, am__check_post): New internal macros. + ($(TEST_SUITE_LOG), check-TESTS, .log.html, check-html): New + rules. + * lib/am/check2.am: New file. + * lib/am/Makefile.am (dist_am_DATA): Add check2.am. + * tests/Makefile.am (AUTOMAKE_OPTIONS): Use `parallel-tests'. + (clean-local): Renamed from distclean-local. + * tests/defs.in: Drop VERBOSE handling, not needed here any more. + +2009-03-12 Ralf Wildenhues + + Rename `silent' mode to `silent-rules' mode. + * automake.in (define_verbose_var, verbose_flag) + (define_verbose_tagvar, handle_options, handle_languages) + (handle_configure, parse_arguments): Rename the `silent' option + to `silent-rules', so it coincides with the `--silent-rules' + command line option; adjust all code and comments. + * lib/Automake/Options.pm (_process_option_list): Likewise. + * doc/automake.texi (Invoking Automake, Libtool Flags, Options): + Likewise. + * NEWS: Adjust. + * tests/dollarvar.test, tests/silent.test, tests/silent2.test, + tests/silent3.test, tests/silent4.test, tests/silent5.test, + tests/silent6.test, tests/silent7.test: Likewise. + Suggestion by Jan Engelhardt. + +2009-03-11 Ralf Wildenhues + + `silent' mode unconditionally overrides portability-recursive. + * automake.in (parse_arguments): Don't handle a global `silent' + option here; instead, ... + (handle_options): ... handle the "normal" `silent' option here. + Override `portability-recursive' here, at the last point we deal + with options, instead ... + * lib/Automake/Options.pm (_process_option_list): ... of here. + * tests/silent6.test: Replace unportable make snippet, remove + FIXME note, add more test cases of options passed in the various + locations. + + Drop extra line from compile rules when `silent' is not used. + * lib/am/depend2.am [!%FASTDEP%]: Only use the `%VERBOSE% + @AM_BACKSLASH@' extra line if ?VERBOSE?. + Report by Ralf Corsepius. + +2009-03-10 Ralf Wildenhues + + Keep `--silent-rules' across triggered automake reruns. + * automake.in (usage): Reformat to be a bit clearer. + (handle_configure): Remove substitutions %STRICTNESS% and + %USE-DEPS% in favor of a new substitution %AUTOMAKE-OPTIONS% + that carries over all needed flags. + * lib/am/configure.am (%MAKEFILE-IN%): Adjust rule. + * tests/flavor.test: New test, to ensure --$flavor (gnu, + gnits, foreign, cygnus), --ignore-deps, and --silent-rules are + preserved across automake reruns. + * tests/Makefile.am: Update. + +2009-03-09 Ralf Wildenhues + + Provide variables for silencing of user rules. + * automake.in (handle_languages): Always define `AM_V_GEN' and + `AM_V_at'. + * doc/automake.texi (Options): Document these flags. + * tests/silent7.test: New test. + * tests/Makefile.am: Update. + + Redo variable naming for `silent' machinery. + The public variables are named `AM_V_' plus the compiler + short-hand now, e.g.: AM_V_CC, AM_V_CXXLD, AM_V_GEN. The + dispatch variables are internal details and begin with + `am__v_'. + * automake.in (verbose_var): Update comment. + (verbose_private_var): New function. Order functions so that + ones not needed outside this section are listed first. + (verbose_dispatch): Remove, no need to factor this. + (define_verbose_var, define_verbose_libtool): Use + verbose_private_var. + (define_verbose_tagvar): Likewise; and simplify. + Report by Jan Engelhardt. + + Let -Wportability turn on/off the portability-recursive channel. + * lib/Automake/ChannelDefs.pm (switch_warning): switch + `portability-recursive' channel as well if changing the + `portability' channel. + * tests/dollarvar2.test: New test. + * tests/Makefile.am: Update. + +2009-03-07 Ralf Wildenhues + + New automake command line option `--silent-rules'. + * automake.in (parse_arguments): Accept `--silent-rules; let it + override command line warning settings. + (usage): Document it. + * doc/automake.texi (Invoking Automake): Document it. + * NEWS: Update. + * tests/dollarvar.test: Also test `--silent-rules'. + * tests/pr300-ltlib.test: Use `$MAKE V=1' to enable verbose + output, which is matched later in the test. + * tests/silent6.test: New test. + * tests/Makefile.am: Update. + + Documentation and tests for the `silent' option. + * NEWS: Update. + * doc/automake.texi (Invoking Automake): `silent' turns off some + portability warnings. + (Libtool Flags): `silent' silences libtool. + (Options): Document the `silent' flag. + * tests/dollarvar.test, tests/silent.test, tests/silent2.test, + tests/silent3.test, tests/silent4.test, tests/silent5.test: New + tests. + * tests/Makefile.am: Update. + * Makefile.am (maintainer-check): Ignore `DESTDIR' and `V' when + checking for make variables that should not be overridden from + the command line. + +2009-03-07 Jan Engelhardt + Ralf Wildenhues + + Implement `silent' build rules. + * automake.in (ccer): New field in the language structure. + Initialize it for all registered languages. + (verbose_var, verbose_flag, verbose_dispatch) + (silent_flag, define_verbose_var, define_verbose_tagvar) + (define_verbose_libtool): New functions. + (handle_languages, handle_programs, handle_libraries) + (handle_ltlibraries, handle_configure) + (define_compiler_variable, define_linker_variable) + (define_per_target_linker_variable): Use them where appropriate + to define variables to implement the silent output machinery. + * lib/Automake/Options.pm (_process_option_list): Accept + `silent', turning off `portability-recursive'. + * lib/am/depend2.am: Add %VERBOSE% and %SILENT% prefixes where + appropriate. + * lib/am/lex.am: Likewise. + * lib/am/library.am: Likewise. + * lib/am/ltlibrary.am: Likewise. + * lib/am/program.am: Likewise. + * lib/am/yacc.am: Likewise. + * m4/init.m4 (AM_INIT_AUTOMAKE): Substitute, but do not define, + AM_BACKSLASH. + * tests/defs.in: Unset `V', to avoid influencing inner tests. + +2009-03-07 Ralf Wildenhues + + New channel `portability-recursive'. + Add new channel for portability warnings about recursive make + variable expansions `$(var1$(var2))'. Enable it alongside + `-Wportability'. + * lib/Automake/ChannelDefs.pm (Automake::ChannelDefs): Register + channel `portability-recursive'. + * lib/Automake/Variable.pm (_VARIABLE_CHARACTERS) + (_VARIABLE_RECURSIVE_PATTERN): New variables. + (check_variable_expansions): Diagnose recursive variable + expansions through the new channel. + 2009-03-14 Ralf Wildenhues * NEWS: Update. diff --cc Makefile.am index 8b87a8c85,7b738ca76..af9147b96 --- a/Makefile.am +++ b/Makefile.am @@@ -271,10 -361,12 +361,12 @@@ sc_tests_required_after_defs exit 1; \ fi; \ done + ## Overriding a Makefile macro on the command line is not portable when ## recursive targets are used. Better use an envvar. SHELL is an exception, -## POSIX says it can't come from the environment. DESTDIRS is an exception, -## too, as package authors are urged not to intitialize this anywhere. +## POSIX says it can't come from the environment. V and DESTDIRS are exceptions, - ## too, as package authors are urged not to intitialize this anywhere. ++## too, as package authors are urged not to initialize them anywhere. + sc_tests_overriding_macros_on_cmdline: @if grep -E '\$$MAKE .*(SHELL=.*=|=.*SHELL=)' $(srcdir)/tests/*.test; then \ echo 'Rewrite "$$MAKE foo=bar SHELL=$$SHELL" as "foo=bar $$MAKE -e SHELL=$$SHELL"' 1>&2; \ echo ' in the above lines, it is more portable.' 1>&2; \