libferris: build order

I love to live on the edge and enjoy building all my stuff from source... what order should I use?

Donate - logo


EA Descriptions

Build Order
Source Control

Mailing Lists
GPG Keys

Source hosted at:

Build order and dependencies

If you are building libferris and ego from sources then this page describes which ordering you can expect to build things in. Arrows that are not filled in are optional dependencies that will be taken advantage of if present at configure time. Transitive dependencies are usually not shown explicitly, for example, ego might directly use stldb4 but since its a requirement of libferris which ego already requires because ferriscreate requires libferris then no link exists from ego to stldb4.

There are also many packages that are optional and detected at configure time for libferris. For example if the tdb database library is detected when building libferris then a plugin will be created to allow libferris to mount tdb files. Similar things are true for id3lib which allows ID3 tags to be presented from audio files. Looking in the plugins directory of a libferris tarball should give a reasonable idea of what optional modules can be compiled in this fashion.

You may find that many of the lower level dependancies are already met by your Linux distribution. One may expect fam, libsigc++, xerces-c, xalan-c, gnome-vfs2 or kde3, pccts, xmms, swig and imlib2 to already be present.

Note that you have the choice to build against STLport or the STL and IOStreams from g++. The default is to build against STLport if it can be detected during a ./configure. If you have stlport installed but do not wish to build libferris against it use the --disable-stlport option to ./configure. This default behaviour applies to ferrisstreams and most tarballs available from this project's download page.

Note that if you choose to build against stlport then some of the C++ libraries which libferris uses must themselves be built against STLPort to avoid having the library which libferris is linking to expecting a different std namespace implementation. You will have to compile ferrisstreams, libpqxx and fampp2 against STLport for example. You will get build errors for some libferris clients if your xalan-c is not built against STLport, if you are not planning on using XSLT with libferris you can always ignore these clients.

Another major choice you have to make when building is which version of libsigc++ you want to use. To preserve build compatibility, by default the 1.2 version is used. To use the newer version run configure with --with-sigcxx-2x=yes. Note that you should configure all packages to use the same major version of libsigc++.

If you find any major omissions here please mail the mailing list with your updates.


Build dependencies for libferris and ego