Table of Contents
RPSL parameter file
There is one RPSL user-edited ascii file in the autotools tree associated
with the build scripts: rpslParams.
rpslParams contains the dependency information that is used to generate
a pkg-config call in the configure.ac file and the "Requires:" line in the
pkg-config pc file. In other words:
1) For compiling the current library or executable, a configure call to a
pkg-config macro will check for the availability of the correct version of
each of the required libraries somewhere in the pkg-config search path and
use the corresponding pc file information to include and link it.
2) For compiling libraries or executables that depend directly on the current
library as specified by their rpslParams file, configure and pkg-config
will look at the "Requires:" line of the current library's pc file and search
for and include and link those dependencies as well.
Note that the macros will only test the first instance of an installed library.
If it fails the version test, others with the same name will not be checked.
See Library naming and versioning for information on how to manage two versions
of the same library. Basically, it can be done by uninstalling and installing,
and/or taking advantage of the pkg-config search path to override a higher
level install.
In any case, the rpslParams file format consists of lines of the form:
libspec relation param
Where libspec is the library name root or the current library version
type, relation is the required relation of the linked library version to
the specified version (always = for the current version specs), and param
is the specified version, like so:
mylib >= 0.0.0
This requires a library named mylib with a version greater or equal to
0.0.0. The library is found by pkgconfig by matching the library name to
the pc file root name.
In addition to the dependency specifications, the file format supports three
special lines. The first is the name of the target. Recall that RPSL supports
exactly one target, either a library or executable. The target is specified by
name = targetname
The file must contain exactly one line with the current release version of the
library or executable. The file also contains exactly one line with the current
shared version of the library. This third type of line must always be present
for a library but is ignored, if present, for an executable.
The formats for release and shared versions are:
releasemajor.releaseminor.releasemicro
sharedmajor:sharedminor:sharedmicro
And if for an executable, the format is:
releasemajor.releaseminor.releasemicro
Where the release and shared version triplets are described in:
Library naming and versioning.
So for example, an rpslParams file for a library might be:
name = foo <-- target name
release = 0.0.0 <-- release version
shared = 0:1:0 <-- shared version
bar >= 0.0.0 <-- dependency (zero or more of these lines)
top
Table of Contents
William Snyder
Last modified: Sun Aug 28 22:21:28 EDT 2005