This is the source tree for the V environment library for C programs.
Object files are generated under machine-specific subdirectories,
currently /xV/libc/*/m68k and /xV/libc/*/vax.

The buildfiles and buildtemplates are arranged in the following manner:

                          libc
                          - buildfile
			  - buildlibtemplate
			  - buildmitemplate
			  - buildmachtemplate
			     |
     ------------------------------------------------
     |                 |                            |
   m68k               vax                          time
						   - buildfile
   - buildfile        - buildfile                   |
   - buildtemplate    - buildtemplate  ---------------------------
                                       |            |           |
                                      m68k         vax          mi
                                     - buildfile  - buildfile  - buildfile

The buildfile in libc makes everything. The buildfile under libc/m68k
makes all libc/*/m68k subdirectories. The buidlfile under libc/vax
makes all libc/*/vax subdirectories. The buildfiles under libc/*/mi and
libc/* make libc/*/m68k and libc/*/vax subdirectories. The buildfiles
under machine specific subdirectories make that subdirectory only. The
buildfiles under m68k and vax are basically includes of the buildtemplates
under libc/m68k and libc/vax respectively, which again include
libc/buildmachtemplate.  Similarly the buildfile under mi directories as
well as the buildfile under the subject directory (i.e. time) is an include
of the buildmitemplate under libc.  This scheme eases the maintenance
of buildfiles and prevents code duplication.

To make libV.a, cd to libc/m68k or libc/vax and build.

To install, cd to libc/m68k or libc/vax and "build install" and if any of 
the include files have changed "build install-includes"

If you change a buildfile, buildtemplate, or something of that nature,
you should cd to libc (or a lower inclusive subdirectory) and do a
"build".  If you add any files anywhere, you should do a
"build object.list and build".  This modifies the buildfile to include the 
new files you have added and adds their dependencies.

If you are adding a new subdirectory, you should create empty "object.list"
and "dependencies" files under m68k and vax directories before doing the
above. Also remember that to build object.list at least one binary file
should have changed. Otherwise you will get a message saying "object.list 
is up to date" even when object.list is empty. The new subdirectory name 
should be added to buildlibtemplate.

The buildfile in an object subdirectory is built from:
    the libc/m68k/buildtemplate for m68k subdirectories and
    the libc/vax/buildtemplate for vax subdirectories
These buildtemplates include the file libc/buildmachtemplate, which
contains machine independent rules such as how to do an object.list
and such.


This assumes that all machine-dependent source is in the object
directory, as well as machine-independent source in the corresponding
machine-independent source directory of the same name. Otherwise, some
fix up is required.

No source files are checked out by the buildfiles.  They use whatever
files are lying around -- this way, when someone does a build, they
don't clobber your work by checking stuff out.  The buildfiles also use
ALL the files it sees named *.[cs] in the machine directory and *.c in
the mi directory.  If you don't want a file appearing in a library,
either rename it to *.C or create a file in the machine directory with
the same name and an empty function declaration.

