Compiling SEMAINE-2.0 components from source code

Linux and Mac OS X

On linux, the Opensmile SEMAINE component can be built from the SEMAINE-2.0-source package. All third-party software required to run the system is open source software, and is already included in the install package.

To build the system, a number of standard build tools need to be installed: gcc, automake, etc. To install them on an Ubuntu Linux system, type:

sudo apt-get install automake autoconf gcc g++ libasound2-dev make libtool patch libx11-dev

To compile the required third-party software, the SEMAINE API and opensmile, go to the SEMAINE-2.0 directory and type:


Compilation may take an hour. The configuration file bin/buildall/modules.config is the most important file to configure the build process if needed.

We have tested this on Ubuntu Linux 9.10 and on Mac OS X 10.5.8 with the autotools installed via MacPorts.


The SEMAINE-2.0-java components require Java 1.6.

To recompile Java code, get the Java Software Development Kit (JDK) from, as well as the ant build tool, available from If you like to edit source code with Eclipse, there is also an Eclipse project for the java components in SEMAINE-2.0/java.

The source code of MARY TTS is available from -- the MARY 4.0 installer includes an optional source package. Alternatively, the source code is available by anonymous svn as described on To compile, run ant in the top-level MARY directory.


If you want to build the components from the source code, you need to install a Visual C++ 2005 build environment and third-party software as follows.

Visual C++ 2005 build environment

Remember where the Platform SDK gets installed -- e.g., C:\Program Files\Microsoft SDKs\Windows\v6.1. To make sure that Visual C++ uses this version of the Platform SDK in compiling the code, proceed as follows.

  • In Visual C++, go to "Tools"->"Options..."->"Projects and Solutions"->"VC++ Directories".
  • From "Show directories for", select "Include files". Click the "new line" button and add the "Include" subdirectory of the Platform SDK, e.g. "C:\Program Files\Microsoft SDKs\Windows\v6.1\Include".
  • From "Show directories for", select "Library files". Click the "new line" button and add the "Lib" subdirectory of the Platform SDK, e.g. "C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib".

Third-party software dependencies

  1. ActiveMQ-CPP

This is the C++ client for the Java Messaging Service server ActiveMQ. Download ActiveMQ-CPP from At least version 2.2.1 is required.

Preconditions: APR and APR-util. The easiest way to get these in binary form is to get a binary version of the Apache2 web server, e.g. from In the installer, select "Custom install", and make sure "Build headers and libraries" is installed. Remember where you install it -- e.g., c:\Program Files\Apache2.

Building using Visual C++ 2005 Express: The project file we need is activemq-cpp-2.2.1\vs2005-build\vs2005-activemq.vcproj.

I had to adjust include and link settings:

  • Open the project property page in Visual C++ by right-clicking vs2005-activemq and selecting "Properties".
  • In the C/C++ settings, make sure that "Additional Include Directories" has an entry to the include files for APR; if you installed them as part of Apache2 into C:\Program Files\Apache2, then the directory to list here is C:\Program Files\Apache2\include;
  • Now this should compile OK and create a static library ....\activemq-cpp-2.2.1\vs2005-build\Debug\libactivemq-cppd.lib.
  • You can test that lib by trying to compile vs2005-activemq-examples.vcproj. Set the "Additional Include Directories" to the same value as for vs2005-activemq.vcproj, and the Linker->"Additional Library Directories" to, e.g., "C:\Program Files\Apache2\include". When you build that, it should create a file ....\activemq-cpp-2.2.1\vs2005-build\Debug\vs2005-activemq-example.exe.
  1. Xerces-C

This is a standards-compliant XML parser. Install Xerces-C from Binary releases exist for very many platforms. For windows, you must use Unzip into a folder, and rename it to xerces-c-src so that the include files are in xerces-c-src\include and the lib files in xerces-c-src\lib.

  1. XQilla

This tool provides XPath expressions support for C++. There is currently no binary release, so it must be built from source. It depends on Xerces-C, so you need to make sure you follow the instructions at to make sure the dependency from XQilla to Xerces-C is met. Hint: Unpacking xquilla in the parent folder of xerces-c-src will save you some effort. If you get build errors, double-check your include and linker settings.

Building the SEMAINE API

The build files for the SEMAINE API are located in SEMAINE-2.0\c++\vs2005.

You will need to adapt paths to your setup as follows:

  • Open the project property page by right-clicking the project "semaine" and selecting "Properties".
  • C/C++ settings, the "Additional Include Directories" must contain the following entries:

(i) the source folder of the current project, as "."

(ii) the APR include folder, e.g. C:\Program Files\Apache2\include

(iii) the location of the ActiveMQ-CPP sources, ...activemq-cpp-2.2.1\src\main

(iv) the Xerces include folder, ...\xerces-c-src\include

(v) the XQilla include folder, ...\xqilla\include

  • Linker settings, the "Additional Library Directories" must contain

(i) the location where libapr-1.lib and libaprutil-1.lib can be found, e.g. C:\Program Files\Apache2\lib

(ii) the output folder of ActiveMQ-CPP, containing libactivemq-cppd.lib, e.g. ...\activemq-cpp-2.2.1\vs2005-build\Debug

(iii) the Xerces lib folder, ...\xerces-c-src\lib

(iv) the XQilla lib folder, ...\xqilla\Lib

Building OpenSMILE

The build files and detailed build instructions for Opensmile are located in SEMAINE-2.0\c++\src\tum\auxiliary\build.

Building Greta

The source code of Greta can be obtained from . Greta is easy to build once the environment is set up properly; there is a solution file called GretaApplications\GretaActive\MSVC\GretaActiveAll.sln which will build all sub-projects.

Last modified 8 years ago Last modified on 01/18/10 15:30:10