diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-06-06 10:27:46 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-05-15 15:52:30 +0200 |
commit | 020fb48db730a5661fa8fa38229b439d79fd5217 (patch) | |
tree | 1920dea1d85141189e61d825fd395ab49c3b4e1a /t/subobj4.sh | |
parent | 83609bfeee6b69ac4d1257bfdafd4f9e04a4d5e3 (diff) | |
download | automake-020fb48db730a5661fa8fa38229b439d79fd5217.tar.gz |
subdir-objects: enable unconditionally
See automake bug#13378.
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.
This change is basically an adjusted backport of Automake-NG commit
'v1.12.1-313-g14fe163' of 2012-06-07, "[ng] subdir-objects: enable
unconditionally".
* NEWS: Update.
* doc/automake.texi (Program and Library Variables): The output
object files are no longer 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 used outside of the directory where their sources lie.
(List of Automake options): Report the 'subdir-objects' option
as a no-op, existing only for compatibility with older versions
of Automake.
Other related minor adjustments.
* bin/automake.in (LANG_PROCESS): Remove, it's no longer needed.
(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_lex_rewrite): Adjust. Don't test whether the option
'subdir-objects' is set (just assume it is).
(lang_yacc_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 uses accordingly.
* t/compile_f_c_cxx.sh: Adjust.
* t/cscope.tap: Likewise.
* t/depcomp8a.sh: Likewise.
* t/depcomp8b.sh: Likewise.
* t/libtool3.sh: Likewise.
* t/ltlibsrc.sh: Likewise.
* t/pr401.sh: Likewise.
* t/pr401b.sh: Likewise.
* t/pr401c.sh: Likewise.
* t/subobj.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/yacc-line.sh: Likewise.
* t/yacc5.sh: Likewise.
* t/vala-libs.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/subobj4.sh: Remove as obsolete.
* t/sourcefile-in-subdir.sh: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/subobj4.sh')
-rwxr-xr-x | t/subobj4.sh | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/t/subobj4.sh b/t/subobj4.sh deleted file mode 100755 index dbbed30be..000000000 --- a/t/subobj4.sh +++ /dev/null @@ -1,50 +0,0 @@ -#! /bin/sh -# Copyright (C) 2001-2013 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/>. - -# Make sure '../foo/foo.cpp' generates a rule. -# Report from Dave Brolley. - -. test-init.sh - -cat >> configure.ac << 'END' -AC_PROG_CC -AC_PROG_CXX -AC_CONFIG_FILES([d1/Makefile d2/Makefile]) -AC_OUTPUT -END - -mkdir d1 d2 - -cat > Makefile.am << 'END' -SUBDIRS = d1 d2 -END - -cat > d1/Makefile.am << 'END' -bin_PROGRAMS = z -z_SOURCES = ../d2/z.c -END - -cat > d2/Makefile.am << 'END' -END - -: > d2/z.c - -$ACLOCAL -$AUTOMAKE -Wno-unsupported - -grep '\$(CC) .*\.\./d2/z\.c' d1/Makefile.in - -: |