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