 prompt the installer for the relocatable base directory, or a checkinstall script to determine the path name from file system data. For more information on request scripts, see "Writing a request Script" and for information on checkinstall scripts, see "How to Gather File System Data".
Individually relocatable objects are difficult to manage and should be avoided. This is because they could result in widely scattered package components that may be difficult to isolate when installing multiple versions or architectures of the package. Try to use collectively relocatable objects whenever possible.
A parametric path name is a path name that includes a variable specification. For example, /opt/$PKGINST/filename is a parametric path name because of the $PKGINST variable specification. A default value for the variable specification must be defined in the pkginfo file. The value may then be changed by a request or checkinstall script.
A variable specification in a path must begin or end the path name, or be bounded by slashes (/). For example, valid parametric path names look like:
$PARAM/tests tests/$PARAM/generic /tests/$PARAM
The variable specification, once defined, may cause the path to be evaluated as absolute or relocatable. For example, given this entry in a prototype file:
f none $DIRLOC/tests/generic
and this entry in the pkginfo file:
the path name, $DIRLOC/tests/generic, will evaluate to the absolute path name /myopt/tests/generic, regardless of whether the
BASEDIR parameter is set in the pkginfo file.
However, if the pkginfo file contains these entries
then the path name, $DIRLOC/tests/generic, will evaluate to the relocatable path name /opt/firstcut/tests/generic.
For more information on parametric path names, see "Using Parametric Base Directories".
The path name field in the prototype file defines where the object will be located on the target system. However, if you did not organize your package's objects on your system in a directory structure that mimics their location on the target system (see "Organizing a Package's Contents", then you also need to specify their present location in the prototype file.
If your development area is not structured in the same way that you want your package structured, you can use the path1=path2 format in the path field, where path1 is the location it should have on the target system, and path2 is the location it has on your system.
You can also use the path1=path2 path name format with path1 as a relocatable object name and path2 a full path name to that object on your system.
path1 may not contain undefined build variables, but may contain undefined install variables. path2 may not contain any undefined variables, although both build and install variables may be used. For information on the difference between install and build variables, see "Package Environment Variables".
Links must use the path1= path2 format since they are created by the pkgadd command. As a general rule, path2 of a link should never be absolute, but should instead be relative to the directory portion of path1.
An option to using the path1=path2 format is to use the !search command. For more information, see "Providing a Search Path for the pkgmk Command".