Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Compiling CCP4

Avatar for mw mw
March 21, 2012

Compiling CCP4

JHBuild has been adapted to build CCP4 suite. Developers are encouraged to use cmake or autotools rather than plain makefiles for their projects.

Avatar for mw

mw

March 21, 2012
Tweet

Other Decks in Programming

Transcript

  1. ...we need a flexible way of building get the latest

    source from Bazaar (or from Subversion or CVS or from ftp) download and build only a selected program or library (with dependencies handled automatically, unless told otherwise) update, i.e., download and build only what has changed build requested versions of programs and libraries change compilation flags globally or per-module compile programs on Linux, OS X and Windows (and cross-compile for Windows on Linux) it should be easy to
  2. we've adapted JHBuild JHBuild allows you to automatically download and

    compile “modules” (i.e. source code packages). Modules are listed in “module set” files, which also include dependency information so that JHBuild can discover what modules need to be built and in what order. JHBuild was originally written for building GNOME, but has since been extended to be usable with other projects.
  3. we've adapted JHBuild Adding a new module is easy. All

    you need to do is to specifying repository: <repository type="tarball" name="lapack_site" href="http://www.netlib.org/lapack/"/> <repository type="bzr" name="oisin" default="yes" href="http://fg.oisin.../" /> and module name, version, build system, special arguments and dependencies: <cmake id="lapack"> <branch repo="lapack_site" module="lapack-3.4.0.tgz" version="3.4.0"/> </cmake> <autotools id="gesamt" autogenargs="--enable-ccp4"> <branch/> <dependencies><dep package="mmdb"/><dep package="libccp4"/></dependencies> </autotools> see CCP4-JHBuild at http://devtools.fg.oisin.rc-harwell.ac.uk/ so far it builds ~70% of the suite
  4. Actually it is easy only if the module has a

    build system that uses one of: • autotools (a.k.a. GNU build system, autoconf/automake/libtool) • cmake • waf • python distutils Majority of actively developed CCP4 programs has two separate build systems: • a set of makefiles used by developers • and autotools-based scripts used in CCP4 releases. Build systems based on cmake and autotools automatically handle header dependencies, work on many platforms without modifications, and in case of cmake are usually simpler. If you'd like to use autotools or cmake we will gladly help.
  5. what to choose? cmake autotools works with many compiler environments

    generate only Unix Makefiles users need cmake to compile sources users need only shell and make can be configured using GUI easier to configure using command line probably easier to learn