(last modified by F.Ranjard 18 March 2002)
Several patterns are used in requirements files. All of them are defined in GaudiPolicy
They are two kinds of patterns :
general patterns require the library name as argument:
apply_pattern <pattern> library=<library>
- librayShr
sets an environment variable used by Gaudi to access component library
i.e. apply_pattern libraryShr library=GaudiSvc
$GaudiSvcShr = $GaudiSvcDir/libGaudiSvc
WIN32 $GaudiSvcDir/GaudiSvc.lib- libray_Clinkopts
sets link options of component library
i.e. apply_pattern library_Clinkopts library=GaudiSvc
GaudiSvc_linkopts = ""
UnixStatic "$GaudiSvcDir/libGaudiSvc.a -u GaudiSvc_loadRef"- library_Cshlibflags
builds the macro which defines the flags used to build a component shareable image
i.e. apply_pattern library_Cshlibflags library=GaudiSvc
private
GaudiSvc_shlibflags = "$componentShr_linkopts $use_linkopts"
public- library_stamps
builds the macro which points to the library stamp
i.e. apply_pattern library_stamps library=GaudiAlgLib
GaudiAlg_Lstamps = $GAUDIALGROOT/$BINDIR/GaudiAlgLib.stamps- library_Llinkopts
builds the link options of a linker library
i.e. apply_pattern library_Llinkopts library=GaudiAlgLib
GaudiAlgLib_linkopts = -L$GaudiAlgDir -l GaudiAlgLib
WIN32 $GaudiAlgDir/$GaudiAlgLib.lib
LinuxStatic $GaudiAlgDir/libGaudiAlgLib.a -u $GaudiAlg_loadRef- library_Lshlibflags
builds the macro which defines the flags used to build a linker shareable image
i.e. apply_pattern library_Lshlibflags library=GaudiAlgLib
GaudiAlgLib_shlibflags = $libraryShr_linkoptspatterns used to handle LD_LIBRARY_PATH and SoftLinks
- package_libraries
on unix tell CMT to build softLinks to used package libraries
i.e. apply_pattern package_libraries libraries="GaudiAlg GaudiAlgLib"
GaudiTools_libraries = "GaudiAlg GaudiAlgLib"- pattern ld_library_path
removes and then adds the package library path to $LD_LIBRARY_PATH
i.e. path_append LD_LIBRARY_PATH $GAUDITOOLSROOT/$BINDIR
- linker_path
adds, on Win32, package binary path to LD_LIBRARY_PATH
creates, on Linux, SoftLinks to package binary path
i.e. apply_pattern linker_path libraries="GaudiAlg GaudiAlgLib"patterns used in an application package (mandatory)
- application_path
adds the application package path to LD_LIBRARY_PATH
specific patterns use the package name as library name:
apply_pattern <pattern>specific patterns used in a package which builds one linker library
- package_stamps
builds the macro which points to the library stamp
i.e. GaudiAlg_stamps = $GAUDIALGROOT/$BINDIR/GaudiAlg.stamps- package_linkopts
builds the macro which defines the link statement of a dynamic library
i.e. GaudiTools_linkopts = -L$GaudiToolsDir -lGaudiTools
WIN32 $GaudiToolsDir/GaudiTools.lib
LinuxStatic $GaudiToolsDir/libGaudiTools.a -u GaudiTools_loadRef- package_shlibflags
builds the macro which defines the flags used to build a shareable image
i.e. GaudiTools_shlibflags = $(libraryshr_linkopts)specific patterns used in a package which builds one component library
- packageShr
sets an environment variable used by Gaudi to access component library
i.e.$GaudiSvcShr = $GaudiSvcDir/libGaudiSvc
WIN32 $GaudiSvcDir/GaudiSvc.lib- package_Clinkopts
sets link options of component library
i.e. GaudiSvc_linkopts = ""
LinuxStatic "$GaudiSvcDir/libGaudiSvc.a -u GaudiSvc_loadRef"- package_Cshlibflags
builds the macro which defines the flags used to build a component shareable image
i.e. GaudiSvc_shlibflags = "$componentShr_linkopts $use_linkopts"specific patterns used in a package which builds one component and one linker library
- package_Lstamps
builds the macro which points to the linker library stamp
i.e. GaudiAlg_Lstamps = $GAUDIALGROOT/$BINDIR/GaudiAlgLib.stamps- package_Llinkopts
builds the link options of a linker library in a package which builds a component and a linker library. In this case the name of the linker library is packageLib
i.e. GaudiAlgLib_linkopts = -L$GaudiAlgDir -l GaudiAlgLib
WIN32 $GaudiAlgDir/$GaudiAlgLib.lib
LinuxStatic $GaudiAlgDir/libGaudiAlg.a $GaudiAlgDir/libGaudiAlgLib.a
-u $GaudiAlg_loadRe- package_Lshlibflags
builds the macro which defines the flags used to build a linker shareable image
i.e. GaudiAlgLib_shlibflags = $libraryShr_linkoptsspecific patterns used in a package which builds a static library
- package_Slinkopts
builds the link options of a static library (not used for the moment)specific patterns used in a Fortran package
- package_Flinkopts
builds the link options of a Fortran library
i.e.detdes_linkopts = $detdesDir/libdetdes.a
WIN32 $detdesDir/detdes.lib- package_fflags
adds some compilation flags on Win32 in case of include directory
i.e. detdes_fflags = ""
WIN32 /fpp:"I$DETDESROOT" /fpp:"I$DETDESROOT/src"