InstallDoc.tioga
Mike Spreitzer July 10, 1986 2:03:12 pm PDT
Install
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
Install
Mike Spreitzer
© Copyright 1986 Xerox Corporation. All rights reserved.
Abstract: Install is for loading packages. Given a package name, it executes the load file for the package, if that package is not already loaded.
Created by: Mike Spreitzer
Maintained by: Mike Spreitzer <Spreitzer.pa>
Keywords: Install, Package, Load File, Command File, Command, Load, Implement, Load state
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Commands
name Install
syntax
Install name name ...
description
"Install Foo" means to make sure Foo has been loaded. If package Foo has already been installed, nothing more need be done. A package Foo is considered to be install if either: (1) there is a module named Foo, FooPackage, or FooImpl loaded, or (2) "Install Foo" has suceeded in the past. If not, Install looks for a load file for Foo and executes it. The load file is sought first in the current working directory, then in each directory in the command tool's search path. In each directory, files named either LoadFoo.cm or Foo.Load are considered load files. The most recently created load file in the first directory with any load files is taken. If no load file is found, Install fails.
examples
There is a package Central, which is very popular. It is used by packages Peripheral and Mediocre. Package Peripheral also uses package Mediocre. Package Peripheral, being properly independent, doesn't know or care what stuff package Mediocre uses. They have the following load files:
LoadCentral.cm:
...whatever...
LoadMediocre.cm:
Install Central
...other stuff...
LoadPeripheral.cm:
Install Central Mediocre
...other stuff...
When LoadPeripheral.cm is executed to get package Peripheral going, the use of Install prevents LoadCentral.cm from being executed twice.
2. Installing Install

% cd ///Commands
% Bringover -p [Cedar]<CedarChest6.0>Top>Install.DF