blob: 401422691c5dc356a37a5db78e1c424821554fa7 [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.
The simplest way to resolve these dependencies is to use the copies
included in the Apache UIMA C++ runtime package. Install the
appropriate image and set the UIMACPP_HOME environmental parameter to
the location of the runtime.
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.
To replace one or more of the dependent libraries with different
versions, download and build the component(s) and specify their use
with the environmental parameters APR_HOME, ICU_HOME, XERCES_HOME, and
ACTIVEMQ_HOME, pointing at the install directory for each
component. That is, under each should be lib and include
directories. Additional instructions for building the dependent
libraries are found below.
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.2, autoconf v2.59 and libtool v1.5.6.
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
./fvt.sh
4 Build the documentation:
Note: The documentation build requires Doxygen 1.3.6 or later.
cd $HOME/uimacpp-2.X.Y-incubating/docs
./builddocs.sh
5 Build the SDK tree:
cd $HOME/uimacpp-2.X.Y-incubating
./buildsdk.sh 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
fvt
3 Build the documentation:
Note: The documentation build requires Doxygen 1.3.6 or later.
cd \uimacpp-2.X.Y-incubating\docs
builddocs
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 uimacpp-2.X.Y-incubating-bin.zip
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:
26a27,31
>#if defined(DSO_USE_DYLD)
>#define DSO_USE_DLFCN
>#undef DSO_USE_DYLD
>#endif
>
Building the dependencies: APR, ICU, Xersec-c and Activemq-cpp
--------------------------------------------------------------
Download and build information for these libraries are at:
APR - http://apr.apache.org/
ICU - http://www.icu-project.org/
XERCES - http://xml.apache.org/xerces-c/
ACTIVEMQ - http://activemq.apache.org/cms/download.html
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 activemq-cpp targets needed by uimacpp are ReleaseDLL and DebugDLL.
Disclaimer
-----------
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.