blob: b99281a9241b3cf9bca298167e88a4495fd5cbb2 [file] [log] [blame]
See the NOTICE file for licensing information.
Building the Apache UIMA C++ SDK
The Apache UIMA C++ SDK has been built and tested in 32-bit mode
on Linux systems with gcc versions from 3.2.4 to 4.1.0, on Windows
using MSVC version 8, and on MacOSX with gcc version 4.0.1.
64-bit builds have only been tested on Linux with gcc 4.1.0.
Setting up the build environment:
UIMACPP has dependencies on APR, ICU, Xerces-C and ActiveMQ-cpp
libraries. Dependent libraries must be specified with the
environmental parameters APR_HOME, ICU_HOME, XERCES_HOME and
ACTIVEMQ_HOME. For now, the ActiveMQ dependency is optional; if not
specified the UIMA-AS compatible service wrapper deployCppService will
fail to build.
There is also a dependency on JNI headers from a Java JDK. The build
looks for these headers in the directory specified by JAVA_INCLUDE.
A typical setting for JAVA_INCLUDE on Linux or Windows would be
$JAVA_HOME/include; on MacOSX jni.h and the other headers will be in a
"Headers" directory.
On Unix, dependent headers are expected under $dependent_HOME/include and
dependent libraries under $dependent_HOME/lib.
The build of dependent libraries on Windows is less consistent.
APR libraries are expected in %APR_HOME%\Release. ActiveMQ libraries
are in %ACTIVEMQ_HOME%\vs2005-build\ReleaseDLL (or DebugDLL) and
ActiveMQ headers are expected in %ACTIVEMQ_HOME%\src\main.
On Windows, buildsdk command tries to copy the msvc*.dll runtime libs from
C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT
To override the location for MSCV redistributable libraries, use MSVCRT_HOME.
Building, testing and packaging on Linux:
Set up your environment as described above. The following instructions
assume you have unpacked the source into $HOME/uimacpp-2.X.Y-incubating.
1 Create the GNU automake scripts:
Note: This step is only done when building from an SVN extract;
it should be skipped when building from a source tarball.
The prebuild step requires relatively up-to-date GNU tools
GNU automake v1.9.6, autoconf v2.59 and libtool v1.5.24.
cd $HOME/uimacpp-2.X.Y-incubating/src
make -f Makefile.prebuild
2 Build the UIMA shared library and test routines:
cd $HOME/uimacpp-2.X.Y-incubating/src
make -f Makefile.unix install
3 Run the test suite:
cd $HOME/uimacpp-2.X.Y-incubating/src/test
4 Build the documentation:
Note: The documentation build requires Doxygen 1.3.6 or later.
cd $HOME/uimacpp-2.X.Y-incubating/docs
5 Build the SDK tree:
cd $HOME/uimacpp-2.X.Y-incubating
./ target_dir
6 Package the SDK tarball:
cd target_dir
tar czf uimacpp-2.X.Y-incubating-bin.tgz uimacpp
Building, testing and packaging on Windows:
Set up your environment as described above. The following instructions
assume you have unpacked the source into \uimacpp-2.X.Y-incubating.
1 Build the UIMA C++ framework in both release and debug:
cd \uimacpp-2.X.Y-incubating\src
winmake /build release
winmake /build debug
2 Build and run the test suite:
cd \uimacpp-2.X.Y-incubating\src\test
devenv test.sln /build release
3 Build the documentation:
Note: The documentation build requires Doxygen 1.3.6 or later.
cd \uimacpp-2.X.Y-incubating\docs
4 Build the SDK tree:
set MSVCRT_HOME to the directory with the msvc*.dll files required.
cd \uimacpp-2.X.Y-incubating
buildsdk target_dir
5 Package the SDK zipfile by creating a compressed folder of
target_dir\uimacpp into
Building, testing and packaging on Mac OSX:
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
Building the dependencies: APR, ICU, Xersec-c and Activemq-cpp
Download and build information for these libraries are at:
For UNIX users that cannot or do not want to install these at
system root, specify DESTDIR for the install step. For example,
after building APR, install using:
DESTDIR=`pwd` make install
On Windows, the only activemq-cpp targets needed by uimacpp are ReleaseDLL and DebugDLL,
e.g. devenv vs2005-build/vs2005-activemq.vcproj /build ReleaseDLL
Also, the APR library can be built by launching libapr.dsp or by following the
instructions in
Apache UIMA is an effort undergoing incubation at The Apache Software
Foundation (ASF). Incubation is required of all newly accepted projects
until a further review indicates that the infrastructure, communications,
and decision making process have stabilized in a manner consistent with
other successful ASF projects. While incubation status is not necessarily
a reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF.