UIMA project logo
Apache UIMA C++ Framework
Apache UIMA

Search the site

 Building and Packaging: Apache UIMA C++ Framework

Here you will find more detailed information on platform specific issues and on building the Apache UIMA™ C++ dependencies.

The Apache UIMA C++ SDK has been built and tested in 32-bit mode on Linux systems with gcc version 3.4.6 and on Windows using MSVC version 8. 64-bit builds have only been tested on Linux with gcc 4.3.2 and 4.4.6.

The UIMA C++ SDK has been built with the following versions of these dependencies:

  • APR 1.3.8
  • ICU 3.6
  • XERCES 2.8.0
  • ACTIVEMQ CPP 3.4.1
  • APR-UTIL 1.3.8

If changes are made to configure.ac or Makefile.am, then configure needs to be re-generated by running ./autogen.sh in the root of the SVN extract.

autogen.sh requires GNU tools at or above the following versions: automake v1.9.6, autoconf v2.59 and libtool v1.5.24.

Building the dependencies: APR, APR-Util, ICU, Xerses-c and Activemq-cpp

Download and build information for these libraries are at:

ACTIVEMQ CPP library version 3.2 or higher is required to support the ActiveMQ failover protocol and to support multi-byte payload data. ACTIVEMQ CPP 3.2 and higher has a dependency on APR at version 1.3.8 or higher and APR-Util 1.3.8.

Building, testing and packaging on Mac OSX

These instructions should work on the Max OSX but have not been tested.

Except for one problem with APR, building is the same here as on Linux. For the Intel-based Mac OSX machines we have tested with, the APR function to dynamically load shared libraries does not respect DYLD_LIBRARY_PATH.

A fix is to patch dso/unix/dso.c as follows:

>#if defined(DSO_USE_DYLD)
>#define DSO_USE_DLFCN
>#undef DSO_USE_DYLD

Packaging UIMA C++ annotators:

On Mac OSX, the install names are embedded in the binaries. Run the following steps manually post build to neutralize the embedded name in the UIMA C++ binary and to change the dependency path in the annotator:

  1. changing the install name in libuima, to neutralize it:
    install_name_tool -id libuima.dylib $UIMACPP_HOME/install/lib/libuima.dylib
  2. changing the dependency path in the annotator:
    install_name_tool -change "/install/lib/libuima.dylib"
    "/absolute_path_to_uimacpp_home/install/lib/libuima.dylib" MyAnnotator.dylib