Salome HOME
Copyright update 2021
[tools/configuration.git] / autotools / m4 / check_hdf5.m4
1 dnl Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
2 dnl
3 dnl Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 dnl
6 dnl This library is free software; you can redistribute it and/or
7 dnl modify it under the terms of the GNU Lesser General Public
8 dnl License as published by the Free Software Foundation; either
9 dnl version 2.1 of the License, or (at your option) any later version.
10 dnl
11 dnl This library is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 dnl Lesser General Public License for more details.
15 dnl
16 dnl You should have received a copy of the GNU Lesser General Public
17 dnl License along with this library; if not, write to the Free Software
18 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 dnl
20 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 dnl
22
23 AC_DEFUN([CHECK_HDF5],[
24 AC_REQUIRE([AC_PROG_CC])dnl
25 AC_REQUIRE([AC_PROG_CPP])dnl
26
27 AC_CHECKING(for HDF5)
28
29 AC_ARG_WITH(hdf5,
30     [AC_HELP_STRING([--with-hdf5=DIR],[root directory path to hdf5 installation])],
31     [HDF5HOME="$withval"
32       AC_MSG_RESULT("select $withval as path to hdf5")
33     ])
34
35 AC_SUBST(HDF5_INCLUDES)
36 AC_SUBST(HDF5_LIBS)
37 AC_SUBST(HDF5_MT_LIBS)
38 AC_SUBST(HDF5HOME)
39
40 HDF5_INCLUDES=""
41 HDF5_LIBS=""
42 HDF5_MT_LIBS=""
43
44 hdf5_ok=no
45
46 LOCAL_INCLUDES=""
47 LOCAL_LIBS=""
48 LOCAL_RLIBS=""
49
50 if test -z $HDF5HOME
51 then
52    AC_MSG_WARN(undefined HDF5HOME variable which specify hdf5 installation directory)
53    AC_MSG_NOTICE(Trying native Hdf5...)
54    dnl For Parallel HDF5 test
55    HDF5HOME="/usr" 
56 else
57    LOCAL_INCLUDES="-I$HDF5HOME/include"
58    if test "x$HDF5HOME" = "x/usr"
59    then
60       AC_MSG_NOTICE(Trying native Hdf5...)
61       LOCAL_LIBS=""
62    else
63       AC_MSG_NOTICE(Trying Hdf5 from $HDF5HOME ...)
64       LOCAL_LIBS="-L$HDF5HOME/lib"
65       LOCAL_RLIBS="-Wl,-R$HDF5HOME/lib"
66    fi
67 fi
68
69 if  test "x$hdf5_ok" = "xno"
70 then
71   if  test -e "$HDF5HOME/include/hdf5.h" 
72   then
73     AC_MSG_CHECKING(if hdf5 is parallel and thus needs mpi)
74     hdf5_parallel=`grep "#define H5_HAVE_PARALLEL" $HDF5HOME/include/H5pubconf.h | awk '{i=3 ; print $i}'`
75     if test "x$hdf5_parallel" = "x1"
76     then
77       LOCAL_INCLUDES="-DOMPI_SKIP_MPICXX $MPI_INCLUDES $LOCAL_INCLUDES"
78       AC_MSG_RESULT(yes)
79     else
80       AC_MSG_RESULT(no,hdf5 seems serial)
81     fi
82   else
83     AC_MSG_WARN(File $HDF5HOME/include/hdf5.h not present)
84   fi
85 fi
86
87 dnl hdf5 headers
88
89 CPPFLAGS_old="$CPPFLAGS"
90 CPPFLAGS="$CPPFLAGS $MPI_INCLUDES $LOCAL_INCLUDES"
91 AC_CHECK_HEADER(hdf5.h,hdf5_ok=yes ,hdf5_ok=no)
92 CPPFLAGS="$CPPFLAGS_old"
93
94
95 if  test "x$hdf5_ok" = "xyes"
96 then
97
98 dnl hdf5 library
99
100   LIBS_old="$LIBS"
101   LIBS="$LIBS $MPI_LIBS $LOCAL_LIBS"
102   AC_CHECK_LIB(hdf5,H5open,hdf5_ok=yes,hdf5_ok=no)
103   LIBS="$LIBS_old"
104
105 fi
106
107 if  test "x$hdf5_ok" = "xyes"
108 then
109   HDF5_INCLUDES="$MPI_INCLUDES $LOCAL_INCLUDES"
110   HDF5_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS"
111   HDF5_MT_LIBS="$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS"
112 fi
113
114 if  test "x$hdf5_ok" = "xyes"
115 then
116   HDF5_INCLUDES="$HDF5_INCLUDES -DH5_USE_16_API"
117 fi
118
119 AC_MSG_RESULT(for hdf5: $hdf5_ok)
120
121 ])dnl