+ 2009-03-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <peb@mppmu.mpg.de>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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 <meyering@redhat.com>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <akim@lrde.epita.fr>
+ Jim Meyering <jim@meyering.net>
+ Benoit Sigoure <tsuna@lrde.epita.fr>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ `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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <jengelh@medozas.de>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
+
+ 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 <Ralf.Wildenhues@gmx.de>
* NEWS: Update.