# allExternals.scons # - Initializes a data structure containing interface information for all # usable versions of all external libraries, including override values # needed for a particular os or os-compiler # - exports a routine which, when passed external name, interface version, # and build nvironment will return a structure containing # information about the requested (external, interface version) appropriate # to that environment allExternals = { 'CLHEP' : {'1.9.2.2' : {'default' : {'version' : '1.9.2.2', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'lib'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'CLHEP/config/CLHEP.h' ], 'libraries' : { 'clhepLibs' : [ 'CLHEP'] } } } }, 'fftw' : {'3.1.2' : {'default' : {'version' : '3.1.2', 'include-path' : os.path.join('$GLAST_EXT','$NAME', '$VERSION', '$COMPILER', 'include'), 'lib-path' :os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER','lib'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'fftw/fftw3.h' ], 'libraries' : {'fftwLibs' : ['fftw3'] } }, 'win32' : { 'libraries' : {'fftwLibs' : ['libfftw3'] } } }}, 'cfitsio' : {'v3060' : {'default' : {'version' : 'v3060', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'lib'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'fitsio.h' ], 'libraries' : {'cfitsioLibs' : ['cfitsio', 'm']} }, 'win32' : {'libraries' : {'cfitsioLibs' : ['cfitsio'] } } }}, 'ape' : {'2.3-gl1' : {'default' : {'version' : '2.3-gl1', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'include'), 'lib-path':os.path.join('$GLAST_EXT','$NAME','$VERSION', '$COMPILER', 'lib'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'ape/ape_list.h' ], 'libraries' : {'apeLibs' : ['ape','readline','termcap']} }, 'win32' : {'libraries' : {'apeLibs' : ['apeLib']} } }}, 'ROOT' : {'5.18.1' : {'default':{'version ' : 'v5.18.00b', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path':os.path.join('$GLAST_EXT','$NAME','$VERSION', '$COMPILER', 'lib'), 'ld-path' : '$LIB-PATH', 'includes' : ['RVersion.h' ], 'libraries':{'rootLibs':['Tree','Net','Gpad','Graf', 'RIO','Hist','Physics','Matrix', 'Core','Cint','pthread','m', 'dl' ], 'rootGuiLibs':['Rint','Postscript', 'TreePlayer','Tree', 'Net', 'Graf3d','Gui', 'HistPainter', 'Gpad' ], 'minuitLibs':['Minuit2','Minuit','Graf', 'RIO', 'Hist', 'Matrix', 'Core', 'Cint' ]} } }, 'win32' : {'libraries' : { 'rootLibs': ['libCore','libCint','libRIO', 'libNet','libTree','libHist', 'libGraf','libGpad', 'libMatrix', 'libPhysics' ], 'rootGuiLibs' : [ 'libHist', 'libGraf', 'libGraf3d', 'libGpad', 'libRint','libPostscript', 'libTreePlayer','libGui' 'libHistPainter' ], 'minuitLibs' : [ 'libMinuit2' ] } }, '5.18.3' : {'default' : {'version' : 'v5.18.00c-gl1', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path' :os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER','lib'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'RVersion.h' ], 'libraries': {'rootLibs':['Tree','Net','Gpad','Graf', 'RIO','Hist','Physics','Matrix', 'Core','Cint','pthread','m', 'dl' ], 'rootGuiLibs':['Rint','Postscript', 'TreePlayer','Tree', 'Net', 'Graf3d','Gui', 'HistPainter', 'Gpad' ], 'minuitLibs':['Minuit2','Minuit','Graf', 'RIO', 'Hist', 'Matrix', 'Core', 'Cint' ]} } }, 'win32' : {'version' : 'v5.18.00c', 'libraries' : { 'rootLibs': ['libCore','libCint','libRIO', 'libNet','libTree','libHist', 'libGraf','libGpad', 'libMatrix', 'libPhysics' ], 'rootGuiLibs' : ['libHist', 'libGraf', 'libGraf3d', 'libGpad', 'libRint','libPostscript', 'libTreePlayer','libGui' 'libHistPainter' ], 'minuitLibs' : ['libMinuit2'] } } }, 'swig' : {'1.3.31' : {'default':{'version' : '1.3.31', 'bin-path' : os.path.join('$GLAST_EXT','$NAME','$VERSION', '$COMPILER', 'bin'), 'share-path':os.path.join('$GLAST_EXT','$NAME','$VERSION', '$COMPILER','share','swig', '$VERSION'), 'ld-path' : '$LIB-PATH', 'binaries' : [ 'swig' ]}, 'win32' : {'share-path': os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'share', 'swig')} }}, 'xerces' : {'2.7.0' : {'default': {'version' : '2.7.0', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path':os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER','lib'), 'bin-path':os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER','bin'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'xercesc/util/XercesVersion.hpp' ], 'libraries' : {'xercesLibs' : ['xerces-c','pthread']} } }, 'win32' : {'bin-path' : os.path.join('$GLAST_EXT','$NAME', '$VERSION','$COMPILER', 'bin') 'ld-path' : '$BIN-PATH', 'libraries' : {'xercesLibs':['xerces-c_2'] }}, 'vc90' : {'version' : '2.8.0'} }, 'cppunit' : {'1.10.2' : {'default': {'version': '1.10.2', 'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER', 'include'), 'lib-path':os.path.join('$GLAST_EXT', '$NAME', '$VERSION','$COMPILER','lib'), 'ld-path' : '$LIB-PATH', 'includes' : ['cppunit/ui/text/TextTestRunner.h'], 'libraries' : {'cppunitLibs' : ['cppunit', 'dl']} }}, 'win32' : 'libraries' : {'cppunitLibs':['CPPUNIT']} }, 'python' : {'2.5.1' : {'default' : {'version' : '2.5.1', 'include-path': os.path.join('$GLAST_EXT','$NAME', '$VERSION', '$COMPILER', 'include', 'python2.5'), 'lib-path' :os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'lib','python2.5','config'), 'ld-path' : '$LIB-PATH', 'includes' : [ 'Python.h' ], 'libraries': {'pythonLibs' : ['pthread', 'dl','util', 'm', 'python2.5' ]} }, 'darwin' : {'libraries' : {'pythonLibs' : ['pthread', 'dl', 'm', 'python2.5' ]} }, 'win32' : {'include-path' : os.path.join('$GLAST_EXT', '$NAME', '$VERSION', '$COMPILER', 'include'), 'lib-path': os.path.join('$GLAST_EXT','$NAME', '$VERSION','$COMPILER','libs'), 'libraries': {'pythonLibs' : ['python25']} } }}, 'f2c' : {'3.4' : {'default': {'version': '3.4', 'lib-path': os.path.join('$GLAST_EXT','$NAME','$VERSION', '$COMPILER', 'lib'), 'ld-path' : '$LIB-PATH', 'libraries' : { 'f2cLibs' : [ 'g2c' ] } }}, '3.4.6' : {'default' : {'version': '3.4.6', 'lib-path': os.path.join('$GLAST_EXT','$NAME', '$VERSION', '$COMPILER','lib'), 'ld-path' : '$LIB-PATH', 'libraries' : { 'f2cLibs' : [ 'g2c' ] } }, 'win32' : {'libraries' : {'f2cLibs' : ['libf77mt.lib','libi77mt.lib', 'oldnames.lib'] }} }}, 'extFiles' : {'v0r7' : {'default' : {'version' : 'v0r7', 'cppDefines' : [ 'extFiles=\\"$VERSION\\"' ] } }} } # def getExtlib(env, name='', iversion=''): if name=='' or iversion='': # complain and.. return {} # First look in allExternals extlib of supplied name and interface version # If found, fill dict with default values if not name in allExternals: return {} in not iversion in allExternals[name] return {} ourExt = allExternals[name][iversion]['default'] # Look for overrides for our platform plat = env['PLATFORM'] if plat in allExternals[name][version]: # add/override for k in allExternals[name][version][plat]: ourExt[k] = allExternals[name][version][plat][k] # and finally for compiler cmp = env['COMPILERNAME'] if cmp in allExternals[name][version]: # add/override for k in allExternals[name][version][cmp]: ourExt[k] = allExternals[name][version][cmp][k] return ourExt