subdir-objects.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. Summary
  2. -------
  3. We want to make the behaviour currently enabled by the 'subdir-objects'
  4. the default one, and in fact the *only* one, in Automake 2.0.
  5. See automake bug#13378: <http://debbugs.gnu.org/13378>.
  6. Sadly, **THIS IS IMPOSSIBLE** until automake bug#13928 is resolved:
  7. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
  8. Details
  9. -------
  10. The fact that Automake-generated Makefiles place compiled object files in
  11. the current directory by default, also when the corresponding source file
  12. is in a subdirectory, is basically an historical accident, due to the fact
  13. that the 'subdir-objects' option had only been introduced in April 1999,
  14. starting with commit 'user-dep-gen-branchpoint-56-g88b5959', and never
  15. made the default (likely to avoid backwards-compatibility issues).
  16. Since I believe the behaviour enabled by the 'subdir-objects' is the most
  17. useful one, and in fact the *only* natural one, I'd like to make it the
  18. only one available, simplifying the Automake implementation and APIs a
  19. little in the process.
  20. Alas, since this also means changing the default behaviour of Automake
  21. ('subdir-objects' is not enabled by default, sadly), this means the
  22. transition path will be less smooth than I'd like.
  23. DONE for automake 1.13.2
  24. ------------------------
  25. The bug spotted by Nick Bowler:
  26. <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
  27. <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
  28. and exposed in test case 't/ccnoco4.sh' has been fixed (see commit
  29. v1.13.1-56-g34001a9). The bug was due to the fact that Automake-generated
  30. C compilation rules mistakenly passed the "-c -o" options combination
  31. unconditionally (even to losing compiler) when the 'subdir-objects' was
  32. used but sources were only present in the top-level directory.
  33. DONE for automake 1.14
  34. ----------------------
  35. We give a warning in the category 'unsupported' if the 'subdir-objects'
  36. option is not specified. This should give the users enough forewarning
  37. about the planned change, and give them time to update their packages
  38. to the new semantic.
  39. We also make sure to avoid the warning when it would be irrelevant, i.e.,
  40. if all source files sit in "current" directory (thanks to Peter Johansson
  41. for suggesting this).
  42. For some automake 1.x (*before* 2.0 can be released)
  43. ----------------------------------------------------
  44. Find a proper way to fix the blocking automake bug#13928:
  45. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
  46. For automake 2.0
  47. ----------------
  48. Make the behaviour once activated by the 'subdir-object' option mandatory.
  49. With that change, we'll drop support for the "old" behaviour of having
  50. object files derived from sources in a subdirectory being placed in the
  51. current directory rather than in that same subdirectory.
  52. Still keep the 'subdir-objects' option supported (as a simple no-op
  53. now), to save useless churn in our user's build systems.