Installing Wt on FreeBSD

FreeBSD 11.1-RELEASE-p5

Minimal installation prerequisites:

pkg install boost-libs cmake

Then download, extract and build Wt:

fetch https://github.com/emweb/wt/archive/x.y.z.tar.gz
tar xzf x.y.z.tar.gz
cd wt-x.y.z
mkdir build
cd build
cmake ..
make
make -C examples

For hints on installing more dependency packages, see the Ubuntu installation instructions in this wiki.

FreeBSD 10.0

Minimal installation prerequisites:

pkg install boost-libs cmake gmake

Then download, extract and build Wt:

wget -c http://kent.dl.sourceforge.net/sourceforge/witty/wt-x.y.z.tar.gz
tar xvxf wt-x.y.z.tar.gz
cd wt-x.y.z
mkdir build
cd build
cmake .. 
gmake
gmake -C examples

Warning: FreeBSD's default make does not work with CMake generated build files. Be sure to use gmake!

For hints on installing more dependency packages, see the Ubuntu installation instructions in this wiki.

FreeBSD 7.2

Just a few notes to help FreeBSD users to build Wt. I tested those tips on FreeBSD 7.2.

  • For the cmake options :
  cmake -DBOOST_DIR=/usr/local -DBOOST_FS_LIB_MT=/usr/local -DBOOST_FS_LIB_MT=/usr/local/lib/libboost_filesystem.so ../
  • This will build a non-threaded version of Wt, which is fine for playing around with the features, but a multi-threaded Wt build is to be preferred. Although boost for FreeBSD is multi-threaded, they do not have the signature mt in their library names, which is taken by the Wt build process as an indication that the boost libraries are multi-threaded. To force Wt to make a multi-threaded build, you need to edit your CMakeCache.txt and copy the value of each BOOST_xx_LIB variable to BOOST_xx_LIB_MT, specify the BOOST_THREAD_LIB_MT library, and add -lpthread to the WtFindBoost.txt cmake script (lines 223 - 229):
 SET(BOOST_WT_LIBRARIES
        ${BOOST_THREAD_LIB_MT}
        ${BOOST_REGEX_LIB_MT}
        ${BOOST_SIGNALS_LIB_MT}
        ${BOOST_SYSTEM_LIB_MT}
        ${BOOST_PO_LIB_MT}
        ${BOOST_DT_LIB_MT} -lpthread)

When running make, you should then get a line that says:

 ** Enabling multi threading.
  • Be sure to specify "www" for the WEBUSER and WEBGROUP configuration variables. Otherwise Wt will use "apache" user/group which doesn't exist by default on FreeBSD.
  • To compile some examples, you need to replace "png12" by "png" because the PNG libray is simply named "libpng.so" on FreeBSD.

I hope those simple tips will help FreeBSD users to install and try Wt.