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 ./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 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 Makefile.win. 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.