| |
| 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. |