automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.13.1-42-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.13.1-42-g8f06bfb
Date: Thu, 10 Jan 2013 14:32:56 +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=8f06bfba71ee217263a0cff050ac23b698b79807

The branch, maint has been updated
       via  8f06bfba71ee217263a0cff050ac23b698b79807 (commit)
       via  a52e9de01897ff994fcfb49eb019a6c23a4c92e8 (commit)
       via  94d8c69f1c350de94445734de7b5dce7b5673909 (commit)
       via  6b31158c5930ef8ba357e07d28ca56ff6104278e (commit)
      from  8971d23fb05a19fcb75a7b8c4c66cf402b1037a4 (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 8f06bfba71ee217263a0cff050ac23b698b79807
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 9 22:17:53 2013 +0100

    depend2.am: fix comments on verbosity of compilation rules
    
    The situation and decisions described on those comments have become
    quite outdated since the introduction of the silent-rules support.
    Today, the general idea is to have nice, terse output if silent rules
    are enabled, and complete, faithful, very verbose output if they are
    not -- without trying to "massage" this verbose output in a more
    pleasant form if that would cause complication in the affected code.
    
    So it's better to just drop the obsolescent comments.
    
    Note that we don't start simplifying the existing rules according
    to this new philosophy; that will only be done when touching some
    existing code (for the 'depend2.am' code, that will probably happen
    on the master branch).
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit a52e9de01897ff994fcfb49eb019a6c23a4c92e8
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 9 22:01:45 2013 +0100

    depend2.am: improve comments a little
    
    * lib/am/depend2.am: The "fastdep" mode is supported not only for
    gcc 3.x, but for gcc 3.x or later, in particular, for all gcc in
    the 4.x series (at the time of writing, the latest release is 4.72).
    Adjust the comments to match, and re-wrap them while at it.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 94d8c69f1c350de94445734de7b5dce7b5673909
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 9 20:11:31 2013 +0100

    plans: automake 1.14 is to assume "rm -f" with no args is OK
    
    See automake bug#10828.
    
    * PLANS/rm-f-without-args.txt: New.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 6b31158c5930ef8ba357e07d28ca56ff6104278e
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 9 19:57:27 2013 +0100

    plans: we want to active subdir-objects unconditionally in automake 1.14
    
    See automake bug#13378.
    
    * PLANS/subdir-objects.txt: New.
    * t/ccnoco4.sh: Improve heading comments a little.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 PLANS/rm-f-without-args.txt |   40 +++++++++++++++++++++++++
 PLANS/subdir-objects.txt    |   67 +++++++++++++++++++++++++++++++++++++++++++
 lib/am/depend2.am           |   32 ++------------------
 t/ccnoco4.sh                |    9 +++--
 4 files changed, 116 insertions(+), 32 deletions(-)
 create mode 100644 PLANS/rm-f-without-args.txt
 create mode 100644 PLANS/subdir-objects.txt

diff --git a/PLANS/rm-f-without-args.txt b/PLANS/rm-f-without-args.txt
new file mode 100644
index 0000000..5d39e22
--- /dev/null
+++ b/PLANS/rm-f-without-args.txt
@@ -0,0 +1,40 @@
+Summary
+-------
+
+POSIX will say in a future version that calling "rm -f" with no argument
+is OK; and this sensible behaviour seem to be already very widespread in
+"the wild" (and possibly lacking only on those systems that are well on
+their way to obsolescence).
+
+Se we'd like to simplify several automake-generated "cleaning" rules
+accordingly, to get rid of the awful idiom:
+
+  test -z "$(VAR)" || rm -f $(VAR)
+
+See automake bug#10828.
+
+For Automake 1.13.2 (or 1.13.3)
+-------------------------------
+
+Add a temporary "probe check" in AM_INIT_AUTOMAKE that verifies that
+the no-args "rm -f" usage is supported on the system configure is
+being run on; complain loudly (but not with a fatal error) if this is
+not the case, and tell the user to report the situation to us.
+
+For Automake 1.14
+-----------------
+
+Make any failure in the configure-time probe check introduced by the
+previous point fatal; and in case of failure, also suggest to the user
+to install an older version of GNU coreutils to work around the
+limitation of his system (this version should be old enough not to
+be bootstrapped with Automake 1.14, otherwise the user will face a
+bootstrapping catch-22).
+
+In all our recipes, start assuming "rm -f" with no argument is OK;
+simplify and de-uglify the recipes accordingly.
+
+For Automake 1.15
+-----------------
+
+Remove the runtime probe altogether.
diff --git a/PLANS/subdir-objects.txt b/PLANS/subdir-objects.txt
new file mode 100644
index 0000000..e3aec6b
--- /dev/null
+++ b/PLANS/subdir-objects.txt
@@ -0,0 +1,67 @@
+Summary
+-------
+
+We want to make the behaviour currently enabled by the 'subdir-objects'
+the default one, and in fact the *only* one, in Automake 1.14.
+See automake bug#13378: <http://debbugs.gnu.org/13351>.
+
+Details
+-------
+
+The fact that Automake-generated Makefiles place compiled object files in
+the current directory by default, also when the corresponding source file
+is in a subdirectory, is basically an historical accident, due to the fact
+that the 'subdir-objects' option had only been introduced in April 1999,
+starting with commit 'user-dep-gen-branchpoint-56-g88b5959', and never
+made the default (likely to avoid backwards-compatibility issues).
+
+Since I believe the behaviour enabled by the 'subdir-objects' is the most
+useful one, and in fact the *only* natural one, I'd like to make it the
+only one available, simplifying the Automake implementation and APIs a
+little in the process.
+
+Alas, since this also means changing the default behaviour of Automake
+('subdir-objects' is not enabled by default, sadly), this means the
+transition path will be less smooth than I'd like.
+
+For automake 1.13.2 (ASAP)
+--------------------------
+
+Fix the bug spotted by Nick Bowler:
+
+  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
+  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
+
+and exposed in test case 't/ccnoco4.sh': currently, Automake-generated
+C compilation rules mistakenly pass the "-c -o" options combination
+unconditionally (even to losing compiler) when the 'subdir-objects' is
+used but sources are only present in the top-level directory.
+
+For automake 1.13.2 (with more ease)
+------------------------------------
+
+Give a warning in the category 'unsupported' if the 'subdir-objects'
+option is not specified.  This should give the users enough forewarning
+about the planned change, and give them time to update their packages
+to the new semantic.
+
+This warning, when there are C sources in subdirs, should also mention the
+need to use AM_PROG_CC_C_O in configure.ac (thanks to Peter Breitenlohner
+for suggesting this).  This is not strictly required, but will make
+things a little simpler for the users, by giving a more complete feedback:
+<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#29>
+
+Be sure to avoid the warning when it would be irrelevant, i.e., if all
+source files sit in "current" directory (thanks to Peter Johansson for
+suggesting this).
+
+For automake 1.14
+-----------------
+
+Flip the 'subdir-object' option on by default.  At the same time,
+drop support for the "old" behaviour of having object files derived
+from sources in a subdirectory being placed in the current directory
+rather than in that same subdirectory.
+
+Still keep the 'subdir-object' option supported (as a simple no-op
+now), to save useless churn in our user's build systems.
diff --git a/lib/am/depend2.am b/lib/am/depend2.am
index 80d4185..5c6439a 100644
--- a/lib/am/depend2.am
+++ b/lib/am/depend2.am
@@ -27,34 +27,10 @@
 ##   the "if AMDEP" chunk is prefix with @AMDEP_TRUE@ just like for any
 ##   other configure-time conditional.
 ##
-## We do likewise for %FASTDEP%; this expands to an ordinary
-## configure-time conditional.  %FASTDEP% is used to speed up the
-## common case of building a package with gcc 3.x.  In this case we
-## can skip the use of depcomp and easily inline the dependency
-## tracking.
-
-## Verbosity of FASTDEP rules
-## --------------------------
-## (1) Some people want to see what happens during make.  They think
-##     @-commands are evil because hiding things hinders debugging.
-## (2) Other people want to see only the important commands--those that
-##     may produce diagnostics, such as compiler invocations.  They
-##     do not care about build details such as dependency generation
-##     (the if/then/else machinery in FASTDEP rules).  Their point is
-##     that it is hard to spot diagnostics in a verbose output.
-## (3) Other people want "make -s" to work as expected: silently.
-##     This way they can spot any diagnostic really easily.
-##
-## The second point suggests we hide rules with @ and that we 'echo'
-## only the relevant parts.  However this goes against the two others.
-## There are regular complaints about this on the mailing list, but
-## it's hard to please everybody.  On April 2003, William Fulton (from
-## clan (3)) and Karl Berry (from clan (2)) agreed that folding the
-## compile rules so that they are output on a single line (instead of 5)
-## would be a good compromise.  Actually we use two lines rather than one,
-## because this way %SOURCE% is always located at the end of the first
-## line and is therefore easier to spot.  (We need an extra line when
-## depbase is used.)
+## We do likewise for %FASTDEP%; this expands to an ordinary configure-time
+## conditional.  %FASTDEP% is used to speed up the common case of building
+## a package with gcc 3.x or later.  In this case we can skip the use of
+## depcomp and easily inline the dependency tracking.
 
 if %?NONLIBTOOL%
 ?GENERIC?%EXT%.o:
diff --git a/t/ccnoco4.sh b/t/ccnoco4.sh
index 54b857a..73dce9f 100755
--- a/t/ccnoco4.sh
+++ b/t/ccnoco4.sh
@@ -14,10 +14,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check that Automake doesn't pass "-c -o" to  losing compiler when
-# the 'subdir-objects' is used but sources are only present in the
-# top-level directory.  Reported by Nick Bowler in the discussion on
-# automake bug#13378:
+# Check that Automake-generated C compilation rules don't mistakenly
+# use the "-c -o" options combination unconditionally (even with losing
+# compilers) when the 'subdir-objects' is used but sources are only
+# present in the top-level directory.  Reported by Nick Bowler in the
+# discussion on automake bug#13378:
 # <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
 # <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
 


hooks/post-receive
-- 
GNU Automake



reply via email to

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