| |
| 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.3 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: |
| --------------------------------- |
| The library has dependencies on the APR, ICU and Xerces-C++ 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, and XERCES_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 and Xersec-c |
| ------------------------------------------------ |
| Building of libuima.so & uima.dll has been tested with levels of APR up |
| to v1.2.7, levels of Xerces-C++ up to v2.7.0, and levels of ICU up to |
| v3.4. |
| |
| 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/ |
| |
| If APR version 1.x is used on Windows, an additional env parameter |
| must be set: APR_VER=-1 |
| |
| |
| 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. |