[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.13.1-42-g8f06bfb,
Stefano Lattarini <=