Merge branch 'master' into next
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 28 Mar 2009 23:59:46 +0000 (00:59 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 28 Mar 2009 23:59:46 +0000 (00:59 +0100)
* 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 <Ralf.Wildenhues@gmx.de>
14 files changed:
1  2 
ChangeLog
Makefile.am
Makefile.in
NEWS
automake.in
doc/Makefile.in
doc/automake.texi
lib/Automake/Makefile.in
lib/Automake/tests/Makefile.in
lib/Makefile.in
lib/am/Makefile.in
m4/Makefile.in
tests/Makefile.am
tests/Makefile.in

diff --cc ChangeLog
+++ b/ChangeLog
+ 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.
diff --cc 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; \
diff --cc Makefile.in
Simple merge
diff --cc NEWS
Simple merge
diff --cc automake.in
Simple merge
diff --cc doc/Makefile.in
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/Makefile.in
Simple merge
Simple merge
diff --cc m4/Makefile.in
Simple merge
Simple merge
Simple merge