Man Linux: Main Page and Category List


       cernlib - print CERN library dependencies


       cernlib [options] libraries


       cernlib  is a tool to list the compiler and linker options necessary to
       compile a CERNLIB program that has the given library dependencies.   It
       is  generally  used  within a command substitution, as in the following

       gfortran -o myprogram myprogram.F `cernlib -G Motif pawlib`

       This version of cernlib has been completely rewritten from the original
       script  provided  by  CERN.   It  now does recursive library dependency
       checking and removes duplicate entries.

       Note that  by  default,  the  cernlib  script  assumes  that  the  CERN
       libraries  are  to  be  linked  against  statically; if the environment
       variables $CERN or $CERN_ROOT are specified, it looks for the libraries
       only  in  the  "lib"  subdirectory  of those locations, not any "shlib"
       subdirectory.  Furthermore, the script brackets the CERN libraries with
       linker  instructions  to link statically.  This is done to preserve the
       original upstream behavior, in which all CERNLIB libraries  exist  only
       in static form.  For instance, "cernlib packlib" outputs:

       -Wl,-static -lpacklib -lkernlib -Wl,-dy -lm -lnsl -lcrypt -ldl -lg2c

       If  you  want  to link against ALL libraries (including CERNLIB) either
       statically or dynamically, call the cernlib script with its -safe  flag
       to  omit  these  bracketing linker flags.  That is: if you want to link
       against all libraries (not just CERNLIB) statically,  use  the  -static
       compiler flag and call cernlib with its -safe flag:

       gfortran  -o  myprogram  myprogram.F  -static  `cernlib  -safe -G Motif

       and if you want to link  against  all  libraries  (including  the  CERN
       libraries)  dynamically,  use  the  same  command  without  the -static
       compiler flag (the linker assumes dynamic linking by default):

       gfortran -o myprogram myprogram.F `cernlib -safe -G Motif pawlib`


       -a arch
              Specify a system architecture, e.g. Linux (default), AIX, HP-UX,

       -dy    Equivalent to -safe; for backwards compatibility.

       -G driver
              Specify  a  graphics driver.  The available options on Linux are
              X11 and Motif (the latter option will also work when the Lesstif
              library is present).

       -P, -s Ignored; for backwards compatibility.

       -safe  Do  not  make  any  assumptions about whether the CERN libraries
              should  be  linked  against  dynamically  or  statically.   (The
              default  behavior,  if  this  flag  is not used, is to link them

       -u     Do not include architecture-specific libraries in the output.

       -v version
              Specify version of $CERN_LEVEL.  This is meaningless unless  you
              have installed an upstream version of CERNLIB (i.e. not packaged
              by           Debian);           see           the           file

       -?, --help
              Show a summary of options.

       --     Tell  cernlib that this marks the end of cernlib-specific flags,
              and all following arguments are to be parsed as described in the
              LIBRARIES  section  below.   If  -- is not given, the first word
              parsed as a library name will be the  first  word  not  starting
              with a hyphen "-" that is not an argument to a preceding cernlib


       The following library names are  recognized  by  this  version  of  the
       cernlib  script.   These  names  may  be used exactly as shown here, or
       prefixed by "-l".

       Core CERN libraries
              mathlib, packlib, kernlib

       Graphics and PAW libraries
              graflib, pawlib

       Monte Carlo and GEANT libraries
              cojets,  eurodec,  geant321,  herwig59,  isajet758,   pdflib804,
              photos202, phtools

       Additional Monte Carlo libraries
              (to                obtain               these,               see
              ariadne, ariadne-p5, fritiof, jetset, lepto, pythia5, pythia6

              The numerals at the end may be left  off  most  of  the  library
              names above.

       Other library names
              Various  other names are recognized for backwards compatibility,
              internal use, and non-Linux  architectures.   For  the  complete
              list, please see the cernlib script.

       Other  Any names not recognized by cernlib that start with "-l" or with
              any  character  other  than  a  hyphen  ("-")  are   output   as
              -l${name#-l}  (i.e.,  are  assumed  to  be  a  library).   Names
              starting with a hyphen for which the second character is not "l"
              are  assumed  to  be  compiler  flags,  and  are  output  at the
              beginning of the line before all other output.


       /usr/share/doc/cernlib-base/README.Debian describes some of the changes
       that  have  been  made  to  the  CERN libraries in order to comply with
       Debian policy and the Filesystem Hierarchy Standard.

       CERNLIB  documentation  for  all  related  libraries  and  programs  is
       available at the following URL:


       This  manual  page  and  the  version  of  the  cernlib  script that it
       describes were written by Kevin McCarty <>  for  the
       Debian GNU/Linux system (but may be used by others).  They are licensed
       under the GNU General Public License,  version  2  or  later  (at  your


       Copyright (C) Kevin B. McCarty, 2002, 2003, 2004, 2005, 2006.

                                  Jan 6, 2005