Table of Contents
RPSL individual developer setup
Setting up an individual developer for a project involves 1) setting up the
developer sandbox, and 2) setting the developer's environment variables.
Choose an empty directory location and set up a developer sandbox tree:
% cd developer_location
% tar xvf $RPSL_HOME/usr/share/utl/rpslSandbox.tar
Put an ascii file in your home directory called .rpslauthor with your name and
the class skeleton writer rpslNewClass will use this to stamp the author:
% cd ~
% echo "First M. Last" > ~/.rpslauthor
Set three environment variables that define the three-level sandbox heirarchy
supported by RPSL. Recall that an RPSL sandbox contains source modules that
are checked out from the project and put under a local build directory, new
modules not yet put in the project repository, and a local usr target tree for
installing targets locally for testing (linking or executing).
You could put the following statements in a startup rc file. For the c-shell
the root location variable is as follows:
setenv RPSL_HOME <install_location>
At any one time, for a particular user, the project and developer variables
each point to one place, but generally there would be more than one project
and more than one user sandbox for each user. Therefore, for switching among
these, point the environment variables for the project and user sandboxes to
symbolic links and then set up the links to point to actual sandbox
directories.
For example:
% ln -s project_location ~/rpsl_proj
% ln -s developer_location ~/rpsl_user
Then in the startup rc file
setenv RPSL_PROJ <~/rpsl_proj>
setenv RPSL_USER <~/rpsl_user>
RPSL_HOME must be set because that's where the scripts and utility files are.
RPSL_PROJ is optional - RPSL will work without a project level. Finally,
RPSL_USER must be set simply because there needs to be a place to develop
and build.
Next, add the target locations to your LD_LIBRARY_PATH variable for shared object
files. The order is critical here - local level first, global last, because
a local install of a library should be the one that's linked and tested during
development and modifications.
setenv LD_LIBRARY_PATH $RPSL_USER'/usr/local/lib:\
'$RPSL_PROJ'/usr/local/lib:'$RPSL_HOME'/usr/local/lib:...'
Then set the PKG_CONFIG_PATH so that pkg-config can find the pc files. Order is
critical here too - the local install should be the one seen first when
testing the latest version of a library under development.
setenv PKG_CONFIG_PATH $RPSL_USER'/usr/local/lib/pkgconfig:\
'$RPSL_PROJ'/usr/local/lib/pkgconfig:'$RPSL_HOME'/usr/local/lib/pkgconfig'
Finally, put the usr/bin and usr/local/bin directories in each of the three
sandboxes in the executable search path. For the example only $RPSL_HOME/usr/bin
and $RPSL_USER/usr/local/bin are used.
if ( ! $?USER_PATH_SET ) then
set path = ( \
...
$RPSL_USER/usr/bin \
$RPSL_USER/usr/local/bin \
$RPSL_PROJ/usr/bin \
$RPSL_PROJ/usr/local/bin \
$RPSL_HOME/usr/bin \
$RPSL_HOME/usr/local/bin \
$path )
setenv USER_PATH_SET 1
endif
That's It!
--------------------------------------------------------------------------
For reference, here are the places ${RPSL_HOME} ${RPSL_PROJ} and ${RPSL_USER}
are used:
1. They are set in the shell rc script.
2. They specify the link path for dynamic libraries in the shell rc script
3. They specify the pkgconfig search path for pc files in the shell rc script
4. They specify the executable search path in the shell rc script
5. RPSL_HOME specifies the search path for m4 macro files in the bootstrap
script
aclocal -I config -I ${RPSL_HOME}/usr/share/aclocal
6. RPSL copies certain skeleton files from RPSL_USER, RPSL_PROJ or RPSL_HOME
that are searched in that order - see the script rpslNewClass, for example.
top
Table of Contents
William Snyder
Last modified: Mon Nov 21 22:58:20 EST 2005