Subject: [IMPORTANT] Make the 'subdir-objects' setup the default, and only available one

From: Stefano Lattarini <[email-masked]>
Date: Mon, 07 Jan 2013 21:08:33 +0100

Severity: wishlist

Inspired from Automake-NG commit 'v1.12.1-313-g14fe163' of 2012-06-07,
"[ng] subdir-objects: enable unconditionally".

The fact that Automake-generated Makefiles place compiled object files in
he 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
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.  Here it is a sketch
for it:

  Automake 1.13.2
  ---------------

  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.

  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.

Thoughts, opinions?

Regards,
  Stefano