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