You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Requirements

Please make sure to follow the instructions for compiling python prior to building ROOT since ROOT needs to be built against python.  ROOT may also be built against MySQL on the linuxes.  Also note that often the version of the source we utilize for ROOT is Fermi-specific where patches have been applied or the version of ROOT is from a branch from their Subversion repository.

v5.22.00e-gl1

./configure linux --fail-on-missing --enable-mysql --with-mysql-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/5.1.39/gcc34/include/mysql --with-mysql-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/5.1.39/gcc34/lib/mysql --enable-xrootd --enable-python --with-python-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/include/python2.5 --with-python-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/lib/python2.5/config --enable-reflex --enable-cintex --enable-roofit --with-oracle-incdir=/usr/oracle/rdbms/public --with-oracle-libdir=/usr/oracle/lib --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink --with-gccxml=$userSpace/gaudi_v21r4/gccxml/0.9.0_20090601/slc4_ia32_gcc34/bin --enable-gdml > & config-rhel4.log &

redhat4-i686-32bit-gcc34

  1. Obtain Fermi's copy of the source from /afs/slac/g/glast/ground/GLAST_EXT/srcExtlibs/root-v5.22.00e-gl1.tar.gz and unpack, it will be dumped into a directory named "root"
  2. set ROOTSYS to the same directory as the source was checked out into.  cd into the root directory
  3. Run configure:
    ./configure linux --fail-on-missing --enable-mysql --with-mysql-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/4.1.18/gcc34/include/mysql --with-mysql-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/4.1.18/gcc34/lib/mysql --enable-xrootd --enable-python --with-python-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/include/python2.5 --with-python-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/lib/python2.5/config --enable-reflex --enable-cintex --enable-roofit --with-oracle-incdir=/usr/oracle/rdbms/public --with-oracle-libdir=/usr/oracle/lib --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink > & config-rhel4.log &
  4. Build by running "make >& build-rhel4.log &"
  5. Update etc/system.rootrc to include the lines:
    # As suggested by Wilko, April, 2009, so that when a job writes to xrootd, missing directories are created upon request.
    XNet.Mkpath: 1
  6. Copy the following into $GLAST_EXT using the directory structure:
    ROOT/v5.20.00-gl4/gcc34/
    README bin build-rhel4.log cint config-rhel4.log doc etc fonts icons include lib macros man test tutorials

v5.20.00-gl5

We ran into a problem this time with distribution of our linux build for ROOT.  It seems prefix cannot be used, so we must set the ROOTSYS env var for our build.  make install no longer seems to work unless prefix is used, so we are left to prune the resulting ROOT build directories on our own.

redhat4-x86_64-64bit-gcc34

  1. Obtain Fermi's copy of the source from /afs/slac/g/glast/ground/GLAST_EXT/srcExtlibs/root-v5.20.00-gl5.tar.gz and unpack, it will be dumped into a directory named "root"
  2. set ROOTSYS to the same directory as the source was checked out into.  cd into the root directory
  3. Run configure:
    ./configure linuxx8664gcc --fail-on-missing --enable-mysql --with-mysql-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-x86_64-64bit-gcc34/mysql/4.1.18/gcc34/include/mysql --with-mysql-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-x86_64-64bit-gcc34/mysql/4.1.18/gcc34/lib/mysql --enable-xrootd --enable-python --with-python-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-x86_64-64bit-gcc34/python/2.5.1-gl1/gcc34/include/python2.5 --with-python-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-x86_64-64bit-gcc34/python/2.5.1-gl1/gcc34/lib/python2.5/config --enable-reflex --enable-cintex --enable-roofit --with-oracle-incdir=/usr/oracle/rdbms/public --with-oracle-libdir=/usr/oracle/lib --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink > & config-rhel4.log &
  4. Build by running "make >& build-rhel4.log &"
  5. Update etc/system.rootrc to include the lines:
    # As suggested by Wilko, April, 2009, so that when a job writes to xrootd, missing directories are created upon request.
    XNet.Mkpath: 1
  6. Copy the following into $GLAST_EXT using the directory structure:
    ROOT/v5.20.00-gl4/gcc34/
    README bin build-rhel4.log cint config-rhel4.log doc etc fonts icons include lib macros man test tutorials

redhat3-i686-32bit-gcc32

  1. Obtain Fermi's copy of the source from /afs/slac/g/glast/ground/GLAST_EXT/srcExtlibs/root-v5.20.00-gl5.tar.gz and unpack, it will be dumped into a directory named "root"
  2. set ROOTSYS to the same directory as the source was checked out into.  cd into the root directory
  3. Run configure:
    ./configure linux --fail-on-missing --enable-mysql --with-mysql-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat3-i686-32bit-gcc32/mysql/4.1.18/gcc32/include/mysql --with-mysql-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat3-i686-32bit-gcc32/mysql/4.1.18/gcc32/lib/mysql --enable-xrootd --enable-python --with-python-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat3-i686-32bit-gcc32/python/2.5.1-gl1/gcc32/include/python2.5 --with-python-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat3-i686-32bit-gcc32/python/2.5.1-gl1/gcc32/lib/python2.5/config --enable-reflex --enable-cintex --enable-roofit --with-oracle-incdir=/usr/oracle/rdbms/public --with-oracle-libdir=/usr/oracle/lib --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink > & config-rhel3.log &
  4. Build by running "make >& build-rhel3.log &"
  5. Update etc/system.rootrc to include the lines:
    # As suggested by Wilko, April, 2009, so that when a job writes to xrootd, missing directories are created upon request.
    XNet.Mkpath: 1
  6. Copy the following into $GLAST_EXT using the directory structure:
    ROOT/v5.20.00-gl4/gcc32/
    README bin build-rhel3.log cint config-rhel3.log doc etc fonts icons include lib macros man test tutorials

redhat4-i686-32bit-gcc34

  1. Obtain Fermi's copy of the source from /afs/slac/g/glast/ground/GLAST_EXT/srcExtlibs/root-v5.20.00-gl5.tar.gz and unpack, it will be dumped into a directory named "root"
  2. set ROOTSYS to the same directory as the source was checked out into.  cd into the root directory
  3. Run configure:
    ./configure linux --fail-on-missing --enable-mysql --with-mysql-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/4.1.18/gcc34/include/mysql --with-mysql-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/mysql/4.1.18/gcc34/lib/mysql --enable-xrootd --enable-python --with-python-incdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/include/python2.5 --with-python-libdir=/afs/slac/g/glast/ground/GLAST_EXT/redhat4-i686-32bit-gcc34/python/2.5.1-gl1/gcc34/lib/python2.5/config --enable-reflex --enable-cintex --enable-roofit --with-oracle-incdir=/usr/oracle/rdbms/public --with-oracle-libdir=/usr/oracle/lib --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink > & config-rhel4.log &
  4. Build by running "make >& build-rhel4.log &"
  5. Update etc/system.rootrc to include the lines:
    # As suggested by Wilko, April, 2009, so that when a job writes to xrootd, missing directories are created upon request.
    XNet.Mkpath: 1
  6. Copy the following into $GLAST_EXT using the directory structure:
    ROOT/v5.20.00-gl4/gcc34/
    README bin build-rhel4.log cint config-rhel4.log doc etc fonts icons include lib macros man test tutorials

tiger-i386-32bit-gcc40

  1. Obtain Fermi's copy of the source from /afs/slac/g/glast/ground/GLAST_EXT/srcExtlibs/root-v5.20.00-gl5.tar.gz and unpack, it will be dumped into a directory named "root"
  2. setup your environment, where we have cd'd into the root directory created when the source was unpacked:
    setenv GLAST_EXT /afs/slac/g/glast/ground/GLAST_EXT/tiger-i386-32bit-gcc40/
    setenv ROOTSYS $PWD
    setenv LD_LIBRARY_PATH ${ROOTSYS}/lib:${ROOTSYS}/lib/root
    setenv PATH            ${GLAST_EXT}/python/2.5.1-gl3/gcc40/bin:/bin:/sbin:/usr/b
    in:/usr/sbin:@sys/usr/bin:${ROOTSYS}/bin
    setenv PYTHONHOME ${GLAST_EXT}/python/2.5.1-gl3/gcc40/lib/python2.5
    setenv PYTHONPATH ${PYTHONHOME}:${ROOTSYS}/bin:${ROOTSYS}/lib
    setenv DYLD_LIBRARY_PATH ${ROOTSYS}/lib
  3. Run configure:
    ./configure --disable-mysql --enable-python --with-python-incdir=/afs/slac.stanford.edu/g/glast/ground/GLAST_EXT/tiger-i386-32bit-gcc40/python/2.5.1-gl3/gcc40/include/python2.5 --with-python-libdir=/afs/slac.stanford.edu/g/glast/ground/GLAST_EXT/tiger-i386-32bit-gcc40/python/2.5.1-gl3/gcc40/lib/python2.5/config --enable-roofit --disable-odbc --enable-minuit2 --enable-unuran --enable-table --enable-explicitlink >& config-tiger.log &
  4. Build by running "make >& build-tiger.log &"
  5. libPyROOT.dylib must be rebuilt, due to a need to make it a "bundle" rather than "shared library":
    cd into pyroot/src directory and do:
    g++ -flat_namespace -bundle *.o -bundle_loader $GLAST_EXT/python/2.5.1-g3/gcc40/bin/python -L$ROOTSYS/lib -ldl -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix -lMathCore -lThread -lReflex -L$GLAST_EXT/python/2.5.1-gl3/gcc40/lib/python2.5/config -lpython2.5 -o libPyROOT.dylib
    See:  https://savannah.cern.ch/bugs/index.php?22003
  6. The *.dylib files will have their references to other ROOT libraries hard-coded.  This must be fixed before the libraries can be distributed.  Both the ids and the ROOT libraries referenced must be updated.
    1. First check the id and references using:
      otool -L name.dylib.  i.e.  otool -L libCint.dylib
    2. Next update the id using the command: 
      install_name_tool -id newID fileName  i.e. install_name_tool -id libCint.dylib libCint.dylib
    3. For any ROOT libraries referenced do: 
      install_name_tool -change oldName newName fileName  i.e install_name_tool -change $ROOTSYS/lib/libNet.dylib libNet.dylib libPyROOT.dylib
  7. Update etc/system.rootrc to include the lines:
    # As suggested by Wilko, April, 2009, so that when a job writes to xrootd, missing directories are created upon request.
    XNet.Mkpath: 1
  8. Copy the following into $GLAST_EXT using the directory structure:
    ROOT/v5.20.00-gl4/gcc40/
    README bin build-tiger.log cint config-tiger.log doc etc fonts icons include lib macros man test tutorials
  • No labels