Source

mana-core /

Filename Size Date modified Message
src
waffle [dff860adf67c]
414 B
4.2 KB
2.7 KB
4.1 KB
waf
12 B
5.9 KB
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:

$ cd somewhere
$ hg clone http://bitbucket.org/binet/mana-core mana
$ cd mana

 - first configuration:
$ ./waf configure --prefix=install_area

 - build
$ ./waf build -j4
$ ./waf install
$ ./waf shell
[waf] $ athena.py AthenaRootComps/tests/test_athena_evtstore_root.py

 - usual edit/compile/run cycle:
$ ./waf build install
$ ./waf shell 
[waf] $ 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 --cmtcfg=$CMTCONFIG

   Note: --cmtcfg=$CMTCONFIG is actually (now) not needed anymore


Dependencies
------------

 - gccxml (>=0.9)
 
 - ROOT  (>=5.28.00)  (with Reflex/Cintex enabled)

 - 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 src/core/<packages>

 - clear(er) work-model

 - make a src-dist tar-ball

 - make a bin-dist tar-ball (rpms, debs, ms-installer.exe, ...)

 - better inference of libraries versions when in LCGCMT piggy-back
   mode 

 - 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 src/ext to mana-ext and rewrite src/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
--------------
src/core/AtlasCommonPolicy
src/core/AtlasTest/TestTools
src/core/Control/AthenaBaseComps
src/core/Control/AthenaCommon
src/core/Control/AthenaKernel
src/core/Control/AthenaMP
src/core/Control/AthenaPython
src/core/Control/AthenaRootComps
src/core/Control/AthenaServices
src/core/Control/CLIDComps
src/core/Control/CLIDSvc
src/core/Control/CxxUtils
src/core/Control/DataModel
src/core/Control/GaudiSequencer
src/core/Control/Navigation
src/core/Control/PerformanceMonitoring/PerfMonEvent
src/core/Control/PerformanceMonitoring/PerfMonKernel
src/core/Control/RootUtils
src/core/Control/SGComps
src/core/Control/SGMon/SGAudCore
src/core/Control/SGTools
src/core/Control/StoreGate
src/core/Control/StoreGateBindings
src/core/Database/AthenaPOOL/AthenaPoolKernel
src/core/Database/AtlasSTLAddReflex
src/core/Event/EventInfo
src/core/GaudiAlg
src/core/GaudiAud
src/core/GaudiKernel
src/core/GaudiMP
src/core/GaudiPython
src/core/GaudiSvc
src/core/GaudiUtils
src/core/Tools/AtlasDoxygen
src/core/Tools/CodeCheck
src/core/Tools/PyCmt
src/core/Tools/PyJobTransformsCore
src/core/Tools/PyUtils
src/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 --prefix=/tmp/install_area \
         --cmtcfg=i686-linux-gcc-opt \
         --with-builtin-clhep \
         --with-builtin-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.