@@ -20,145 +20,88 @@ AC_SUBST([VERSION_MAJOR])
20
20
AC_SUBST ( [ VERSION_MINOR] )
21
21
AC_SUBST ( [ VERSION_PATCH] )
22
22
23
- # Checks for programs.
23
+
24
+
25
+ # # -------------------
26
+ # # Checks for programs
27
+ # # -------------------
28
+
24
29
AC_LANG ( C )
25
30
AC_PROG_CC
26
- # Make sure the c compiler supports C99
31
+
32
+ # C99 support
27
33
m4_version_prereq ( [ 2.70] ,[ ] , [ AC_PROG_CC_C99 ] )
28
- AS_IF ( [ test "$ac_cv_prog_cc_c99" = "no"] , [ AC_MSG_ERROR ( [ The compiler does not support C99] ) ] )
34
+ AS_IF ( [ test "$ac_cv_prog_cc_c99" = "no"] ,
35
+ [ AC_MSG_ERROR ( [ The compiler does not support C99] ) ] )
29
36
AC_PROG_CC_C_O
30
37
38
+ # Fortran
31
39
AC_PROG_FC
32
40
AC_FC_FREEFORM
33
41
AC_FC_SRCEXT ( [ f90] )
34
-
35
42
AC_PROG_FC_C_O
43
+ AC_FC_LIBRARY_LDFLAGS
44
+
45
+ # pkg-config
46
+ PKG_PROG_PKG_CONFIG()
47
+ PKG_CFLAGS=""
48
+
36
49
AC_PROG_INSTALL
37
50
AC_PROG_LIBTOOL
38
51
AC_PROG_LN_S
39
- PKG_PROG_PKG_CONFIG()
40
- PKG_LIBS=""
41
- PKG_CFLAGS=""
42
52
43
- AC_FC_LIBRARY_LDFLAGS
44
53
54
+ # # ---------
55
+ # # Libraries
56
+ # # ---------
57
+
58
+ # Checks for basic header files.
59
+ AC_CHECK_HEADERS ( [ fcntl.h inttypes.h stdint.h stdlib.h string.h unistd.h] )
45
60
46
61
62
+ # ## HDF5
63
+ # ## ----
64
+
47
65
# Configure with HDF5 (default: --with-hdf5 using pkg-config) [optional]:
48
66
# ./configure [--with-hdf5 or --with-hdf5=yes]
67
+
49
68
# Configure with user-provided path to HDF5:
50
69
# ./configure --with-hdf5=/usr/lib/x86_64-linux-gnu/hdf5/serial
70
+
51
71
# Configure without HDF5:
52
72
# ./configure --without-hdf5 [or --with-hdf5=no]
53
73
54
- # when configure complains about missing install-sh or install.sh, execute:
55
- # automake --add-missing --copy
56
-
57
- # Checks for basic libraries.
58
- AC_CHECK_LIB ( [ m] , [ sqrt] )
59
- # Checks for basic header files.
60
- AC_CHECK_HEADERS ( [ fcntl.h inttypes.h stdint.h stdlib.h string.h unistd.h] )
61
-
62
- # Search for pthread
63
- have_pthreads=no
64
- AC_SEARCH_LIBS ( [ pthread_create] , [ pthread] , [ have_pthreads=yes] )
65
-
66
- if test "x${have_pthreads}" = xyes; then
67
- AC_CHECK_HEADERS ( [ pthread.h] , [ ] , [ have_pthreads=no] )
68
- PKG_LIBS="${PKG_LIBS} -lpthread"
69
- fi
70
-
71
- if test "x${have_pthreads}" = xno; then
72
- AC_MSG_ERROR ( [
73
- ------------------------------------------
74
- The pthread library and header file
75
- required to build TREXIO. Stopping...
76
- Check 'config.log' for more information.
77
- ------------------------------------------] )
78
- fi
79
-
80
- AC_ARG_WITH ( [ hdf5] ,
81
- AS_HELP_STRING ( [ --with-hdf5] ,
82
- [ Include HDF5 functionality @<:@ default: yes@:>@ ] ) ],
83
- [ hdf5=${withval}] ,
84
- [ hdf5=yes] )
85
74
86
75
PKG_HDF5=""
87
- if test "x${hdf5}" = xno; then
76
+ AX_LIB_HDF5 ( [ serial] )
77
+
78
+ if test "x${with_hdf5}" = xno; then
88
79
AC_MSG_WARN ( [
89
80
------------------------------------------
90
81
Configuring with the HDF5 library is
91
82
recommended to build efficient TREXIO.
92
83
------------------------------------------] )
84
+ fi
93
85
94
- elif test "x${hdf5}" = xyes; then
86
+ CFLAGS="${HDF5_CFLAGS} ${CFLAGS}"
87
+ CPPFLAGS="${HDF5_CPPFLAGS} ${CPPFLAGS}"
88
+ LDFLAGS="${HDF5_LDFLAGS} ${LDFLAGS}"
89
+ LIBS="${HDF5_LIBS} ${LIBS}"
95
90
96
- # Check if HDF5 is already configured (e.g. after calling `module load hdf5-<version>`)
97
- AC_CHECK_HEADERS ( [ hdf5_hl.h] )
98
- AC_CHECK_LIB ( [ hdf5_hl] , [ H5LTfind_dataset] , [ ] , [ have_hdf5_hl=no] )
99
91
100
- AC_CHECK_HEADERS ( [ hdf5.h] )
101
- AC_CHECK_LIB ( [ hdf5] , [ H5open] , [ ] , [ have_hdf5=no] )
92
+ # Check if hdf5 if available with pkg-config
102
93
103
- if test "x${have_hdf5}" = xno; then
104
- # If HDF5 is not configured, try using pkg-config
105
- PKG_CHECK_MODULES([ HDF5] , [ hdf5 >= 1.8] )
106
- CFLAGS="$(pkg-config --cflags hdf5) ${CFLAGS}"
107
- LDFLAGS="$(pkg-config --libs hdf5) -lhdf5_hl ${LDFLAGS}"
94
+ PKG_CHECK_MODULES([ HDF5] , [ hdf5 >= 1.8] , [
108
95
PKG_HDF5="hdf5"
109
- PKG_LIBS="${PKG_LIBS} -lhdf5_hl"
110
- else
96
+ ] ,[
111
97
PKG_HDF5=""
112
- PKG_LIBS="${PKG_LIBS} ${HDF5_LIBS} -lhdf5_hl"
113
- PKG_CFLAGS="${PKG_CFLAGS} ${HDF5_CFLAGS}"
114
- CFLAGS="${HDF5_LIBS} ${CFLAGS}"
115
- LDFLAGS="${HDF5_CFLAGS} -lhdf5_hl ${LDFLAGS}"
116
- fi
117
-
118
- else
119
-
120
- if test "x${hdf5}" = x; then
121
- AC_MSG_ERROR ( [
122
- ------------------------------------------
123
- The path to HDF5 library is required.
124
- Maybe you forgot to pass --with-hdf5="/your/path/" to configure script.
125
- Stopping...
126
- ------------------------------------------] )
127
- fi
128
-
129
- CPPFLAGS="-I${hdf5}/include ${CPPFLAGS}"
130
- LDFLAGS="-L${hdf5} ${LDFLAGS}"
98
+ ] )
99
+ PKG_CFLAGS="${PKG_CFLAGS}"
131
100
132
- AC_CHECK_HEADERS ( [ hdf5_hl.h] )
133
- AC_CHECK_LIB ( [ hdf5_hl] , [ H5LTfind_dataset] , [ ] , [ have_hdf5_hl=no] )
134
-
135
- AC_CHECK_HEADERS ( [ hdf5.h] )
136
- AC_CHECK_LIB ( [ hdf5] , [ H5open] , [ ] , [ have_hdf5=no] )
137
-
138
- PKG_HDF5=""
139
- PKG_LIBS="${PKG_LIBS} -L${hdf5} -lhdf5_hl"
140
- PKG_CFLAGS="${PKG_CFLAGS} -I${hdf5}/include"
141
- fi
142
101
AC_SUBST ( [ PKG_HDF5] )
143
- AC_SUBST ( [ PKG_LIBS] )
144
102
AC_SUBST ( [ PKG_CFLAGS] )
145
103
146
104
147
- # add -fPIC if not present in CFLAGS, necessary to compile TREXIO
148
- # TODO: replace with AM_CFLAGS for appropriate targer once Automake is introduced
149
- case "${CFLAGS}" in
150
- *-fPIC*)
151
- ;;
152
- *)
153
- AC_MSG_WARN ( [
154
- ------------------------------------------
155
- Adding -fPIC option to CFLAGS.
156
- This is necessary to build TREXIO.
157
- ------------------------------------------] )
158
- CFLAGS="${CFLAGS} -fPIC"
159
- ;;
160
- esac
161
-
162
105
# Checks for typedefs, structures, and compiler characteristics.
163
106
AC_TYPE_INT32_T
164
107
AC_TYPE_INT64_T
@@ -194,6 +137,19 @@ if test "x${TREXIO_DEVEL}" != "x"; then
194
137
195
138
fi
196
139
140
+ # # Libm
141
+ # # ----
142
+
143
+ AC_SEARCH_LIBS ( [ sqrt] , [ m] , [ ] , AC_MSG_ERROR ( [ The libm library is required] ) )
144
+ AC_CHECK_HEADERS ( [ math.h] )
145
+
146
+ # ## pthread
147
+ # ## -------
148
+
149
+ AC_SEARCH_LIBS ( [ pthread_create] , [ pthread] , [ ] , AC_MSG_ERROR ( [ The pthread library is required] ) )
150
+ AC_CHECK_HEADERS ( [ pthread.h] )
151
+
152
+
197
153
AC_CONFIG_FILES ( [ Makefile
198
154
pkgconfig/trexio.pc] )
199
155
AC_OUTPUT
@@ -203,23 +159,22 @@ echo \
203
159
204
160
${PACKAGE_NAME} Version ${PACKAGE_VERSION} ${TREXIO_DEVEL}
205
161
206
- Prefix: '${prefix}'.
207
-
208
- CC: ${CC}
209
- CPPFLAGS: ${CPPFLAGS}
210
- CFLAGS: ${CFLAGS}
211
- FC: ${FC}
212
- FCLAGS: ${FCFLAGS}
213
- LDFLAGS: ${LDFLAGS}
214
- LIBS: ${LIBS}
162
+ Prefix ........: ${prefix}
163
+ CC ............: ${CC}
164
+ CPPFLAGS ......: ${CPPFLAGS}
165
+ CFLAGS ........: ${CFLAGS}
166
+ FC ............: ${FC}
167
+ FCLAGS ........: ${FCFLAGS}
168
+ LDFLAGS .......: ${LDFLAGS}
169
+ LIBS ..........: ${LIBS}
215
170
216
171
Package features:
217
- Compilation with HDF5: ${hdf5 }
172
+ Compilation with HDF5: ${with_hdf5 }
218
173
219
174
Now type 'make @<:@<target>@:>@'
220
175
where the optional <target> is:
221
- all - build C and Fortran APIs
222
- check - check C and Fortran APIs
223
- clean - clean the produced files
176
+ all - build C library and Fortran binding
177
+ check - run unit tests
178
+ install - install the library
224
179
--------------------------------------------------"
225
180
0 commit comments