mana-core /

Filename Size Date modified Message
pkg
waffle [c49056662073]
414 B
2.9 KB
2.5 KB
4.4 KB
waf
12 B

mana-core

The strictly essential parts extracted from Athena/Gaudi to have a mini-Athena environment tailored for reading ROOT n-tuples.

Installation

  • get the sources from mercurial:

    $ cd somewhere
    $ hg clone http://bitbucket.org/binet/mana-core mana
    $ cd mana
    
  • get the sources from tar-ball:

    $ curl -OL https://bitbucket.org/binet/mana-core/downloads/mana-core-0.0.1.tar.gz
    $ tar zxvf mana-core-0.0.1.tar.gz && cd mana-core-0.0.1
    
  • first configuration:

    $ ./waf configure --prefix=install_area
    
  • build:

    $ ./waf build -j4
    $ ./waf install
    $ ./waf shell
    $ athena.py AthenaRootComps/tests/test_athena_ntuple_dumper.py
    
  • usual edit/compile/run cycle:

    $ ./waf build install
    $ ./waf shell
    $ athena.py some-jobo.py
    

the 'waf shell' command spawns an interactive sub-shell which has been correctly configured with the project's environment setup ($PATH, $LD_LIBRARY_PATH, etc...)

  • using mana from within a CMT environment: mana tries to automagically detect and pick up the libraries from a (LCG)CMT environment (ie: $SITEROOT is defined as well as $CMTCONFIG). In such a setup, configuring mana is done like so:

    $ ./waf configure --prefix=install_area
    
  • create a source tar ball (need the mercurial repository and 'hg'):

    $ ./waf sdist
    
  • create a binary tar ball:

    $ ./waf bdist
    

Dependencies

  • gccxml (>=0.9)
  • CMake (>=2.6) (to build gccxml and ROOT)
  • ROOT (>=5.28.00) (with Reflex/Cintex enabled)
  • Xrootd (>= 3.1.0)
  • CLHEP (==1.9.4.7)
  • Boost (>=1.44)
  • python (>=2.6)
  • rt,pthread (on linux)
  • uuid (>= 1.38)

TODO

  • prune still extraneous stuff in GaudiKernel, Gaudi{Alg,Aud,Utils,Python}

  • clean-up dependencies in pkg/core/<packages>

  • clear(er) work-model

  • make a bin-dist for rpms, debs, mac-bundle, ms-installer.exe, ...

  • better handling of cmt-alias mechanism -> probably just create symlinks

  • handle code|binaries distribution:

    $ wget http://bitbucket.org/binet/mana-bootstrap/mana.py
    $ mana.py --bootstrap mana-dev
    $ mana.py --get mana-ext-src
    $ ...
    
  • migrate pkg/ext to mana-ext and rewrite pkg/ext to be glue code also refactorize ext a la find_xyz.py

  • support for distcc

  • separate files with dbg symbols

  • test (hierarchical) projects

  • test IDEs (eclipse, visual studio, xcode)

  • test on windows (TM)

FIXME

  • provide a way to not require to build mana-core to build "mana-dev"
  • provide a way to not require CMT (dump-athfile, ...)
  • fix ld-library-path empty slots on macosx (prevents uuid to be correctly discovered)
  • fix ROOTSYS detection in waf shell

Atlas packages

pkg/core/AtlasCommonPolicy
pkg/core/AtlasTest/TestTools
pkg/core/Control/AthenaBaseComps
pkg/core/Control/AthenaCommon
pkg/core/Control/AthenaKernel
pkg/core/Control/AthenaMP
pkg/core/Control/AthenaPython
pkg/core/Control/AthenaRootComps
pkg/core/Control/AthenaServices
pkg/core/Control/CLIDComps
pkg/core/Control/CLIDSvc
pkg/core/Control/CxxUtils
pkg/core/Control/DataModel
pkg/core/Control/GaudiSequencer
pkg/core/Control/Navigation
pkg/core/Control/PerformanceMonitoring/PerfMonEvent
pkg/core/Control/PerformanceMonitoring/PerfMonKernel
pkg/core/Control/RootUtils
pkg/core/Control/SGComps
pkg/core/Control/SGMon/SGAudCore
pkg/core/Control/SGTools
pkg/core/Control/StoreGate
pkg/core/Control/StoreGateBindings
pkg/core/Database/AthenaPOOL/AthenaPoolKernel
pkg/core/Database/AtlasSTLAddReflex
pkg/core/Event/EventInfo
pkg/core/GaudiAlg
pkg/core/GaudiAud
pkg/core/GaudiKernel
pkg/core/GaudiMP
pkg/core/GaudiPython
pkg/core/GaudiSvc
pkg/core/GaudiUtils
pkg/core/Tools/AtlasDoxygen
pkg/core/Tools/CodeCheck
pkg/core/Tools/PyCmt
pkg/core/Tools/PyJobTransformsCore
pkg/core/Tools/PyUtils
pkg/ana-ex/D3pdReaderExample

Troubleshooting

  • ubuntu 11.10 32b:
$ sudo apt-get install \
libc6-dev libstdc++6-4.4-dev \
make g++ gcc binutils gfortran \
python-dev mercurial \
libboost-all-dev libboost-random-dev \
dpkg-dev \
subversion \
libx11-dev libxpm-dev libxft-dev libxext-dev \
libxml2-dev libssl-dev libkrb5-dev libgsl0-dev \
uuid-dev \
libbz2-dev
# for 32b
$ ./waf configure --cmtcfg=i686-linux-gcc-opt \
--with-bundled-clhep --with-bundled-root
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.