Recursive Make Considered Harmful
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://
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
- Started by
- Completed by
Related branches
Related bugs
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.