mana-ext /

Filename Size Date modified Message
pkg
waffle [c49056662073]
393 B
56 B
48 B
2.9 KB
waf
12 B

mana-ext

A bundle of externals for mana.

Installation

  • get the sources from mercurial:

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

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

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

    $ ./waf build -j4
    $ ./waf install
    $ ./waf shell
    

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)
  • 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

  • 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 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

  • fix ld-library-path empty slots on macosx (prevents uuid to be correctly discovered)
  • fix ROOTSYS detection in waf shell
  • add detection of bz2 headers+libs (so boost won't fail "mysteriously")
  • add detection of Xpm and Xft so ROOT won't fail "mysteriously"
  • add detection of ncurses (for cmake)

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



- slc6-64b:
$ yum install \
bzip2-devel \
libXpm-devel \
ncurses-devel
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.