]> git.ipfire.org Git - thirdparty/automake.git/commit
[ng] subdir-objects: enable unconditionally
authorStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 6 Jun 2012 08:27:46 +0000 (10:27 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 7 Jun 2012 14:27:15 +0000 (16:27 +0200)
commit14fe163aa44992641c0730b0c399aa7d6845e775
treeec65b1e015063d7757d14a35ca736d1b367dedd7
parent63aa4a9f788b17558b9700729acc75c5ab11b435
[ng] subdir-objects: enable unconditionally

The fact that Automake-generated Makefiles places 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 we believe the behaviour enabled by the 'subdir-objects'
is the only natural and most useful one, we make it the only
only one available, simplifying the Automake implementation and
APIs a little in the process.

* NG-NEWS: Update.
* doc/automake-ng.texi (Program and Library Variables): The output
object files are not anymore placed in the current directory by
default, but rather in the same directory of the source file.
(LIBOBJS): Now the $(LIBOBJS) and $(ALLOCA) variables can also be
be used outside of the directory where their sources lie.
(List of Automake options): Don't document the 'subdir-objects'
option anymore.
Other related minor adjustments.
* automake.in (LANG_PROCESS): Remove, it's not needed anymore.
(handle_languages): Don't test whether option 'subdir-objects'
is set (just assume it is), and do not use the '%SUBDIROBJ%'
transform when processing '.am' fragments.
(lang_sub_obj): Delete, it would just return 'LANG_SUBDIR'
unconditionally now.
(lang_c_rewrite): Adjust.  Don't test whether the option
'subdir-objects' is set (just assume it is).
(lang_yacc_rewrite): Likewise.
(lang_lex_rewrite): Likewise.
(handle_single_transform): Likewise.  Remove an obsolete
comment.  Add a proper "FIXME" comments about a fragment
of code that might have become dead code now.
(handle_LIBOBJS_or_ALLOCA): Simplify assuming that the option
'subdir-objects' is always set.  Accordingly, there's no need
to warn anymore if '$(LIBOBJS)' or '$(ALLOCA)' are used outside
the '$config_libobj_dir' directory (as specified by autoconf
macro 'AC_CONFIG_LIBOBJ_DIR').
* lib/am/depend2.am: Assume the '?SUBDIROBJ?' Automake time
conditional is always true, and remove its use accordingly.
lib/am/depend2.am
* t/ax/depcomp.sh: Adjust to the fact that 'subdir-objects' is
always in effect.
* t/ccnoco2.sh: Likewise.
* t/cscope.tap: Likewise.
* t/depcomp8a.sh: Likewise.
* t/depcomp8b.sh: Likewise.
* t/libtool3.sh: Likewise.
* t/pr401.sh: Likewise.
* t/pr401b.sh: Likewise.
* t/pr401c.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/yacc-line.sh: Likewise.
* t/yacc5.sh: Likewise.
* t/parallel-tests-suffix-prog.sh: Likewise.
* t/fort4.sh: Likewise, and extend a bit.
* t/fort5.sh: Likewise.
* t/gcj.sh: Likewise.
* t/subpkg.sh: Likewise.
* t/subpkg-yacc.sh: Likewise.
* t/xsource.sh: Likewise.
* t/libobj20a.sh: Remove as obsolete.
* t/libobj20b.sh: Adjust heading comments.
* t/libobj20c.sh: Likewise.
* t/subdir3.sh: Remove as obsolete.
* t/subobj4.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
30 files changed:
NG-NEWS
automake.in
doc/automake-ng.texi
lib/am/depend2.am
lib/am/lex.am
lib/am/yacc.am
t/ax/depcomp.sh
t/ccnoco2.sh
t/cscope.tap
t/depcomp8a.sh
t/depcomp8b.sh
t/fort4.sh
t/fort5.sh
t/gcj.sh
t/lex-line.sh
t/libobj20a.sh [deleted file]
t/libobj20b.sh
t/libobj20c.sh
t/libtool3.sh
t/parallel-tests-suffix-prog.sh
t/pr401.sh
t/pr401b.sh
t/pr401c.sh
t/subdir3.sh [deleted file]
t/subobj4.sh [deleted file]
t/subpkg-yacc.sh
t/subpkg.sh
t/xsource.sh
t/yacc-line.sh
t/yacc5.sh