NAME¶
cernlib - print CERN library dependencies
SYNOPSIS¶
cernlib [
options]
libraries
DESCRIPTION¶
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 example:
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 pawlib`
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`
OPTIONS¶
- -a arch
- Specify a system architecture, e.g. Linux (default), AIX,
HP-UX, etc.
- -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 statically.)
- -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
/usr/share/doc/cernlib-base/README.Debian.
- -?, --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 flag.
LIBRARIES¶
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
/usr/share/doc/montecarlo-base/README.Debian)
ariadne, ariadne-p5, fritiof, jetset, lepto, pythia5, pythia6
- Aliases
- 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.
SEE ALSO¶
/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:
http://cern.ch/cernlib/
AUTHOR¶
This manual page and the version of the cernlib script that it describes were
written by Kevin McCarty <kmccarty@debian.org> 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 choice).
COPYRIGHT¶
Copyright (C) Kevin B. McCarty, 2002, 2003, 2004, 2005, 2006.