Building from Source on Unix / Linux


  • ACE >= 5.4
    Most distributions lack it. You will probably need to compile it yourself.
  • libsigc++ 2.x.x
    Should be included in your distribution, but may not be installed by default.
  • zlib (any version)
    Should be included in your distribution.
  • gtkmm >= 2.4 [GUI builds only]
    Should be included in your distribution, but may not be installed by default.

Configuration Flags

Like most of the Unix / Linux software, BFilter is to be built with steps like these:
make install

The ./configure script can take arguments.
First of all, you can specify environment variables like this:
./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
BTW, FreeBSD users will need to do just that, as gcc in FreeBSD doesn't know anything about /usr/local.

Besides environment variables, you can specify configuration flags. Some are listed below. The full list can be obtained this way:
./configure --help

Set the installation prefix. The default is /usr/local.
./configure --prefix=/usr
This will cause binaries to be placed in /usr/bin and config files in /usr/etc/bfilter.

Set the etc directory. The default is $prefix/etc, which would be /usr/local/etc for the default prefix.
./configure --sysconfdir=/etc
This will cause config files to be placed in /etc/bfilter.

Linux only. If enabled, config files will be located based on the location of the binary, making the program fully relocatable. The default is to enable binreloc on Linux only, and only if --sysconfdir wasn't specified.

Build the GUI in addition to the command-line version. The GUI binary is called bfilter-gui. Note that bfilter-gui stores its configuration in $HOME/.bfilter, but it still needs the global configuration in /usr/local/etc.

Enables outputting the debug info. In case of the command-line version, it's printed to stdout, which is not very useful, considering the output will be coming from multiple threads. In case of the GUI version, you will have this kind of functionality: Note that --enable-debug doesn't imply turning on debug symbols or turning off optimization.