Build instructions for BambooLib and Goanna

Installing Goanna and BambooLib is fairly straightforward, as both use Autotools for their build system.

See GoannaPlatforms for platform-specific build notes, as well as some package dependency lists.

Dependencies

BambooLib requires the following libraries (with headers/development packages installed):

  • OpenSSL
  • Xerces (or Expat for versions >= 2.0.95)
  • pcre
  • zlib

Goanna requires the following additional packages:

  • GTK+ >= 2.4
  • GtkGLext 1.0.x
  • libxml2 (tested with >= 2.6.0)
  • libglade 2.4
  • libsigc++ 2.x
  • hicolor icon theme (default fallback theme)

If you have a version of G++ that does not include the std::tr1 namespace (such GCC 3.4 and earlier), you'll need Boost and its development files installed (at least its type_traits library).

If you're building from Subversion, the following are also needed:

  • automake 1.9
  • autoconf 2.59+
  • libtool

Obtaining Sources

Both BambooLib and Goanna are available via Subversion:

$ svn co http://sss.scl.ameslab.gov/svn/libbamboo/trunk libbamboo
$ svn co http://sss.scl.ameslab.gov/svn/goanna/trunk goanna

Autotooling

Both BambooLib and Goanna are bootstrapped using an autogen.sh script. This invokes the appropriate autoconf, automake, etc. tools to build. The autogen.sh script is fairly configurable; poke around inside its innards to see all its options. Its configuration is controlled via environment variables. The following are particularly important:

AM_VERSION
Which Automake version specifier to use (e.g. 1.9). This shouldn't be needed, but it's here just in case.
AC_VERSION
Which Autoconf version specifier to use (e.g. 2.5).
AUTOCONF
autoconf executable to run (similar variables are checked for automake, libtoolize, aclocal, and autoheader).

After running autogen.sh, you can proceed to build with ./configure; make; make install as usual. In Goanna, autogen.sh runs configure automatically.

Building

Building is done as with any autotools project. Check the --help output of configure for BambooLib and Goanna for details as to their configuration options. Usually, Goanna will need to be pointed to BambooLib (--with-bamboo). Goanna's logging output is also configurable at build time via the configure script.

If you are intending to install Goanna system-wide, you probably want to configure with the --enable-update-xdg configure option, to cause the FreeDesktop? shared mime info databases to be rebuilt upon installation (and uninstallation).