X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Fhdf.hdf5lib%2FREADME.md;h=a7a2b9aa73ac2d0b59db3737e2bc396e8e56a8ae;hp=ea6445a44ea8d153fa3e306a29ebf2197bd94d1f;hb=ce3c9f00e2cd5a41c668afb699f294897b6c4b66;hpb=6c06bb2a196d78195dd8699064201c02a6425dc5 diff --git a/bundles/hdf.hdf5lib/README.md b/bundles/hdf.hdf5lib/README.md index ea6445a44..a7a2b9aa7 100644 --- a/bundles/hdf.hdf5lib/README.md +++ b/bundles/hdf.hdf5lib/README.md @@ -1,4 +1,160 @@ The Java HDF5 interface library and the accompanying hdf5_java.dll JNI library are built without both separately licensed ZLIB and SZIP open source libraries. The native library (DLL) has been compiled with Visual Studio 2015 and dynamic -linking. \ No newline at end of file +linking. + +## Building HDF5 Linux native libraries + +Current libraries have been using the 1.10.2 source code release. + +* Get source code from https://www.hdfgroup.org/downloads/hdf5/source-code/ + * The configure-version, not the CMake source + +* Extract source code package + +* According to the build instructions at + https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.2/src/unpacked/release_docs/INSTALL + configure the source using: + + ./configure --enable-java --enable-build-mode=production --without-zlib --without-szlib --disable-sharedlib-rpath + + and you'll get a listing like this in the end: + +~~~ + SUMMARY OF THE HDF5 CONFIGURATION + ================================= + +General Information: +------------------- + HDF5 Version: 1.10.2 + Configured on: Fri Apr 6 15:13:51 EEST 2018 + Configured by: lehtonen@dev2 + Host system: x86_64-unknown-linux-gnu + Uname information: Linux dev2 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux + Byte sex: little-endian + Installation point: /home/lehtonen/hdf/hdf5-1.10.2/hdf5 + +Compiling Options: +------------------ + Build Mode: production + Debugging Symbols: no + Asserts: no + Profiling: no + Optimization Level: high + +Linking Options: +---------------- + Libraries: static, shared + Statically Linked Executables: + LDFLAGS: + H5_LDFLAGS: + AM_LDFLAGS: + Extra libraries: -ldl -lm + Archiver: ar + AR_FLAGS: cr + Ranlib: ranlib + +Languages: +---------- + C: yes + C Compiler: /usr/bin/gcc + CPPFLAGS: + H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -DNDEBUG -UH5_DEBUG_API + AM_CPPFLAGS: + C Flags: + H5 C Flags: -std=c99 -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings -Wlogical-op -Wlarger-than=2048 -Wvla -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants -Wdouble-promotion -Wtrampolines -Wstack-usage=8192 -Wvector-operation-performance -Wdate-time -Warray-bounds=2 -Wc99-c11-compat -fstdarg-opt -s -Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-suggest-attribute=const -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=format -O3 + AM C Flags: + Shared C Library: yes + Static C Library: yes + + + Fortran: no + + C++: no + + Java: yes + Java Compiler: /usr/bin/java (openjdk 1.8.0_162) + + +Features: +--------- + Parallel HDF5: no + High-level library: yes + Threadsafety: no + Default API mapping: v110 + With deprecated public symbols: yes + I/O filters (external): + MPE: no + Direct VFD: no + dmalloc: no + Packages w/ extra debug output: none + API tracing: no + Using memory checker: no +Memory allocation sanity checks: no + Metadata trace file: no + Function stack tracing: no + Strict file format checks: no + Optimization instrumentation: no + +~~~ + +* Build the library and utilities: `make -j -l6` + +* Copy the artifacts from the source tree into this directory: + * Hdf5 library: `hdf5-1.10.2/src/.libs/libhdf5.so.101` + * Hdf5 JNI library: `hdf5-1.10.2/java/src/jni/.libs/libhdf5_java.so` + +* IMPORTANT: + * Linux .so files do not automatically look at the same directory they exist in for required .so files. + * We can add this behaviour with the "patchelf" commandline tool: + * apt-get update && apt-get install patchelf + * patchelf --set-rpath \$ORIGIN libhdf5_java.so + +## Building HDF5 Windows native libraries + +* Get CMake source code for Windows from https://www.hdfgroup.org/downloads/hdf5/source-code/#cmake +* Build instructions are at https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake + +Here's our version in a nutshell: + +* Unpack CMake-hdf5-1.10.2.zip and step into the extracted directory +* Edit HDF5options.cmake + * Release build + ~~~ + set(CTEST_BUILD_CONFIGURATION "Release") + ~~~ + * Build shared libraries: + ~~~ + set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON") + ~~~ + * Disable C++ library: + ~~~ + set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=OFF") + ~~~ + * Enable Java: + ~~~ + ############################################################################################# + #### java enabled #### + set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=ON") + #### java disabled #### + #set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF") + ~~~ + * Disable zlib and szip + ~~~ + ### disable ext zlib building + set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF") + ### disable ext szip building + set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF") + set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF") + ~~~ + * Disable packaging + ~~~ + ############################################################################################# + ### disable packaging + + set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON") + ### Create install package with external libraries (szip, zlib) + #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") + ~~~ +* Run build-VS2015-64.bat and wait +* Copy build\bin\hdf5_java.dll into this directory \ No newline at end of file