Source trees

From dankwiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

Generated files

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