next up previous contents
Next: The ``releases/'' directory (depth Up: The ``packages/'' directory (depth Previous: Individual version directories ``V01-00-00/",   Contents


Depth 4 and beyond

At this level, we find the source structure corresponding to (directly descended from the version root of) a particular version of a particular package. Among these entries, we might typically find:

  1. ``GNUmakefile'' (for the complete package) ,
  2. ``ups/'' (directory holding setup and unsetup files).
  3. ``doc/'' (directory for tutorial and other documentary files),
  4. ``man/'' (directory to contain Unix-style man pages),
  5. ``src/'' (directory containing .cc and .f files),
  6. ``include/'' (directory holding .h and .inc files),

Note: Figure 1 does not show all these directories, but they are clearly implied by the accompanying narrative. Also, Figure 1 labels the ``include/'' directory with the package name; however, this name is not a requirement of the structure but one which we recommend. This is because it reflects the including convention adopted in the code: #include pkgname/incname (see section B.3.2).

Recall that binary files are not intended to be located here. However, one could conceive of additional directories here, such as ``test/'' or ``examples/'' or ``tools/'', not necessarily part of all packages.

The guiding principle is that, at this level, the logical structure of a package ought to dictate the directory structure. For reasons to become clear shortly, the ``include/'' directory is required, and must contain all those files that are visible to, and hence may be included by, any other packages or user software.

The Unix-style man pages are put in the ``man/'' area of the directory structure. The UPS project setup file modifies the users MANPATH to include this area.


next up previous contents
Next: The ``releases/'' directory (depth Up: The ``packages/'' directory (depth Previous: Individual version directories ``V01-00-00/",   Contents
Margaret Votava
2001-02-12