Appendix A. Helper Scripts

Table of Contents

mtree(1) and mtree.pl
install-dir.pl
install-src.pl
makefiles-gen.pl
InstallOps Perl Module
make-ver.sh
mkmakefile.pl

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) and mtree.pl

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.