The Java HDF5 interface library and the accompanying hdf5_java.dll JNI library\r
are built without both separately licensed ZLIB and SZIP open source libraries.\r
The native library (DLL) has been compiled with Visual Studio 2015 and dynamic\r
-linking.
\ No newline at end of file
+linking.\r
+\r
+## Building HDF5 Linux native libraries\r
+\r
+Current libraries have been using the 1.10.2 source code release.\r
+\r
+* Get source code from https://www.hdfgroup.org/downloads/hdf5/source-code/\r
+ * The configure-version, not the CMake source\r
+\r
+* Extract source code package\r
+\r
+* According to the build instructions at\r
+ https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.2/src/unpacked/release_docs/INSTALL\r
+ configure the source using:\r
+\r
+ ./configure --enable-java --enable-build-mode=production --without-zlib --without-szlib --disable-sharedlib-rpath\r
+\r
+ and you'll get a listing like this in the end:\r
+\r
+~~~\r
+ SUMMARY OF THE HDF5 CONFIGURATION\r
+ =================================\r
+\r
+General Information:\r
+-------------------\r
+ HDF5 Version: 1.10.2\r
+ Configured on: Fri Apr 6 15:13:51 EEST 2018\r
+ Configured by: lehtonen@dev2\r
+ Host system: x86_64-unknown-linux-gnu\r
+ 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\r
+ Byte sex: little-endian\r
+ Installation point: /home/lehtonen/hdf/hdf5-1.10.2/hdf5\r
+\r
+Compiling Options:\r
+------------------\r
+ Build Mode: production\r
+ Debugging Symbols: no\r
+ Asserts: no\r
+ Profiling: no\r
+ Optimization Level: high\r
+\r
+Linking Options:\r
+----------------\r
+ Libraries: static, shared\r
+ Statically Linked Executables:\r
+ LDFLAGS:\r
+ H5_LDFLAGS:\r
+ AM_LDFLAGS:\r
+ Extra libraries: -ldl -lm\r
+ Archiver: ar\r
+ AR_FLAGS: cr\r
+ Ranlib: ranlib\r
+ \r
+Languages:\r
+----------\r
+ C: yes\r
+ C Compiler: /usr/bin/gcc\r
+ CPPFLAGS:\r
+ H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -DNDEBUG -UH5_DEBUG_API\r
+ AM_CPPFLAGS:\r
+ C Flags:\r
+ 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\r
+ AM C Flags:\r
+ Shared C Library: yes\r
+ Static C Library: yes\r
+\r
+\r
+ Fortran: no\r
+\r
+ C++: no\r
+\r
+ Java: yes\r
+ Java Compiler: /usr/bin/java (openjdk 1.8.0_162)\r
+\r
+\r
+Features:\r
+---------\r
+ Parallel HDF5: no\r
+ High-level library: yes\r
+ Threadsafety: no\r
+ Default API mapping: v110\r
+ With deprecated public symbols: yes\r
+ I/O filters (external):\r
+ MPE: no\r
+ Direct VFD: no\r
+ dmalloc: no\r
+ Packages w/ extra debug output: none\r
+ API tracing: no\r
+ Using memory checker: no\r
+Memory allocation sanity checks: no\r
+ Metadata trace file: no\r
+ Function stack tracing: no\r
+ Strict file format checks: no\r
+ Optimization instrumentation: no\r
+\r
+~~~\r
+\r
+* Build the library and utilities: `make -j -l6`\r
+\r
+* Copy the artifacts from the source tree into this directory:\r
+ * Hdf5 library: `hdf5-1.10.2/src/.libs/libhdf5.so.101`\r
+ * Hdf5 JNI library: `hdf5-1.10.2/java/src/jni/.libs/libhdf5_java.so`\r
+\r
+* IMPORTANT:\r
+ * Linux .so files do not automatically look at the same directory they exist in for required .so files.\r
+ * We can add this behaviour with the "patchelf" commandline tool:\r
+ * apt-get update && apt-get install patchelf\r
+ * patchelf --set-rpath \$ORIGIN libhdf5_java.so\r
+\r
+## Building HDF5 Windows native libraries\r
+\r
+* Get CMake source code for Windows from https://www.hdfgroup.org/downloads/hdf5/source-code/#cmake\r
+* Build instructions are at https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake\r
+ \r
+Here's our version in a nutshell:\r
+ \r
+* Unpack CMake-hdf5-1.10.2.zip and step into the extracted directory \r
+* Edit HDF5options.cmake\r
+ * Release build\r
+ ~~~\r
+ set(CTEST_BUILD_CONFIGURATION "Release")\r
+ ~~~\r
+ * Build shared libraries:\r
+ ~~~\r
+ set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")\r
+ ~~~\r
+ * Disable C++ library:\r
+ ~~~\r
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=OFF")\r
+ ~~~\r
+ * Enable Java:\r
+ ~~~\r
+ #############################################################################################\r
+ #### java enabled ####\r
+ set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=ON")\r
+ #### java disabled ####\r
+ #set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")\r
+ ~~~\r
+ * Disable zlib and szip\r
+ ~~~\r
+ ### disable ext zlib building\r
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")\r
+ ### disable ext szip building\r
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")\r
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")\r
+ ~~~\r
+ * Disable packaging\r
+ ~~~\r
+ #############################################################################################\r
+ ### disable packaging\r
+\r
+ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")\r
+ ### Create install package with external libraries (szip, zlib)\r
+ #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")\r
+ ~~~\r
+* Run build-VS2015-64.bat and wait\r
+* Copy build\bin\hdf5_java.dll into this directory
\ No newline at end of file