Recursive Make Considered Harmful

Registered by Torsten Eichstädt

Proposal for inclusion in a common guideline for the software build process in Ubuntu and derivatives.

Get rid of many hidden bugs. Enhance software maintainability. Let's rewrite all makefiles of the whole distro!
Summary of "Recursive Make Considered Harmful" http://aegis.sourceforge.net/auug97.pdf :
  The author argues to switch from a recursive build process to a plain master makefile that _includes_ sub-projects makefiles, rather than to call 'make' recursive in sub-directories. He clearly proves that
 * many bugs are caused or hidden by the common (wrong) practice of using recursive makefiles.
 * software module dependencies are commonly tweaked, artificially left out, or falsely introduced, to fix
    what essentially comes from using 'make' recursively. The result is _wrong_ software.
 * Using flat makefiles enhances maintainability, because dependencies will be correct.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
Declined for hoary
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

2008-04-03 kamion: There is absolutely no way that this can be done for 8.04. In fact, we cannot possibly do this just in Ubuntu; it would have to be coordinated with every single upstream project. I'd also note that in eight years of working in Debian and Ubuntu, I don't recall ever coming across an instance of an actual, real package misbuild due to the use of recursive make. (It's not uncommon for a package to fail to build while a developer is working on it for that kind of reason, but that's different from a misbuild that ends up in the archive.) I don't object to people furthering this crusade among upstream projects, obviously - but a distribution just isn't the right place to start.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.