Up: Principles of Operation



3.1 Directory

The main idea for the directory tree is, that all generated output is placed somewhere below temporary or distribution. generated here means to be the output of a compile, a cp from another file, the result of an sed or awk script, the result of makeinfo or texi2dvi or whatever. All files, which can be reproduced automatically, or which are produced as a side effect of some actions should go into temporary or distribution.

distribution is used for results, which will be used later, when your package will be used. temporary is for interim results, which are use during the build process only.

This is not true for some exception:

capital files
These are the files AUTHORS, COPYING, COPYING.DOC, INSTALL, INTRODUCTION, NEWS, README and TODO. These files are generated out of Texinfo files. But they are important to understand a package after it is downloaded, and so are placed in the projects root dir as well as they are registered in CVS.
CVS
siliconBrain projects are handled by cvs. And so there has to be a CVS directory.
RELEASE
This file is sometimes updated automatically. But the major release numbers are edited manually.
TAGS
This is the emacs tag file. It should be placed in the current dir.
*~
Emacs backup files are placed near the source.
*.log
Some log files go the the current dir. We should avoid that, but it was not always possible.

As a consequence make clean does the following:

     export siliconBrainTemporary     := distribution\|temporary\|.*\.log$$\|TAGS\|.*~$$
     ...
     -rm --force --recursive $$(ls | grep $$siliconBrainTemporary)

$siliconBrainTemporary is also used by other scripts, which want to exclude temporary files, like webify or publish.