automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.12.1-86


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.12.1-86-g7b1697b
Date: Fri, 15 Jun 2012 09:15:32 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=7b1697bd9b600cec62b8d52c56d80c60d39108a7

The branch, master has been updated
       via  7b1697bd9b600cec62b8d52c56d80c60d39108a7 (commit)
       via  db16f500f9176e2da49c46302dbf6d44f2cce2fb (commit)
       via  401a2a82c602f24ed82ce95b2a48cf786198e42d (commit)
       via  9cb6dc889b95c90f443e7ec30b3541d33ca97ef3 (commit)
       via  911a6e9fc85ce67a867178bd7daf8ce8c461135c (commit)
       via  b72e9747b2493362fc43030c500d3f4e881a2c06 (commit)
       via  6f01c1e0c1629265b0f96142b7922ef074e2763a (commit)
       via  c5f70e79b590f5edfcdc200562170a8b87eabf91 (commit)
       via  61dfb4708e858ee557722b99a3122a0b28af6c59 (commit)
       via  a9bd08564cccaf3c602355a8e724812fb97b5b4e (commit)
       via  aca096de47774e8c0344eeda3cdca9fca9769edb (commit)
       via  825722a190bcc939abcf129cafd896b4b84d0ecd (commit)
       via  5f6e8015727560fc92d613bb7c531c21a03850ab (commit)
       via  1f009dac2de393da1010a02a678131fac40d496d (commit)
      from  2ef0a2d367b4db6ca77ff5b8e5f504bdbdbd18de (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 7b1697bd9b600cec62b8d52c56d80c60d39108a7
Merge: 2ef0a2d db16f50
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 15 10:27:27 2012 +0200

    Merge branch 'maint'
    
    * maint:
      tests: minor reorganization of few tests
      fixup: adjust t/list-of-tests.mk for renamed/added tests
      subdirs: enhance coverage, tweak and rename few tests
      sync: update files from upstream with "make fetch"
      py-compile: consistently quote 'like this', not `like this'.
      docs: recursive make considered harmful
      docs: clean rules are not run in reverse order of build rules anymore
      silent: new $(AM_V_P) variable, tell if we're running in silent mode
      refactor: silent rules handling (a little)
      refactor: &define_verbose_var: accept a third optional argument
    
    + Extra non-trivial edits:
    
    These are due to the fact that support for silent rules is enabled
    unconditionally these days (since commit 'v1.12-34-g14141f2' of
    2012-05-01, "silent rules: support for them is always active now").
    
    * automake.in: In the new silent related code, do not ever check
    whether the 'silent-rules' option is active; just assume support
    for silent rules is enabled.
    * t/silent-obsolescent-warns.sh: Remove as obsolete.
    * t/list-of-tests.mk: Adjust.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit db16f500f9176e2da49c46302dbf6d44f2cce2fb
Merge: 401a2a8 61dfb47
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 15 10:09:19 2012 +0200

    Merge branch 'docs-recursion' into maint
    
    * docs-recursion:
      docs: recursive make considered harmful

commit 401a2a82c602f24ed82ce95b2a48cf786198e42d
Merge: 9cb6dc8 825722a
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 15 10:09:04 2012 +0200

    Merge branch 'silent-custom' into maint
    
    * silent-custom:
      silent: new $(AM_V_P) variable, tell if we're running in silent mode
      refactor: silent rules handling (a little)
      refactor: &define_verbose_var: accept a third optional argument
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 61dfb4708e858ee557722b99a3122a0b28af6c59
Author: Stefano Lattarini <address@hidden>
Date:   Tue Jun 12 17:24:21 2012 +0200

    docs: recursive make considered harmful
    
    In the documentation, we shouldn't confuse "packages using subdirectories"
    with "packages using recursive make invocations".  A package can have a
    careful organization in subdirectories, make no (or almost no) use of make
    recursion (examples of such packages are GNU bison, GNU cppi, and Automake
    itself).
    
    In fact, make recursion should be used as seldom as possible, because it
    makes the build system more brittle and dependency declarations less
    faithful.  See Peter Miller's article "Recursive Make Considered Harmful"
    for more a more in-depth discussion:
    
        http://miller.emu.id.au/pmiller/books/rmch/
    
    * doc/automake.texi (Directories): Clarify how a build system based on
    make recursion does.  Observe that such a system, albeit being very
    widespread, has its own issues and drawbacks, and that one can have a
    non-recursive setup also for projects using complex directory layout.
    (Recursing subdirectories): Speak of "packages that use make recursion"
    rather than of "packages with subdirectories".
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 825722a190bcc939abcf129cafd896b4b84d0ecd
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jun 11 16:12:01 2012 +0200

    silent: new $(AM_V_P) variable, tell if we're running in silent mode
    
    Addresses part of automake bug#8665.
    
    * automake.in (handle_silent): Define a new make variable '$(AM_V_P)',
    that expands to a shell conditional that can be used in make recipes to
    determine whether they are being run in silent mode or not.  The choice
    of the name derives from the LISP convention of appending the letter
    'P' to denote a predicate (see also "the '-P' convention" in the Jargon
    File); we do so for lack of a better convention.
    * t/automake.texi, NEWS: Document the new variable.
    * t/silent6.sh: Adjust and extend.  Move out the checks that didn't
    actually deal with user extension of silent rules ...
    * t/silent-obsolescent-warns.sh: ... into this test (bound to be
    removed once 'maint' is merged into the 'master' branch).
    * t/list-of-tests.mk: Add the new test.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 5f6e8015727560fc92d613bb7c531c21a03850ab
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jun 11 13:00:23 2012 +0200

    refactor: silent rules handling (a little)
    
    * automake.in (handle_languages): Move definition of $(AM_V_GEN)
    variable ...
    (define_verbose_tagvar): ... and of '$(AM_V_at)' variable ...
    (handle_silent): ... in this new subroutine.
    (generate_makefile): Call it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 1f009dac2de393da1010a02a678131fac40d496d
Author: Stefano Lattarini <address@hidden>
Date:   Mon Jun 11 12:48:29 2012 +0200

    refactor: &define_verbose_var: accept a third optional argument
    
    This is only required by future changes.
    
    * automake.in (define_verbose_var): Accept a third optional argument,
    specifying the value to assign to the given make variable when silent
    rules are disabled.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                         |    6 +
 automake.in                                  |   43 ++++++--
 doc/automake.texi                            |   55 +++++++---
 lib/config.guess                             |    4 +-
 lib/gnupload                                 |   28 ++++--
 lib/py-compile                               |    2 +-
 lib/texinfo.tex                              |    6 +-
 t/{subdir6.sh => confh-subdir-clean.sh}      |    0
 t/{subdir4.sh => depcomp-implicit-auxdir.sh} |    0
 t/{subdir7.sh => dir-named-obj-is-bad.sh}    |   22 ++++-
 t/list-of-tests.mk                           |   28 +++---
 t/silent6.sh                                 |   79 ++++++++++-----
 t/{subdir3.sh => sourcefile-in-subdir.sh}    |    0
 t/{srcsub.sh => src-acsubst.sh}              |   25 +++--
 t/srcsub2.sh                                 |   36 ------
 t/{subcond3.sh => subdir-ac-subst.sh}        |    4 +-
 t/{subdir5.sh => subdir-add-pr46.sh}         |    0
 t/{subdir8.sh => subdir-add2-pr46.sh}        |    0
 t/{subcond2.sh => subdir-am-cond.sh}         |    4 +-
 t/{cond2.sh => subdir-cond-err.sh}           |    0
 t/{subcond.sh => subdir-cond-gettext.sh}     |    6 +-
 t/subdir-order.sh                            |  147 ++++++++++++++++++++++++++
 t/{subdir2.sh => subdir-subsub.sh}           |    9 ++-
 t/{subdir9.sh => subdir-with-slash.sh}       |    2 +-
 24 files changed, 375 insertions(+), 131 deletions(-)
 rename t/{subdir6.sh => confh-subdir-clean.sh} (100%)
 rename t/{subdir4.sh => depcomp-implicit-auxdir.sh} (100%)
 rename t/{subdir7.sh => dir-named-obj-is-bad.sh} (71%)
 rename t/{subdir3.sh => sourcefile-in-subdir.sh} (100%)
 rename t/{srcsub.sh => src-acsubst.sh} (58%)
 delete mode 100755 t/srcsub2.sh
 rename t/{subcond3.sh => subdir-ac-subst.sh} (97%)
 rename t/{subdir5.sh => subdir-add-pr46.sh} (100%)
 rename t/{subdir8.sh => subdir-add2-pr46.sh} (100%)
 rename t/{subcond2.sh => subdir-am-cond.sh} (97%)
 rename t/{cond2.sh => subdir-cond-err.sh} (100%)
 rename t/{subcond.sh => subdir-cond-gettext.sh} (94%)
 create mode 100644 t/subdir-order.sh
 rename t/{subdir2.sh => subdir-subsub.sh} (91%)
 rename t/{subdir9.sh => subdir-with-slash.sh} (97%)

diff --git a/NEWS b/NEWS
index 8a9d69d..33812db 100644
--- a/NEWS
+++ b/NEWS
@@ -109,6 +109,12 @@ New in 1.12.2:
     compiled object file that is in the same directory of a subdir
     object.  See automake bug#10697.
 
+* Silent rules support:
+
+  - A new predefined $(AM_V_P) make variable is provided; it expands
+    to a shell conditional that can be used in recipes to know whether
+    make is being run in silent or verbose mode.
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 New in 1.12.1:
diff --git a/automake.in b/automake.in
index e5f95ee..373e259 100644
--- a/automake.in
+++ b/automake.in
@@ -1138,15 +1138,19 @@ sub verbose_private_var ($)
     return 'am__v_' . $name;
 }
 
-# define_verbose_var (NAME, VAL)
-# ------------------------------
-# For silent rules, setup VAR and dispatcher, to expand to VAL if silent.
-sub define_verbose_var ($$)
-{
-    my ($name, $val) = @_;
+# define_verbose_var (NAME, VAL-IF-SILENT, [VAL-IF-VERBOSE])
+# ----------------------------------------------------------
+# For  silent rules, setup VAR and dispatcher, to expand to
+# VAL-IF-SILENT if silent, to VAL-IF-VERBOSE (defaulting to
+# empty) if not.
+sub define_verbose_var ($$;$)
+{
+    my ($name, $silent_val, $verbose_val) = @_;
+    $verbose_val = '' unless defined $verbose_val;
     my $var = verbose_var ($name);
     my $pvar = verbose_private_var ($name);
     my $silent_var = $pvar . '_0';
+    my $verbose_var = $pvar . '_1';
     # For typical 'make's, 'configure' replaces AM_V (inside @@) with $(V)
     # and AM_DEFAULT_V (inside @@) with $(AM_DEFAULT_VERBOSITY).
     # For strict POSIX 2008 'make's, it replaces them with 0 or 1 instead.
@@ -1154,9 +1158,12 @@ sub define_verbose_var ($$)
     define_variable ($var, '$(' . $pvar . '_@'.'AM_V'.'@)', INTERNAL);
     define_variable ($pvar . '_', '$(' . $pvar . '_@'.'AM_DEFAULT_V'.'@)',
                      INTERNAL);
-    Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE, $val,
-                                '', INTERNAL, VAR_ASIS)
+    Automake::Variable::define ($silent_var, VAR_AUTOMAKE, '', TRUE,
+                                $silent_val, '', INTERNAL, VAR_ASIS)
       if (! vardef ($silent_var, TRUE));
+    Automake::Variable::define ($verbose_var, VAR_AUTOMAKE, '', TRUE,
+                                $verbose_val, '', INTERNAL, VAR_ASIS)
+      if (! vardef ($verbose_var, TRUE));
 }
 
 # Above should not be needed in the general automake code.
@@ -1191,7 +1198,6 @@ sub define_verbose_tagvar ($)
 {
     my ($name) = @_;
     define_verbose_var ($name, '@echo "  '. $name . ' ' x (8 - length ($name)) 
. '" $@;');
-    define_verbose_var ('at', '@');
 }
 
 # define_verbose_texinfo
@@ -1217,6 +1223,20 @@ sub define_verbose_libtool ()
     return verbose_flag ('lt');
 }
 
+sub handle_silent ()
+{
+    # Define "$(AM_V_P)", expanding to a shell conditional that can be
+    # used in make recipes to determine whether we are being run in
+    # silent mode or not.  The choice of the name derives from the LISP
+    # convention of appending the letter 'P' to denote a predicate (see
+    # also "the '-P' convention" in the Jargon File); we do so for lack
+    # of a better convention.
+    define_verbose_var ('P', 'false', ':');
+    # *Always* provide the user with '$(AM_V_GEN)', unconditionally.
+    define_verbose_tagvar ('GEN');
+    define_verbose_var ('at', '@');
+}
+
 
 ################################################################
 
@@ -1570,9 +1590,6 @@ sub handle_languages
          unless defined $done{$languages{'c'}};
        define_linker_variable ($languages{'c'});
       }
-
-    # Always provide the user with 'AM_V_GEN' for silent rules.
-    define_verbose_tagvar ('GEN');
 }
 
 
@@ -8000,6 +8017,8 @@ sub generate_makefile ($$)
   handle_programs;
   handle_scripts;
 
+  handle_silent;
+
   # These must be run after all the sources are scanned.  They
   # use variables defined by &handle_libraries, &handle_ltlibraries,
   # or &handle_programs.
diff --git a/doc/automake.texi b/doc/automake.texi
index 02d1bb4..0ed2bfe 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -4104,13 +4104,25 @@ For simple projects that distribute all files in the 
same directory
 it is enough to have a single @file{Makefile.am} that builds
 everything in place.
 
-In larger projects it is common to organize files in different
-directories, in a tree.  For instance one directory per program, per
-library or per module.  The traditional approach is to build these
-subdirectories recursively: each directory contains its @file{Makefile}
-(generated from @file{Makefile.am}), and when @command{make} is run
-from the top level directory it enters each subdirectory in turn to
-build its contents.
+In larger projects, it is common to organize files in different
+directories, in a tree.  For example, there could be a directory
+for the program's source, one for the testsuite, and one for the
+documentation; or, for very large projects, there could be one
+directory per program, per library or per module.
+
+The traditional approach is to build these subdirectories recursively,
+employing @emph{make recursion}: each directory contains its
+own @file{Makefile}, and when @command{make} is run from the top-level
+directory, it enters each subdirectory in turn, and invokes there a
+new @command{make} instance to build the directory's contents.
+
+Because this approach is very widespread, Automake offers built-in
+support for it.  However, it is worth nothing that the use of make
+recursion has its own serious issues and drawbacks, and that it's
+well possible to have packages with a multi directory layout that
+make little or no use of such recursion (examples of such packages
+are GNU Bison and GNU Automake itself); see also the @ref{Alternative}
+section below.
 
 @menu
 * Subdirectories::              Building subdirectories recursively
@@ -4124,7 +4136,7 @@ build its contents.
 
 @cindex @code{SUBDIRS}, explained
 
-In packages with subdirectories, the top level @file{Makefile.am} must
+In packages using make recursion, the top level @file{Makefile.am} must
 tell Automake which subdirectories are to be built.  This is done via
 the @code{SUBDIRS} variable.
 @vindex SUBDIRS
@@ -4182,8 +4194,6 @@ will be built.  It is customary to arrange test 
directories to be
 built after everything else since they are meant to test what has
 been constructed.
 
-All @code{clean} rules are run in reverse order of build rules.
-
 @node Conditional Subdirectories
 @section Conditional Subdirectories
 @cindex Subdirectories, building conditionally
@@ -4261,7 +4271,7 @@ does not know the possible values of these variables.  In 
this case
 @cindex @code{SUBDIRS} and @code{AM_CONDITIONAL}
 @cindex @code{AM_CONDITIONAL} and @code{SUBDIRS}
 
address@hidden Keep in sync with subcond2.sh
address@hidden Keep in sync with subdir-am-cond.sh
 
 @file{configure} should output the @file{Makefile} for each directory
 and define a condition into which @file{opt/} should be built.
@@ -4301,7 +4311,7 @@ automatically because it knows that @code{MAYBE_OPT} can 
contain
 @cindex @code{SUBDIRS} and @code{AC_SUBST}
 @cindex @code{AC_SUBST} and @code{SUBDIRS}
 
address@hidden Keep in sync with subcond3.sh
address@hidden Keep in sync with subdir-ac-subst.sh
 
 Another possibility is to define @code{MAYBE_OPT} from
 @file{./configure} using @code{AC_SUBST}:
@@ -4407,7 +4417,7 @@ variables it cannot ensure the corresponding directory 
exists.
 If you've ever read Peter Miller's excellent paper,
 @uref{http://miller.emu.id.au/pmiller/books/rmch/,
 Recursive Make Considered Harmful}, the preceding sections on the use of
-subdirectories will probably come as unwelcome advice.  For those who
+make recursion will probably come as unwelcome advice.  For those who
 haven't read the paper, Miller's main thesis is that recursive
 @command{make} invocations are both slow and error-prone.
 
@@ -4417,7 +4427,6 @@ believe.  This work is new and there are probably warts.
 to write a single @file{Makefile.am} for a complex multi-directory
 package.
 
-
 By default an installable file specified in a subdirectory will have its
 directory name stripped before installation.  For instance, in this
 example, the header file will be installed as
@@ -10818,15 +10827,31 @@ limitation should go away with time.
 @vindex @code{AM_DEFAULT_VERBOSITY}
 @vindex @code{AM_V}
 @vindex @code{AM_DEFAULT_V}
-To extend the silent mode to your own rules, you have two choices:
+To extend the silent mode to your own rules, you have few choices:
 
 @itemize @bullet
+
 @item
 You can use the predefined variable @code{AM_V_GEN} as a prefix to
 commands that should output a status line in silent mode, and
 @code{AM_V_at} as a prefix to commands that should not output anything
 in silent mode.  When output is to be verbose, both of these variables
 will expand to the empty string.
+
address@hidden
+You can silence a recipe unconditionally with @code{@@}, and then use
+the predefined variable @code{AM_V_P} to know whether make is being run
+in silent or verbose mode, adjust the verbose information your recipe
+displays accordingly:
+
address@hidden
+generate-headers:
+        @set -e; \
+        ... [commands defining a shell variable '$headers'] ...; \
+        if $(AM_V_P); then set -x; else echo " GEN   [headers]"; fi; \
+        rm -f $$headers && generate-header --flags $$headers
address@hidden example
+
 @item
 You can add your own variables, so strings of your own choice are shown.
 The following snippet shows how you would define your own equivalent of
diff --git a/lib/config.guess b/lib/config.guess
index d622a44..c0adba9 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2012-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1256,7 +1256,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
diff --git a/lib/gnupload b/lib/gnupload
index b71ddfd..186d2ad 100755
--- a/lib/gnupload
+++ b/lib/gnupload
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Sign files and upload them.
 
-scriptversion=2012-01-15.15; # UTC
+scriptversion=2012-06-11.00; # UTC
 
 # Copyright (C) 2004-2012 Free Software Foundation, Inc.
 #
@@ -28,6 +28,7 @@ GPG='gpg --batch --no-tty'
 conffile=.gnuploadrc
 to=
 dry_run=false
+replace=
 symlink_files=
 delete_files=
 delete_symlinks=
@@ -53,8 +54,10 @@ Options:
   --to DEST                specify one destination for FILES
                            (multiple --to options are allowed)
   --user NAME              sign with key NAME
+  --replace                allow replacements of existing files
   --symlink-regex[=EXPR]   use sed script EXPR to compute symbolic link names
   --dry-run                do nothing, show what would have been done
+                           (including the constructed directive file)
   --version                output version information and exit
 
 If --symlink-regex is given without EXPR, then the link target name
@@ -146,6 +149,9 @@ while test -n "$1"; do
     --delete)
       collect_var=delete_files
       ;;
+    --replace)
+      replace="replace: true"
+      ;;
     --rmsymlink)
       collect_var=delete_symlinks
       ;;
@@ -243,11 +249,13 @@ unset passphrase
 # listings with their arguments...).
 # Remember this script runs with 'set -e', so if echo is not built-in
 # it will exit now.
-PATH=/empty echo -n "Enter GPG passphrase: "
-stty -echo
-read -r passphrase
-stty echo
-echo
+if $dry_run; then :; else
+  PATH=/empty echo -n "Enter GPG passphrase: "
+  stty -echo
+  read -r passphrase
+  stty echo
+  echo
+fi
 
 if test $# -ne 0; then
   for file
@@ -270,7 +278,7 @@ filename: $3$stmt"
   fi
 
   cat >${2}.directive<<EOF
-version: 1.1
+version: 1.2
 directory: $1
 comment: gnupload v. $scriptversion$stmt
 EOF
@@ -393,6 +401,12 @@ do
   do
     echo "Uploading $file to $dest ..."
     stmt=
+    #
+    # allowing file replacement is all or nothing.
+    if test -n "$replace"; then stmt="$stmt
+$replace"
+    fi
+    #
     files="$file $file.sig"
     destdir=`echo $dest | sed 's/[^:]*://'`
     if test -n "$symlink_expr"; then
diff --git a/lib/py-compile b/lib/py-compile
index 699e28f..6916903 100755
--- a/lib/py-compile
+++ b/lib/py-compile
@@ -36,7 +36,7 @@ me=py-compile
 usage_error ()
 {
   echo "$me: $*" >&2
-  echo "Try \`$me --help' for more information." >&2
+  echo "Try '$me --help' for more information." >&2
   exit 1
 }
 
diff --git a/lib/texinfo.tex b/lib/texinfo.tex
index c2901b9..a5a7b2b 100644
--- a/lib/texinfo.tex
+++ b/lib/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-05-16.16}
+\def\texinfoversion{2012-06-05.14}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -1117,7 +1117,7 @@ where each line of input produces a line of output.}
 % #1 is a control sequence in which to do the replacements,
 % which we \xdef.
 \def\txiescapepdf#1{%
-  \ifx\pdfescapestring\relax
+  \ifx\pdfescapestring\thisisundefined
     % No primitive available; should we give a warning or log?
     % Many times it won't matter.
   \else
@@ -6150,7 +6150,7 @@ end
 % Same as \defaultparindent.
 \newdimen\tocindent \tocindent = 15pt
 
-% Now for the actual typesetting. In all of these, #1 is the text and #2 is the
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
 % page number.
 %
 % If the toc has to be broken over pages, we want it to be at chapters
diff --git a/t/subdir6.sh b/t/confh-subdir-clean.sh
similarity index 100%
rename from t/subdir6.sh
rename to t/confh-subdir-clean.sh
diff --git a/t/subdir4.sh b/t/depcomp-implicit-auxdir.sh
similarity index 100%
rename from t/subdir4.sh
rename to t/depcomp-implicit-auxdir.sh
diff --git a/t/subdir7.sh b/t/dir-named-obj-is-bad.sh
similarity index 71%
rename from t/subdir7.sh
rename to t/dir-named-obj-is-bad.sh
index a2c47a1..e422f19 100755
--- a/t/subdir7.sh
+++ b/t/dir-named-obj-is-bad.sh
@@ -26,12 +26,12 @@ AC_OUTPUT
 END
 
 : > obj/Makefile.am
-echo 'SUBDIRS = obj' >Makefile.am
+echo 'SUBDIRS = obj' > Makefile.am
 
 $ACLOCAL
 
 AUTOMAKE_fails
-grep 'Makefile.am:1:.*obj.*BSD' stderr
+grep "^Makefile\.am:1:.*'obj'.*BSD make" stderr
 
 cat >Makefile.am <<'END'
 SUBDIRS = @STH@
@@ -40,6 +40,22 @@ DIST_SUBDIRS = $(FOO)
 END
 
 AUTOMAKE_fails
-grep 'Makefile.am:2:.*obj.*BSD' stderr
+grep "^Makefile\\.am:2:.*'obj'.*BSD make" stderr
+
+rm -rf autom4te*.cache
+
+cat >configure.ac << 'END'
+AC_INIT([x], [1.0])
+AC_CONFIG_AUX_DIR([obj])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([Makefile])
+END
+
+rm -f obj/Makefile.am
+: > Makefile.am
+
+$ACLOCAL
+AUTOMAKE_fails -a
+grep "^configure\.ac:2:.*'obj'.*BSD make" stderr
 
 :
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index ab35162..b80c071 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -248,7 +248,6 @@ t/compile_f90_c_cxx.sh \
 t/compile_f_c_cxx.sh \
 t/cond-basic.sh \
 t/cond.sh \
-t/cond2.sh \
 t/cond3.sh \
 t/cond4.sh \
 t/cond5.sh \
@@ -310,6 +309,7 @@ t/confh5.sh \
 t/confh6.sh \
 t/confh7.sh \
 t/confh8.sh \
+t/confh-subdir-clean.sh \
 t/confincl.sh \
 t/conflnk.sh \
 t/conflnk2.sh \
@@ -356,6 +356,7 @@ t/depcomp.sh \
 t/depcomp2.sh \
 t/depcomp8a.sh \
 t/depcomp8b.sh \
+t/depcomp-implicit-auxdir.sh \
 t/depdist.sh \
 t/depend.sh \
 t/depend3.sh \
@@ -364,6 +365,7 @@ t/depend5.sh \
 t/depend6.sh \
 t/deprecated-acinit.sh \
 t/destdir.sh \
+t/dir-named-obj-is-bad.sh \
 t/dirlist.sh \
 t/dirlist2.sh \
 t/dirlist-abspath.sh \
@@ -972,8 +974,8 @@ t/silent-nested-vars.sh \
 t/silent-lex.sh \
 t/silent-yacc.sh \
 t/silent-yacc-headers.sh \
-t/srcsub.sh \
-t/srcsub2.sh \
+t/src-acsubst.sh \
+t/sourcefile-in-subdir.sh \
 t/space.sh \
 t/specflg.sh \
 t/specflg2.sh \
@@ -1000,20 +1002,18 @@ t/strip.sh \
 t/strip2.sh \
 t/strip3.sh \
 t/subdir.sh \
-t/subdir2.sh \
-t/subdir3.sh \
-t/subdir4.sh \
-t/subdir5.sh \
-t/subdir6.sh \
-t/subdir7.sh \
-t/subdir8.sh \
-t/subdir9.sh \
+t/subdir-ac-subst.sh \
+t/subdir-add-pr46.sh \
+t/subdir-add2-pr46.sh \
+t/subdir-am-cond.sh \
+t/subdir-cond-err.sh \
+t/subdir-cond-gettext.sh \
+t/subdir-order.sh \
+t/subdir-with-slash.sh \
+t/subdir-subsub.sh \
 t/subdir10.sh \
 t/subdir-distclean.sh \
 t/subdirbuiltsources.sh \
-t/subcond.sh \
-t/subcond2.sh \
-t/subcond3.sh \
 t/subobj.sh \
 t/subobj2.sh \
 t/subobj4.sh \
diff --git a/t/silent6.sh b/t/silent6.sh
index f8ad681..c7e7819 100755
--- a/t/silent6.sh
+++ b/t/silent6.sh
@@ -19,17 +19,34 @@
 . ./defs || Exit 1
 
 cat >>configure.ac <<'EOF'
+AC_CONFIG_FILES([sub/Makefile])
 AC_OUTPUT
 EOF
 
-cat > Makefile.am <<'EOF'
-AUTOMAKE_OPTIONS = -Wno-portability-recursive
+# We delegate all the work to the subdir makefile.  This is done
+# to ensure any command-line setting of $(V) gets correctly passed
+# down to recursive make invocations.
+echo SUBDIRS = sub > Makefile.am
 
+mkdir sub
+cat > sub/Makefile.am <<'EOF'
+AUTOMAKE_OPTIONS = -Wno-portability-recursive
 my_verbose = $(my_verbose_$(V))
 my_verbose_ = $(my_verbose_$(AM_DEFAULT_VERBOSITY))
-my_verbose_0 = @echo GEN $@;
+my_verbose_0 = @echo " XGEN    $@";
 
-all-local: foo
+all-local: foo gen-headers
+
+list = 0 1 2
+.PHONY: gen-headers
+gen-headers:
+       @headers=`for i in $(list); do echo sub/$$i.h; done`; \
+       if $(AM_V_P); then set -x; else \
+         echo " GEN     [headers]"; \
+       fi; \
+       rm -f $$headers || exit 1; \
+## Only fake header generation.
+       : generate-header --flags $$headers
 
 foo: foo.in
        $(my_verbose)cp $(srcdir)/foo.in $@
@@ -37,36 +54,48 @@ EXTRA_DIST = foo.in
 CLEANFILES = foo
 EOF
 
-: >foo.in
+: > sub/foo.in
 
 $ACLOCAL
 $AUTOMAKE --add-missing
 $AUTOCONF
 
-./configure --enable-silent-rules
-$MAKE >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep '^ *GEN foo *$' stdout
-grep 'cp ' stdout && Exit 1
+do_check ()
+{
+  case ${1-} in
+    --silent) silent=:;;
+    --verbose) silent=false;;
+    *) fatal_ "do_check(): incorrect usage";;
+  esac
+  shift
+  $MAKE clean
+  $MAKE ${1+"$@"} >output 2>&1 || { cat output; Exit 1; }
+  sed 's/^/  /' output
+  if $silent; then
+    $FGREP 'cp ' output && Exit 1
+    $FGREP 'generate-header' output && Exit 1
+    $FGREP 'rm -f' output && Exit 1
+    grep '[012]\.h' output && Exit 1
+    grep '^ XGEN    foo$' output
+    grep '^ GEN     \[headers\]$' output
+  else
+    $FGREP 'GEN ' output && Exit 1
+    $FGREP 'cp ./foo.in foo' output
+    $FGREP "rm -f sub/0.h sub/1.h sub/2.h" output
+    $FGREP "generate-header --flags sub/0.h sub/1.h sub/2.h" output
+  fi
+}
 
-$MAKE clean
-$MAKE V=1 >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep 'GEN ' stdout && Exit 1
-grep 'cp \.*/foo\.in foo' stdout
+./configure --enable-silent-rules
+do_check --silent
+do_check --verbose V=1
 
 $MAKE distclean
 
 ./configure --disable-silent-rules
-$MAKE >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep 'GEN ' stdout && Exit 1
-grep 'cp \.*/foo\.in foo' stdout
-
-$MAKE clean
-$MAKE V=0 >stdout || { cat stdout; Exit 1; }
-cat stdout
-grep '^ *GEN foo *$' stdout
-grep 'cp ' stdout && Exit 1
+do_check --verbose
+do_check --silent V=0
+
+$MAKE distclean
 
 :
diff --git a/t/subdir3.sh b/t/sourcefile-in-subdir.sh
similarity index 100%
rename from t/subdir3.sh
rename to t/sourcefile-in-subdir.sh
diff --git a/t/srcsub.sh b/t/src-acsubst.sh
similarity index 58%
rename from t/srcsub.sh
rename to t/src-acsubst.sh
index 978a105..97d536c 100755
--- a/t/srcsub.sh
+++ b/t/src-acsubst.sh
@@ -14,20 +14,31 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test to make sure config sub in _SOURCES fails.
+# Test to make sure config substitution in _SOURCES fails.
 
 . ./defs || Exit 1
 
-cat >> configure.ac << 'END'
-AC_PROG_CC
-END
+echo AC_PROG_CC >> configure.ac
 
 cat > Makefile.am << 'END'
-bin_PROGRAMS = x
+bin_PROGRAMS = x y
 x_SOURCES = x.c @FOO@
-EXTRA_x_SOURCES = y.c
+bar = @FOO@
+foo = $(bar)
+EXTRA_y_SOURCES = $(foo) y.c
 END
 
 $ACLOCAL
 AUTOMAKE_fails
-grep 'Makefile.am:2:.*x_SOURCES.*substitution' stderr
+
+cat > exp-err << 'END'
+Makefile.am:2: error: 'x_SOURCES' includes configure substitution '@FOO@';
+Makefile.am:2: configure substitutions are not allowed in _SOURCES variables
+Makefile.am:3: error: 'bar' includes configure substitution '@FOO@'
+Makefile.am:3: and is referred to from 'EXTRA_y_SOURCES';
+Makefile.am:3: configure substitutions are not allowed in _SOURCES variables
+END
+
+diff exp-err stderr
+
+:
diff --git a/t/srcsub2.sh b/t/srcsub2.sh
deleted file mode 100755
index 2d6da97..0000000
--- a/t/srcsub2.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Test to make sure config sub in _SOURCES fails.
-
-. ./defs || Exit 1
-
-cat >> configure.ac << 'END'
-AC_PROG_CC
-END
-
-cat > Makefile.am << 'END'
-bin_PROGRAMS = x
-bar = @FOO@
-foo = $(bar)
-x_SOURCES = x.c $(foo)
-EXTRA_x_SOURCES = y.c
-END
-
-$ACLOCAL
-AUTOMAKE_fails
-grep 'Makefile.am:2:.*bar.*substitution' stderr
-grep 'Makefile.am:2:.*x_SOURCES' stderr
diff --git a/t/subcond3.sh b/t/subdir-ac-subst.sh
similarity index 97%
rename from t/subcond3.sh
rename to t/subdir-ac-subst.sh
index e84aa41..0ef238b 100755
--- a/t/subcond3.sh
+++ b/t/subdir-ac-subst.sh
@@ -16,7 +16,7 @@
 
 # The for conditional SUBDIRS.
 # SUBDIRS + AC_SUBST setup from the manual.
-# Lots of lines here are duplicated in subcond2.test.
+# Lots of lines here are duplicated in subcond-am-cond.test.
 
 . ./defs || Exit 1
 
@@ -88,3 +88,5 @@ $MAKE distcheck
 test -f sanity1
 DISTCHECK_CONFIGURE_FLAGS=want_opt=yes $MAKE distcheck
 test -f sanity2
+
+:
diff --git a/t/subdir5.sh b/t/subdir-add-pr46.sh
similarity index 100%
rename from t/subdir5.sh
rename to t/subdir-add-pr46.sh
diff --git a/t/subdir8.sh b/t/subdir-add2-pr46.sh
similarity index 100%
rename from t/subdir8.sh
rename to t/subdir-add2-pr46.sh
diff --git a/t/subcond2.sh b/t/subdir-am-cond.sh
similarity index 97%
rename from t/subcond2.sh
rename to t/subdir-am-cond.sh
index 0e9f451..7f5e34a 100755
--- a/t/subcond2.sh
+++ b/t/subdir-am-cond.sh
@@ -16,7 +16,7 @@
 
 # The for conditional SUBDIRS.
 # SUBDIRS + AM_CONDITIONAL setup from the manual.
-# Lots of lines here are duplicated in subcond3.test.
+# Lots of lines here are duplicated in subdir-ac-subst.test.
 
 . ./defs || Exit 1
 
@@ -87,3 +87,5 @@ $MAKE distcheck
 test -f sanity1
 DISTCHECK_CONFIGURE_FLAGS=want_opt=yes $MAKE distcheck
 test -f sanity2
+
+:
diff --git a/t/cond2.sh b/t/subdir-cond-err.sh
similarity index 100%
rename from t/cond2.sh
rename to t/subdir-cond-err.sh
diff --git a/t/subcond.sh b/t/subdir-cond-gettext.sh
similarity index 94%
rename from t/subcond.sh
rename to t/subdir-cond-gettext.sh
index c09e5ad..459f639 100755
--- a/t/subcond.sh
+++ b/t/subdir-cond-gettext.sh
@@ -21,9 +21,9 @@ required=gettext
 
 cat >> configure.ac << 'END'
 AM_GNU_GETTEXT
-AM_CONDITIONAL(MAUDE, true)
+AM_CONDITIONAL([MAUDE], [true])
 ALL_LINGUAS=
-AC_SUBST(ALL_LINGUAS)
+AC_SUBST([ALL_LINGUAS])
 END
 
 mkdir po intl
@@ -40,3 +40,5 @@ END
 $ACLOCAL
 # Gettext wants config.guess etc.
 $AUTOMAKE --add-missing
+
+:
diff --git a/t/subdir-order.sh b/t/subdir-order.sh
new file mode 100644
index 0000000..0321c25
--- /dev/null
+++ b/t/subdir-order.sh
@@ -0,0 +1,147 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# The $(SUDBIRS) entries are processed in the order they are specified.
+
+. ./defs || Exit 1
+
+cat >> configure.ac << 'END'
+AC_CONFIG_FILES([
+  sub0/Makefile
+  sub1/Makefile
+  sub2/Makefile
+  sub3/Makefile
+  sub3/a/Makefile
+  sub3/b/Makefile
+])
+AC_OUTPUT
+END
+
+mkdir sub0 sub1 sub2 sub3 sub3/a sub3/b
+
+cat > Makefile.am << 'END'
+SUBDIRS = sub2 sub1 sub3 sub0
+all-local:
+       test -f sub0/run
+       test -f sub1/run
+       test -f sub2/run
+       test -f sub3/run
+       test -f sub3/a/run
+       test -f sub3/b/run
+       test ! -f run
+       : > run
+
+CLEANFILES = \
+  run \
+  sub0/run \
+  sub1/run \
+  sub2/run \
+  sub3/run \
+  sub3/a/run \
+  sub3/b/run
+END
+
+cat > sub0/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test -f $(top_builddir)/sub1/run
+       test -f $(top_builddir)/sub3/run
+       test -f $(top_builddir)/sub3/a/run
+       test -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub1/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub2/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+
+cat > sub2/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test ! -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/Makefile.am << 'END'
+SUBDIRS = b . a
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/a/run
+       test -f $(top_builddir)/sub3/b/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/a/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test -f $(top_builddir)/sub3/b/run
+       test -f $(top_builddir)/sub3/run
+       test ! -f run
+       : > run
+END
+
+cat > sub3/b/Makefile.am << 'END'
+all-local:
+       test ! -f $(top_builddir)/run
+       test ! -f $(top_builddir)/sub0/run
+       test -f $(top_builddir)/sub1/run
+       test ! -f $(top_builddir)/sub3/b/run
+       test ! -f $(top_builddir)/sub3/run
+       test ! -f run
+       : > run
+END
+
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -c --add-missing
+
+./configure
+
+for j in '' -j12; do
+  $MAKE $j
+  test -f run
+  test -f sub0/run
+  test -f sub1/run
+  test -f sub3/run
+  test -f sub3/a/run
+  test -f sub3/b/run
+  $MAKE clean
+  find . | grep 'run$' && Exit 1
+  : # For shells with busted 'set -e'
+done
+
+:
diff --git a/t/subdir2.sh b/t/subdir-subsub.sh
similarity index 91%
rename from t/subdir2.sh
rename to t/subdir-subsub.sh
index 31e3c61..15f2f93 100755
--- a/t/subdir2.sh
+++ b/t/subdir-subsub.sh
@@ -43,10 +43,17 @@ SUBDIRS = two
 END
 
 cat > one/two/Makefile.am << 'END'
-pkgdata_DATA =
+pkgdata_DATA = data.txt
+data.txt:
+       echo dummy >$@
 END
 
 $ACLOCAL
+$AUTOCONF
 $AUTOMAKE --gnu
 
+./configure
+$MAKE
+test -f one/two/data.txt
+
 :
diff --git a/t/subdir9.sh b/t/subdir-with-slash.sh
similarity index 97%
rename from t/subdir9.sh
rename to t/subdir-with-slash.sh
index 116e1c3..eb9f4fe 100755
--- a/t/subdir9.sh
+++ b/t/subdir-with-slash.sh
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test SUDBIRS with /.
+# Test SUDBIRS with '/' in them.
 
 . ./defs || Exit 1
 


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]