Rules for source trees, collected over the years.
- Honor the standard targets of the FSF coding standards:
- all compiles all installable object files, and usually not documentation
- install publishes object files. uninstall removes them. neither ought write within the tree.
- dist rolls up a distributable.
Rule: make clean in a pristine source tree ought be idempotent
- Never remove controlled files as part of a make clean
- Never build files as part of a make clean
- svn status --no-ignore ought generate the same output across multiple clean runs
Rule: make all in a pristine source tree oughtn't change files in source control
- Don't keep generated files in source control
- It ought be possible to write a make clean which operates entirely based off "ignore" properties
Rule: make all oughtn't generate files unknown to source control
- Use source control systems' "ignore" capabilities
- svn status oughtn't generate output following a make all