| Summary | |
| ------- | |
| We want to make the behaviour currently enabled by the 'subdir-objects' | |
| the default one, and in fact the *only* one, in Automake 2.0. | |
| 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. | |
| DONE for automake 1.13.2 | |
| ------------------------ | |
| 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' has been fixed (see commit | |
| v1.13.1-56-g34001a9). The bug was due to the fact that Automake-generated | |
| C compilation rules mistakenly passed the "-c -o" options combination | |
| unconditionally (even to losing compiler) when the 'subdir-objects' was | |
| used but sources were only present in the top-level directory. | |
| TODO for automake 1.14 | |
| ---------------------- | |
| 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. | |
| 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 2.0 | |
| ---------------- | |
| Remove the copy & paste of Autoconf internals in our AC_PROG_CC rewrite | |
| See the first patch in the series: | |
| <http://lists.gnu.org/archive/html/automake-patches/2013-01/msg00102.html> | |
| Make the behaviour once activated by the 'subdir-object' option mandatory. | |
| With that change, we'll 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. |