The two patches address three issues with the mingw compilation for
non-CMake guys.

To start with, the check for wsock lib would make the patch line:
LIBS=($libs -lwsock32)
obsolete (AC_CHECK_LIB is the "right" way to do things). I took a shortcut
to get it working right away.

Following that, adding a check to set HAVE_WINDOWS, HAVE_WIN32_API should
be no problem either. There are several alternatives.

The third issue, on whether to add H5FDwindows.c,h to the build process
would taken care of with CMake with modification of the CMakeLists.txt. But
this file is ignored with a simple autotools build. I don't see how to
avoid the use of the automake conditional in the modified Makefile.am. As
usual, there are several options to resolve the conditional in the
configure script.

regards!

2012/7/19 Allen D Byrne <b...@hdfgroup.org>

> The next release of HDF5 is this fall with the code freeze at the end of
> September.
>
> The current code base in svn (including the cmake branch) already works on
> Windows 7 and mingw using cmake, with the exception of fortran.
> I will work with the autotools experts to review these patches with the
> changes I already made (added check for the wsock lib).
>
> My version of mingw on Windows 7 will not generate the h5pubconf.h file
> properly (verbatim copy of the config.in file),
> and that has prevented me from finishing the support for mingw.
>
> Allen
>
>
> On Wednesday, July 18, 2012 10:51:52 PM Michael Jackson wrote:
> > If we added these features to the CMake scripts would that help also? I
> am
> more of a "CMake Guy" than an autotools guy but I would think adding these
> flags to the CMake files for MinGW would allow one to configure HDF5 with
> CMake
> on MinGW (or MSYS).
> >
> > Thoughts? When is the next release of HDF5 scheduled for? Not sure I am
> going to have time to patch before mid August.
> > ___________________________________________________________
> > Mike Jackson                    Principal Software Engineer
> > BlueQuartz Software                            Dayton, Ohio
> > mike.jack...@bluequartz.net              www.bluequartz.net
> >
> > On Jul 18, 2012, at 6:05 PM, edscott wilson garcia wrote:
> >
> > > 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
> > > _______________________________________________
> > > Hdf-forum is for HDF software users discussion.
> > > Hdf-forum@hdfgroup.org
> > > http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
> >
> >
> > _______________________________________________
> > Hdf-forum is for HDF software users discussion.
> > Hdf-forum@hdfgroup.org
> > http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to