Conventions for Implementation Subdirectories
Conventions for Implementation Subdirectories
Under a projects implementation directory there is a separate subdirectory for
each different platform on which a project will be compiled. A platform is
defined by three characteristics:
-
a binary executable format for a particular type of hardware/OS
-
a system library path configuration
-
a project library selection
One or more machines that have the same values for all of these characteristics
constitute a "platform", with a specific implementation subdirectory.
Based on the three platform characteristics, implementation subdirectories have
a three-part name:
-
hardware/os name, typically that of a vendor, such as SUN4 or HP700;
without any additional suffixing, the standard operating system is assumed,
e.g., Solaris and HP/UX for SUN4 and HP700, respectively; if a non-standard OS
is used, then an appropriate suffix is added, as in SUN4-linux.
-
hostname, hostname abbreviation, or some other suitable mnemonic that
designates a particular system library configuration; e.g., at Cal Poly we use
"G" to designate a cluster of SUN4s named galaxy, phoenix, falcon, and hornet
that are all configured the same librarywise; the hostname abbreviation can be
omitted if there is only a single host of the given hardware type.
-
project library selection, which is one of "production", "beta",
"alpha", "work" or "work-work"; the last of these is for an individual's work
directory, in cases where someone is working on some part of a support library
that needs to be tested in an individual directory before being release to
projects/work; if the project library suffix is omitted from the name, the
project is assumed to build with the highest level project library currently
released
For example, the following is the name for a SUN4 machine, in the galaxy
cluster of like-configured machines, using the work level of project
directories:
The subdirectory name "SUN4", with no suffixes, designates an
implementation subdirectory in which a project is built for a commonly
configured SUN4 platform, with the highest released library level for all
project libraries used in the build.