Table of Contents
The VR Juggler build system makes use of many, many helper scripts. Most are written in Perl, though a few are written in sh(1) because their task is very simple. In this appendix, we present information on how each script fits into the larger picture of the VR Juggler “global” build system.
mtree(1) is a utility for mapping directory hierarchies. It dates back to 4.3BSD-Reno, and development of it has continued in FreeBSD and in NetBSD. mtree.pl is a Perl script written to mimic the behavior of mtree(1) (the version distributed with FreeBSD 3.0) so that Juggler's installation can take advantage of its features on platforms without mtree(1). The two are not completely functionally equivalent at this time, but the basic features needed by VR Juggler are present.
The key aspect of mtree(1) that the Juggler
installation uses is the creation of directory hierarchies from
specification files (named with the extension
.dist). These specifications can be used to
create the full installation tree with all directories guaranteed to
have the same permissions and ownership. The actual specification
files are generated by configure from template
files to allow maximum flexibility. One key file,
VJ.lib.dist, is generated by
configure from scratch (i.e., without a template)
so that it can take advantage of configure's
internal knowledge about the target platform.
mtree(1) provides a wide range of features but unfortunately, not all are implemented in mtree.pl. For example, besides being used to build a hierarchy, it can be used to generate a specification file for an existing hierarchy. For more information about what can be done with this utility, refer to the manual page if mtree(1) is distributed with the operating system. More work on bringing the two closer together in functional equivalence is anticipated.