next up previous contents index
Next: Installing CERNLIB without Up: Installing CERNLIB software Previous: Installing CERNLIB software

Installing CERNLIB when asis is available

In the following examples, the CERNLIB tree is available via AFS. The procedure is identical for the case when the CERNLIB tree is mounted via NFS  .

Accessing the CERNLIB tree via AFS 

\footnotesize{

zfatal:/hepdb/cdchorus (185) ls -l /cern
total 0
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 93c -> /afs/cern.ch/asis/cern/93c
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 93d -> /afs/cern.ch/asis/cern/93d
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 94a -> /afs/cern.ch/asis/cern/94a
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 WWW -> /afs/cern.ch/asis/cern/WWW
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 cmz -> /afs/cern.ch/asis/cern/cmz
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 mad -> /afs/cern.ch/asis/cern/mad
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 man -> /afs/cern.ch/asis/cern/man
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 new -> /afs/cern.ch/asis/cern/new
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 old -> /afs/cern.ch/asis/cern/old
lrwxrwxrwx   1 root     system        29 Dec  7 21:02 patchy -> /afs/cern.ch/asis/cern/patchy
lrwxrwxrwx   1 root     system        28 Dec  7 21:02 phigs -> /afs/cern.ch/asis/cern/phigs
lrwxrwxrwx   1 root     system        26 Dec  7 21:02 pro -> /afs/cern.ch/asis/cern/pro
lrwxrwxrwx   1 root     system        28 Dec  7 21:02 share -> /afs/cern.ch/asis/cern/share

}

Let us assume that we wish to reinstall the CERNLIB software in the /cernlib/cern tree. We first create these directories, and then a subdirectory for the version that we wish to install. We procede as follows:

Setting up the directory tree

mkdir /cernlib/cern
mkdir /cernlib/cern/93d
mkdir /cernlib/cern/93d/bin
mkdir /cernlib/cern/93d/lib
mkdir /cernlib/cern/93d/log
mkdir /cernlib/cern/93d/src
mkdir /cernlib/cern/93d/doc

We now set up a number of links.

Creating links into the AFS  tree

cd /cernlib/cern/93d
ln -s /cern/93d/include include
ln -s /cern/93d/mgr mgr
cd src
ln -s /cern/93d/src/car car
ln -s /cern/93d/src/cmz cmz
ln -s car cra

In fact, only the links for the car and cra directories are required for what follows.

car
The CERNLIB source files in PATCHY card format. This directory also contains the PATCHY cradles (*.cra) used to extract the code.
cmz
The CERNLIB source files in CMZ binary format.
cra
A link to the cra directory.
doc
Documentation on various Monte Carlo generators.
include
include files used when the CERNLIB code is called from C.

We now add the following commands to our profile.

Tailoring the .profile of the cernlib account

PATH=/cern/pro/bin:$PATH; export PATH

export CERN=/cernlib/cern
export CERN_LEVEL=93d
export PLISTA=DEV
. $CERN/$CERN_LEVEL/mgr/plienv.sh

We then reexecute the .profile and switch to the CERN manager directory.

Preparing to build the CERN software

. .profile

cd $CERN/$CERN_LEVEL/mgr

We can now build the complete CERN software by typing make all.  

Building the CERN software

   make -n all

   ...

	makepack -p kerngen
	makepack -s -c kerngen

   ...

	makepack -s -c kernasw
	makepack -l kernlib
	makepack -p cspack
	makepack -s cspack
	makepack -l packlib -c cspack

   ...

	makepack -p isajetd
	rm -r /cernlib/cern/93d/src/cfs/isajetd
	makepack -p pdflibd
	rm -r /cernlib/cern/93d/src/cfs/pdflibd

Various components can be built using the syntax make target. Thus, to build the PAW modules one would type make paw. As the standard Unix make is employed, all the dependancies are known and intermediate components only rebuilt if required.

The following extract from the makefile indicates which components can be rebuilt separately or together.

Extract from cernlib makefile

# **********************************************************************
# Make definitions                                                     *
# **********************************************************************
# ======================================================================
# >>> General makes
# ======================================================================
# all:        cernset products
  all:        cernset
  cernset:    cernlibs cernpgm userpgm mclibs mcdoc
 
  cernlibs:   kernlib packlib mathlib graflibs pawlib phtools
  cernpgm:    dzedit fatset kuipset paw rzconv flop tree telnetg    \\ 
              zftp pawserv zserv higzconv f2h hepdbset umlog
  userpgm:    garfield poisson
  mclibs:     ariadne cojets eurodec fritiof herwig isajet        \\ 
              jetset lepto pdflib photos
  mcdoc:      cojetsd eurodecd fritiofd herwigd isajetd jetsetd   \\ 
              pdflibd photosd pythiad
  shrlibs:    scernlib smathlib sgraflib sgeant
 
  products:   cmz gks historian nag
# ======================================================================
# >>> Basic Libraries
# ======================================================================
  kernlib:    kernlib.a
  packlib:    packlib.a
  mathlib:    mathlib.a
  phtools:    phtools.a

  graflibs:   graflib grafX11 grafGKS
  graflib:    graflib.a
  grafX11:    grafX11.a
  grafGKS:    grafGKS.a
  grafDGKS:   grafDGKS.a
  grafGL:     grafGL.a
  grafGPR:    grafGPR.a
  pawlib:     pawlib.a

  scernlib:   scernlib.a
  smathlib:   smathlib.a
  sgraflib:   sgraflib.a

  kernlib.a:  $(LIB)/libkernlib.a
  packlib.a:  $(LIB)/libpacklib.a
  mathlib.a:  $(LIB)/libmathlib.a
  phtools.a:  $(LIB)/libphtools.a

  graflib.a:  $(LIB)/libgraflib.a
  grafX11.a:  $(LIB)/libgrafX11.a
  grafGKS.a:  $(LIB)/libgrafGKS.a
  grafDGKS.a: $(LIB)/libgrafDGKS.a
  grafGL.a:   $(LIB)/libgrafGL.a
  grafGPR.a:  $(LIB)/libgrafGPR.a
  pawlib.a:   $(LIB)/libpawlib.a

  scernlib.a: $(LIB)/scernlib.a
  smathlib.a: $(LIB)/smathlib.a
  sgraflib.a: $(LIB)/sgraflib.a



next up previous contents index
Next: Installing CERNLIB without Up: Installing CERNLIB software Previous: Installing CERNLIB software


Janne Saarela
Wed Mar 29 15:50:22 METDST 1995