Hi forum,
In order to get hdf5 1.8.9 to compile cleanly with no fuzz on mingw,
just patch two files, configure.in and src/Makefile. Then regenerate
scripts with "aclocal && autoheader && libtoolize && automake && autoconf".
Finally run configure with the option "--with-mingw", compile and enjoy.
The patches are very simple:
**** Patch for configure.in
···
*******************************************
--- /tmp/hdf5-1.8.9/configure.in.old 2012-05-09 10:07:27.000000000 -0500
+++ /tmp/hdf5-1.8.9/configure.in 2012-07-18 16:51:35.000000000 -0500
@@ -49,6 +49,16 @@
dnl rebuild rules.
AM_MAINTAINER_MODE
+AC_ARG_WITH(mingw, [--with-mingw enable compilation with gnu gcc under
mingw])
+AM_CONDITIONAL([WITH_MINGW], [test "$with_mingw" = "yes"])
+if test "$with_mingw" = "yes"; then
+ AC_DEFINE([HAVE_WINDOWS],[1],[Define if the Windows virtual file driver
should be compiled])
+ AC_DEFINE([HAVE_MINGW],[1],[Define if on mingw])
+ AC_DEFINE([HAVE_WIN32_API],[1],[Define if on the Windows platform])
+dnl We also need to add a -lwsock32 to avert _WSAStartup@8 errors
+ LIBS="$LIBS -lwsock32"
+fi
+
dnl Run post processing on files created by configure.
dnl src/H5pubconf.h:
dnl Generate src/H5pubconf.h from src/H5config.h by prepending H5_ to all
**** Patch for src/Makefile.am
*******************************************
--- /tmp/hdf5-1.8.9/src/Makefile.am.old 2012-05-09 10:05:58.000000000
-0500
+++ /tmp/hdf5-1.8.9/src/Makefile.am 2012-07-18 16:54:27.000000000 -0500
@@ -103,6 +103,9 @@
H5Zdeflate.c H5Zfletcher32.c H5Znbit.c H5Zshuffle.c H5Zszip.c \
H5Zscaleoffset.c H5Ztrans.c
+if WITH_MINGW
+ libhdf5_la_SOURCES+=H5FDwindows.c
+endif
# Public headers
include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h
H5version.h \
@@ -115,6 +118,10 @@
H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h \
H5Tpublic.h H5Zpublic.h
+if WITH_MINGW
+ libhdf5_la_SOURCES+=H5FDwindows.h
+endif
+
# install libhdf5.settings in lib directory
settingsdir=$(libdir)
settings_DATA=libhdf5.settings