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:
bin/buildall.sh
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.
Java
The SEMAINE-2.0-java components require Java 1.6.
To recompile Java code, get the Java Software Development Kit (JDK) from http://java.sun.com/javase/downloads/index.jsp, as well as the ant build tool, available from http://ant.apache.org/. 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 http://mary.dfki.de -- the MARY 4.0 installer includes an optional source package. Alternatively, the source code is available by anonymous svn as described on http://mary.opendfki.de. To compile, run ant in the top-level MARY directory.
Windows
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
- Microsoft Visual C++ 2005 Express Service Pack 1. You can get Visual C++ 2005 Express Edition for free from http://www.microsoft.com/express/2005/. In detail, you need the following files:
- Visual C++ 2005 Express Installer;
- Visual C++ 2005 Express Service Pack 1;
- (if you are running Vista) Vista update for SP1.
- Microsoft Platform SDK. Get it from http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en .
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
- ActiveMQ-CPP
This is the C++ client for the Java Messaging Service server ActiveMQ. Download ActiveMQ-CPP from http://activemq.apache.org/cms/. 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 http://httpd.apache.org/download.cgi. 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.
- Xerces-C
This is a standards-compliant XML parser. Install Xerces-C from http://xerces.apache.org/xerces-c/. Binary releases exist for very many platforms. For windows, you must use xerces-c-3.0.1-x86-windows-vc-8.0.zip. 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.
- 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 http://xqilla.sourceforge.net/WindowsBuild 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 https://trac.telecom-paristech.fr/trac/project/greta/downloader/ . 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.