configure.ac 19 KB
Newer Older
1
#  Process this file with autoconf to produce a configure script.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
2
3
4
5
#
#  automake 1.14
#  autoconf 2.68
#  libtool  2.4.2
Uwe Schulzweida's avatar
Uwe Schulzweida committed
6

7
AC_INIT([cdi], [1.9.4rc1], [http://mpimet.mpg.de/cdi])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
8

9
10
AC_DEFINE_UNQUOTED(CDI, ["$PACKAGE_VERSION"], [CDI version])

Uwe Schulzweida's avatar
Uwe Schulzweida committed
11
12
echo "configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}"

Uwe Schulzweida's avatar
Uwe Schulzweida committed
13
CONFIG_ABORT=yes
14
15
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([m4])
16
17
dnl forbid acx macro names from remaining unexpanded
m4_pattern_forbid([^ACX_])
18
19
20
AC_CANONICAL_HOST
AC_CANONICAL_BUILD

Uwe Schulzweida's avatar
Uwe Schulzweida committed
21

Uwe Schulzweida's avatar
Uwe Schulzweida committed
22
AM_INIT_AUTOMAKE([foreign serial-tests])
23
AC_CONFIG_HEADERS([src/config.h])
24
25
26
27
AM_MAINTAINER_MODE([disable])

# Check building environment
AC_CHECK_TOOL([CC],[gcc],[:])
28
AC_PROG_CC_C99
29
30
dnl verify the setup supports POSIX 2001
ACX_PROG_CC_POSIX([2001])
31
AM_PROG_CC_C_O
32
AC_C_RESTRICT
33
AC_PROG_FC
34
AS_IF([test -n "$FC" && test "X$FC" != Xno],
35
36
37
38
  [AC_FC_SRCEXT([f90])
   AC_LANG_PUSH([Fortran])
   AC_PROG_FPP
   AC_LANG_POP([Fortran])])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
39
AC_PROG_F77
40
41
AC_PROG_CXX
AC_PROG_INSTALL
42
43
44
45
46
47
48
49
50
51
52

# Set up libtool.
AC_MSG_NOTICE([setting up libtool])
dnl before switching on libtool, identify compilers that prevent us from
dnl certain build configurations
ACX_LT_PROBLEMS
LT_INIT([pic-only])
dnl _KPSE_USE_LIBTOOL ensures libtool is also used for configure-time tests,
dnl which deduces dependent libraries automatically
_KPSE_USE_LIBTOOL

53
54
55
# -----------------------------------------------------------------------
# Check endianess of system
AC_C_BIGENDIAN
56
57
#  ----------------------------------------------------------------------
# Check large file support on 32 bit systems
Uwe Schulzweida's avatar
Uwe Schulzweida committed
58
AC_SYS_LARGEFILE
59
60
#  ----------------------------------------------------------------------
# Checks for library functions.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
61
AC_FUNC_MMAP
62
63
#  ----------------------------------------------------------------------
# Checks for library malloc.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
64
AC_CHECK_LIB(malloc, malloc)
65
#  ----------------------------------------------------------------------
66
67
# Checks for structures.
AC_CHECK_MEMBERS([struct stat.st_blksize])
68
#  ----------------------------------------------------------------------
Uwe Schulzweida's avatar
Uwe Schulzweida committed
69
# Checks for header files
70
71
AC_CHECK_HEADERS([malloc.h uuid.h uuid/uuid.h])
AX_EXECINFO
72
#  ----------------------------------------------------------------------
Uwe Schulzweida's avatar
Uwe Schulzweida committed
73
# Checks for the availability of functions
74
75
AC_CHECK_FUNCS([mallinfo])
AC_CHECK_FUNCS([getline])
76
77
78
79
80
81
82
AC_ARG_ENABLE([util-linux-uuid],
  [AS_HELP_STRING([--disable-util-linux-uuid],
     [Do not test for the util-linux UUID library, use OSSP or DCE versions instead])],,
  [enable_util_linux_uuid=auto])
AS_IF([test x"${enable_util_linux_uuid}" != xno],
  [ACX_C_PACKAGE([util-linux-uuid],[uuid/uuid.h],,,[],
     [uuid_generate],[[uuid]],,,[])])
83
84
85
86
87
88
89
90
91
92
93
AS_IF([test x"$have_util_linux_uuid_c_bindings" = xyes],
  [CPPFLAGS="${CPPFLAGS+$CPPFLAGS }$UTIL_LINUX_UUID_C_INCLUDE"
   UUID_C_LIB=$UTIL_LINUX_UUID_C_LIB],
  [ACX_C_PACKAGE([ossp-uuid],[uuid.h],,[-I/usr/include/ossp],[],
     [uuid_create],[[ossp-uuid]],,,[])
   AS_IF([test x"$have_ossp_uuid_c_bindings" = xyes],
     [CPPFLAGS_save=$CPPFLAGS
      CPPFLAGS="${CPPFLAGS+$CPPFLAGS }$OSSP_UUID_C_INCLUDE"
      UUID_C_LIB=$OSSP_UUID_C_LIB
      AC_CHECK_HEADERS([uuid.h],
        [AC_CHECK_DECLS([uuid_create],
94
95
           [AC_CHECK_DECLS([UUID_MAKE_V5],,[have_ossp_uuid_c_bindings=no],
              [AC_INCLUDES_DEFAULT
96
97
98
99
100
101
102
103
104
@%:@include <uuid.h>])],[have_ossp_uuid_c_bindings=no],
           [AC_INCLUDES_DEFAULT
@%:@include <uuid.h>])],[have_ossp_uuid_c_bindings=no])
      AS_IF([test x"$have_ossp_uuid_c_bindings" = xno],
        [UUID_C_LIB=
         CPPFLAGS=$CPPFLAGS_save])],
     [AC_CHECK_LIB([uuid],[uuid_generate],
        [AC_CHECK_DECLS([uuid_generate],
           [UUID_C_LIB=-luuid],,[AC_INCLUDES_DEFAULT
105
@%:@include <uuid/uuid.h>])],
106
107
108
109
        [AC_CHECK_FUNCS([uuid_create],
           [AC_CHECK_DECLS([uuid_create],
           [UUID_C_LIB=""],,[AC_INCLUDES_DEFAULT
@%:@include <uuid.h>])])])])])
110
AC_SUBST([UUID_C_LIB])
111
#  ----------------------------------------------------------------------
112
# Checks for the availability of ANSI-C99 functions
113
114
AC_CHECK_DECLS([isnan],,,[AC_INCLUDES_DEFAULT
@%:@include <math.h>])
115

116
117
118
119
120
# check for sysconf names
AC_CHECK_DECLS([_SC_LARGE_PAGESIZE, PAGESIZE, PAGE_SIZE, _SC_PAGE_SIZE, dnl
_SC_PAGESIZE, _PC_REC_XFER_ALIGN, POSIX_REC_XFER_ALIGN],,,[AC_INCLUDES_DEFAULT
@%:@include <limits.h>
@%:@include <unistd.h>])
Thomas Jahns's avatar
Thomas Jahns committed
121
122
#
# Check for non-standard builtin
123
124
125
126
127
128
129
130
131
132
133
134
135
AS_FOR([builtin_macro],[builtin],[__builtin_ctz],
  [AS_VAR_PUSHDEF([builtin_cache],[acx_cv_have_decl_]builtin_macro)
   AC_CACHE_CHECK([whether ]builtin_macro[ is declared],
     [builtin_cache],
     [AC_LINK_IFELSE([AC_LANG_PROGRAM(,[  unsigned lbz = builtin_macro][[(56U)]])],
        [AS_VAR_SET([builtin_cache],[yes])],
        [AS_VAR_SET([builtin_cache],[no])])])
   AS_VAR_IF([builtin_cache],[yes],
     [AC_DEFINE_UNQUOTED([HAVE_DECL_]AS_TR_CPP([builtin_macro]),[1])
      break],
     [AC_DEFINE_UNQUOTED([HAVE_DECL_]AS_TR_CPP([builtin_macro]),[0])])])
AH_TEMPLATE([HAVE_DECL___BUILTIN_CTZ],
  [Define to 1 if __builtin_ctz is available, 0 if not])
Thomas Jahns's avatar
Thomas Jahns committed
136

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# Check compiler version
case "$CC" in
  pgcc*)  COMP_VERSION=`$CC -V | head -2 | tail -n 1`;;
  *gcc*)  COMP_VERSION=`$CC --version | head -n 1`;;
  g++*)   COMP_VERSION=`$CC --version | head -n 1`;;
  clang*) COMP_VERSION=`$CC --version | head -n 1`;;
  sxc*)   COMP_VERSION=`$CC -V 2>&1   | tail -n 1`;;
  xlc*)   COMP_VERSION=`$CC -qversion 2>&1   | head -n 1`;;
  *)      COMP_VERSION=`$CC -V 2>&1   | head -n 1`;;
esac

if test -z "$COMP_VERSION" ; then COMP_VERSION="unknown"; fi;
AC_DEFINE_UNQUOTED(COMP_VERSION, ["$COMP_VERSION"], [Compiler version])

# Checks for username, hostname and system type
USERNAME=$LOGNAME
if test -z "$USERNAME" ; then USERNAME=$USER; fi;
if test -z "$USERNAME" ; then USERNAME="unknown"; fi;
AC_DEFINE_UNQUOTED([USER_NAME],["$USERNAME"], [User name])
AC_SUBST([USER_NAME],["$USERNAME"])

AS_IF([test -z "$HOST"],
      [HOST=unknown
       AS_IF([test -x /bin/hostname],[HOST=$(hostname)],
             [AS_IF([test -x /bin/uname],
                    [HOST=$(uname -n)])])])
AC_DEFINE_UNQUOTED([HOST_NAME],["$HOST"],[Host name])
AC_SUBST([HOST_NAME],["$HOST"])

AC_DEFINE_UNQUOTED([SYSTEM_TYPE],["$ac_cv_build"], [System type])
AC_SUBST([SYSTEM_TYPE],["$ac_cv_build"])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
168
169
170
171
#  ----------------------------------------------------------------------
#  Check for math library
AC_CHECK_LIB(m, floor)
#  ----------------------------------------------------------------------
172
173
# Add basic configure options
ACX_OPTIONS
174
AM_CONDITIONAL([ENABLE_NETCDF],[test x$ENABLE_NETCDF = xyes])
175
AC_CHECK_FUNCS([grib_get_length])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
176
#  ----------------------------------------------------------------------
177
# Compile with MPI support
178
179
180
181
182
183
184
185
186
187
188
189
190
AC_ARG_ENABLE([mpi],
  AS_HELP_STRING([--enable-mpi],
    [Compile with MPI compiler @<:@default=no@:>@]),
    [enable_mpi=yes
     ACX_C_PACKAGE([MPI],[mpi.h],,,
       [AC_MSG_FAILURE([Required header mpi.h not found or not compilable.])
        enable_MPI=no],[MPI_Waitall],[mpi mpich],,,
       [AC_MSG_FAILURE([Cannot link C MPI programs.])
        enable_MPI=no])
     AS_IF([test -n "$FC" && test "X$FC" != "Xno"],
       [ACX_FORTRAN_PACKAGE([MPI], [mpif.h],,,
          [AC_MSG_FAILURE([Required include mpif.h not found or not compilable.])
           enable_MPI=no],[mpi_waitall],
191
          [mpi mpi_f90 mpi_f77 mpich],[[-lmpi_f77 -lmpi],[-lmpi]],,
192
193
194
          [AC_MSG_FAILURE([Cannot link Fortran MPI programs.])
           enable_MPI=no],[])])],
    [enable_mpi=no])
195
196
AS_IF([test x"${enable_mpi}" = x"yes"],
      [USE_MPI=yes])
197
HAVE_PARALLEL_NC4=0
198
enable_ppm=no
199
AS_IF([test x"$USE_MPI" = xyes],
200
  [AC_DEFINE([USE_MPI],[1],[parallel I/O requested and available])
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
   AC_PATH_PROGS([MPI_LAUNCH],[mpirun mpiexec],[true])
   AS_IF([test x"$cross_compiling" = xno],
     [AC_MSG_CHECKING([if $MPI_LAUNCH works])
      saved_CFLAGS=$CFLAGS
      saved_LIBS=$LIBS
      CFLAGS="$CFLAGS $MPI_C_INCLUDE"
      LIBS="$LIBS $MPI_C_LIB"
      AC_LINK_IFELSE([AC_LANG_SOURCE([
@%:@include <stdio.h>
@%:@include <stdlib.h>

@%:@include <mpi.h>

@%:@define xmpi(ret)           \\
  do {                      \\
    if (ret != MPI_SUCCESS) \\
      exit(EXIT_FAILURE);   \\
  } while (0)

int
main(int argc, char **argv)
{
  xmpi(MPI_Init(&argc, &argv));
  char *numarg = argv@<:@1@:>@;
  int cmdnum = atoi(numarg);
  int procnum = 1;
  xmpi(MPI_Allreduce(MPI_IN_PLACE, &procnum, 1, MPI_INT, MPI_SUM,
                     MPI_COMM_WORLD));
  xmpi(MPI_Finalize());
  return (procnum == cmdnum)?EXIT_SUCCESS:EXIT_FAILURE;
}
])],
         [AS_IF([$MPI_LAUNCH -n 4 ./conftest$EXEEXT 4],
            [AC_MSG_RESULT([yes])],
            [AC_MSG_RESULT([no])
             AC_MSG_FAILURE([mpirun doesn't work])])],
         [AC_MSG_FAILURE([Cannot compile simple MPI program])])
      CFLAGS=$saved_CFLAGS
      LIBS=$saved_LIBS
     ])
   AS_IF([test "x$MPI_LAUNCH" = xtrue],
     [AC_MSG_WARN([MPI launch command unavailable])])

244
245
246
   PKG_CHECK_MODULES([YAXT],[yaxt],
     [AC_DEFINE([HAVE_YAXT],,[yaxt library is available])],
     [AC_MSG_FAILURE([Required yaxt library unavailable.])])
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
   AS_IF([test x"$ENABLE_NC4" = xyes],
     [AC_CHECK_HEADERS([netcdf_par.h],
        [AC_CHECK_DECL([MPI_Bcast],
           [HAVE_PARALLEL_NC4=1],
           [AC_MSG_WARN([The supplied netCDF library does not support MPI parallel invocations])],
           [AC_INCLUDES_DEFAULT
@%:@include <netcdf_par.h>])],
        [AC_CHECK_DECL([MPI_Bcast],
           [HAVE_PARALLEL_NC4=1],
           [AC_MSG_WARN([The supplied netCDF library does not support MPI parallel invocations])],
           [AC_INCLUDES_DEFAULT
@%:@include <netcdf.h>])
])
      dnl parallel netCDF support still requires ScalES-PPM and YAXT to
      dnl re-arrange the data when running with more than one collector
262
263
264
265
266
267
      PKG_CHECK_MODULES([PPM_CORE],[scales-ppm-core],
        [enable_ppm=yes
         AC_DEFINE([HAVE_PPM_CORE],,
           [ScalES PPM C core library is available])
        ],
        [enable_ppm=no])
268
269
      dnl if not both scales-ppm and yaxt are available, netcdf can only be
      dnl used in serial mode
270
      AS_IF([test x$enable_ppm != xyes],
271
272
273
        [HAVE_PARALLEL_NC4=0])
     ])
  ],
274
275
  [MPI_LAUNCH="`pwd`/util/serialrun"
   AC_SUBST([MPI_LAUNCH])])
276
277
278
279
AS_IF([test $HAVE_PARALLEL_NC4 -gt 0],
  [AC_DEFINE([HAVE_PARALLEL_NC4],[1],
             [netCDF library does support MPI parallel invocations])])
AC_SUBST([HAVE_PARALLEL_NC4])
280
AM_CONDITIONAL([USE_MPI],[test x"$USE_MPI" = xyes])
281
AM_CONDITIONAL([USE_PPM_CORE],[test $enable_ppm = yes])
282
AM_CONDITIONAL([HAVE_PARALLEL_NC4],[test $HAVE_PARALLEL_NC4 -gt 0])
283
AC_SUBST([USE_MPI])
284
AC_SUBST([ENABLE_MPI],[`test x"$enable_mpi" = xyes && echo true || echo false`])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
285
286
#  ----------------------------------------------------------------------
#  Create the Fortran Interface via iso_c_binding module (Fortran 2003 Standard)
287
288
289
290
#
# the test for ruby itself is unconditional because ruby is also used in
# the Fortran 2003 ISO C generator
AC_CHECK_PROG([RUBY],[ruby],[ruby])
Thomas Jahns's avatar
Thomas Jahns committed
291
292
293
294
295
AC_ARG_ENABLE([iso-c-interface],
              [AS_HELP_STRING([--enable-iso-c-interface],
                 [Create Fortran Interface via iso_c_bindings facility of F2003 [default=no].])],
              [enable_isoc=${enableval}],[enable_isoc=no])
AS_IF([test x"$enable_isoc" = xyes],
296
  [ACX_FC_CHECK_STRPTR_CONVERT(,[enable_isoc=no])],[enable_isoc=no])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
297
AM_CONDITIONAL([CREATE_ISOC],[test $enable_isoc = 'yes'])
Thomas Jahns's avatar
Thomas Jahns committed
298
299
AC_SUBST([ENABLE_F2003_ISOC],[$enable_isoc])
AM_SUBST_NOTMAKE([ENABLE_F2003_ISOC])
300
301
302
303
304
305
306
307
308
309
# in case the Fortran interface uses the more modern F90-style interface,
# the FCFLAGS for users of the library have to include a switch to use the
# .mod file
CDI_F90_INTERFACE_FCFLAGS=''
AS_IF([test "x${enable_isoc}" = "xyes"],
  [AC_LANG_PUSH([Fortran])
   ACX_SL_FC_CHECK_MOD_PATH_FLAG
   AC_LANG_POP([Fortran])
   CDI_F90_INTERFACE_FCFLAGS="${FC_MOD_FLAG}${includedir}"])
AC_SUBST([CDI_F90_INTERFACE_FCFLAGS])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
310
#  Check the module extension of the fortran compiler
311
312
AS_IF([test -n "$FC" && test "X$FC" != "Xno"],
  [ACX_SL_FC_MOD_SUFFIX(,[FCMODEXT=mod])])
313
# -----------------------------------------------------------------------
314
315
# Check for SWIG - Generator for script-language bindings
AC_ARG_ENABLE(swig,
316
317
318
319
              [AS_HELP_STRING([--enable-swig],[use swig to create extra bindings [default=no] (EXPERIMENTAL)])],
              [AC_CHECK_PROG(SWIG,swig,swig)],
              [enable_swig=no])
AM_CONDITIONAL(ENABLE_SWIG,[test "x$SWIG" != "x"])
320
321
#  ----------------------------------------------------------------------
#  Create the Ruby Interface via swig
322
323
#
AC_ARG_ENABLE([ruby],
324
  [AS_HELP_STRING([--enable-ruby],[ruby language bindings [default=no] (EXPERIMENTAL)])],
325
  [RUBY_INCLUDES="$($RUBY $srcdir/config/interface.rb)"
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
   save_CPPFLAGS=$CPPFLAGS
   CPPFLAGS="$CPPFLAGS $RUBY_INCLUDES"
   AC_CHECK_HEADER([ruby.h],,[enable_ruby=no
                              RUBY=
                             ])
   CPPFLAGS=$save_CPPFLAGS
   AS_IF([test "x$RUBY" != "x"],
         [AS_IF([test "x$SWIG" = "x"],
                [AC_MSG_NOTICE([Ruby bindings: Swig is disabled, pregenerated files will be used. Use '--enable-swig' for swig usage])])],
                [AS_IF([test `$SWIG -help 2>&1 | $GREP -c '\-ruby *- Generate'` = 0],
                       [AC_MSG_NOTICE([No (swig does not support -ruby option)])
                        enable_ruby=no
                       ])])],
  [enable_ruby=no])
AM_CONDITIONAL(ENABLE_RUBY,[test "x$enable_ruby" != "xno"])
AS_IF([test "x$enable_ruby" != "xno"],[AC_SUBST([ENABLE_RUBY],[true])],[AC_SUBST([ENABLE_RUBY],[false])])
342
#  ----------------------------------------------------------------------
343
#  Create the Python Interface via swig
344
AC_ARG_ENABLE(python,
345
  [AS_HELP_STRING([--enable-python],[python language bindings [default=no] (EXPERIMENTAL)])],
346
  [AC_CHECK_PROG(PYTHON,python,python)
Thomas Jahns's avatar
Thomas Jahns committed
347
348
349
350
351
352
353
354
355
356
357
358
   enable_python=no
   for PYTHON_INCLUDES in \
     "-I`$PYTHON -c 'from distutils import sysconfig;print sysconfig.get_python_inc()'`" \
     "-I`$PYTHON -c 'from distutils import sysconfig;print sysconfig.get_python_lib(1,1)' | $SED 's/lib/include/'`"
   do
     save_CPPFLAGS=$CPPFLAGS
     CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
     AC_CHECK_HEADER([Python.h],[enable_python=yes
       break])
     CPPFLAGS=$save_CPPFLAGS
   done
   AS_IF([test "x$enable_python" != "xno"],
359
         [AS_IF([test "x$SWIG" = "x"],
Thomas Jahns's avatar
Thomas Jahns committed
360
361
                [AC_MSG_NOTICE([Python bindings: Swig is disabled, pregenerated files will be used. Use '--enable-swig' for swig usage])],
                [PYTHON=])],
362
363
364
365
366
367
368
369
370
                [AS_IF([test `$SWIG -help 2>&1 | $GREP -c '\-python *- Generate'` = 0],
                       [AC_MSG_NOTICE([No (swig does not support -python option)])
                        enable_python=no
                       ])])],
  [enable_python=no])
AM_CONDITIONAL(ENABLE_PYTHON, [test "x$enable_python" != "xno"])
AS_IF([test "x$enable_python" != "xno"],[AC_SUBST([ENABLE_PYTHON],[true])],[AC_SUBST([ENABLE_PYTHON],[false])])
#  ----------------------------------------------------------------------
AM_CONDITIONAL(CREATE_INTERFACES, [test  "x$enable_ruby" = "xyes" -o "x$enable_python" = "xyes"])
371
372
373
374
375
376
377
#  ----------------------------------------------------------------------
#  Create the CDI Fortran77 Interface via cfortran.h
AC_ARG_ENABLE([cf-interface],
              [AS_HELP_STRING([--disable-cf-interface],
                              [Omit building of cfortran Interface])],
              [enable_cfinterface=${enableval}],[enable_cfinterface=yes])
AS_IF([test "x${enable_cfinterface}" = "xyes"], [
Thomas Jahns's avatar
Thomas Jahns committed
378
379
380
381
382
383
384
385
dnl ######################################################################
dnl Test whether cfortran.h works correctly
dnl ######################################################################
ACX_FIND_CFORTRAN_DEF
ACX_XLF_QEXTNAME_ADD_APPENDUS
AS_IF([test -n "$FC" -a X"$FC" != Xno -o -n "$F77" -a X"$F77" != Xno],
  [ACX_CHECK_CFORTRAN([$srcdir/src],
    [AC_DEFINE([HAVE_CF_INTERFACE],[1],
386
387
388
389
390
391
392
393
394
395
396
       [Defined to 1 if C / Fortran interface cfortran.h works])],
    [AS_CASE([x"$acx_cv_cfortran_works"],
       [x"error"],
       [AC_MSG_NOTICE([Linking/Running with C EXTERNAL built with cfortran.h does not work!])],
       [x"compiling with cfortran.h failed"],
       [AC_MSG_NOTICE([Compilation with cfortran.h is not working!])],
       [x"error compiling Fortran subroutine"],
       [AC_MSG_NOTICE([compilation of simple Fortran source failed!])],
       [AC_MSG_NOTICE([Unexpected error when linking C and Fortran via cfortran.h!])])
     AC_MSG_NOTICE([Disabling cfortran.h bindings generation])
     acx_cv_cfortran_works=no])])
397
])
Thomas Jahns's avatar
Thomas Jahns committed
398
AM_CONDITIONAL([USE_FC],[test -n "$FC" -a X"$FC" != Xno -a x"$acx_cv_cfortran_works" = xyes])dnl
399
400
401
dnl
AC_SUBST([CPPFLAGS])dnl
dnl
402
403
404
405
406
m4_foreach([build_flag_var],[[BUILD_CFLAGS],[BUILD_FCFLAGS],[BUILD_LDFLAGS],[BUILD_LIBS],[BUILD_MPI_C_LIB],[BUILD_MPI_FC_LIB],[BUILD_C_INCLUDE],[BUILD_FC_INCLUDE]],
  [AC_ARG_VAR(build_flag_var,
     [append to ]m4_bpatsubst(build_flag_var, [BUILD_], [])[ during build but not in configure phase])dnl
AC_CONFIG_COMMANDS_PRE(m4_bpatsubst(build_flag_var, [BUILD_], [])[="$]m4_bpatsubst(build_flag_var, [BUILD_], [])[$]{build_flag_var+ $build_flag_var[}"])dnl
AM_SUBST_NOTMAKE(build_flag_var)])dnl
407

408
409
410
411
412
413
414
415
m4_foreach([build_tool_var],[[BUILD_CC],[BUILD_CXX],[BUILD_FC],[BUILD_F77]],
  [AC_ARG_VAR(build_tool_var,
     [replace ]m4_bpatsubst(build_tool_var, [BUILD_], [])[ with expansion of $]build_tool_var[ during build but not in configure phase])dnl
AC_CONFIG_COMMANDS_PRE(m4_bpatsubst(build_tool_var, [BUILD_], [])[="$]{build_tool_var-$[]m4_bpatsubst(build_tool_var, [BUILD_], [])}["])dnl
AM_SUBST_NOTMAKE(build_tool_var)])dnl
dnl
dnl
dnl
416
417
418
419
# Checks for compiler
COMPILER="$CC $CFLAGS"
AC_DEFINE_UNQUOTED(COMPILER, ["$COMPILER"], [Compiler])

420
421
422
423
424
425
AC_CONFIG_FILES([tests/test_cksum_grib \
                 tests/test_cksum_nc \
                 tests/test_cksum_nc2 \
                 tests/test_cksum_nc4 \
                 tests/test_cksum_extra \
                 tests/test_cksum_service \
426
                 tests/test_cksum_ieg \
427
                 tests/test_chunk_cksum \
Thomas Jahns's avatar
Thomas Jahns committed
428
                 tests/test_f2003 \
429
                 tests/pio_write_run \
Thomas Jahns's avatar
Thomas Jahns committed
430
                 tests/pio_write_deco2d_run \
Thomas Jahns's avatar
Thomas Jahns committed
431
                 tests/pio_cksum_mpinonb \
432
                 tests/pio_cksum_mpi_fw_ordered \
433
                 tests/pio_cksum_mpi_fw_at_all \
434
                 tests/pio_cksum_mpi_fw_at_reblock \
Thomas Jahns's avatar
Thomas Jahns committed
435
436
437
                 tests/pio_cksum_fpguard \
                 tests/pio_cksum_asynch \
                 tests/pio_cksum_writer \
438
                 tests/pio_cksum_cdf \
Thomas Jahns's avatar
Thomas Jahns committed
439
440
                 tests/test_byteswap_run \
                 tests/test_resource_copy_run \
441
                 tests/test_resource_copy_mpi_run \
442
                 tests/test_cdf_transformation \
443
                 tests/test_cdf_const \
Thomas Jahns's avatar
Thomas Jahns committed
444
                 tests/test_table_run \
445
                 tables/gen_tableheaderfile \
446
                 util/serialrun],[chmod a+x "$ac_file"])
447

448
449
AC_OUTPUT([Makefile src/Makefile interfaces/Makefile app/Makefile \
	tests/Makefile examples/Makefile cdi.settings \
450
	examples/pio/Makefile src/pkgconfig/cdi.pc src/pkgconfig/cdipio.pc])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
451

452
453
454
#  ----------------------------------------------------------------------
#  Show configuration
AC_MSG_NOTICE([CDI is configured with the following options:])
455
./config.status cdi.settings
456
cat cdi.settings
457

458
459
AS_IF([test "$ac_cv_prog_cc_c99" = "no"],
      [AC_MSG_NOTICE([
460

461
462
  Warning: The C compiler does not accept ANSI C99 source code!
])])
Uwe Schulzweida's avatar
Uwe Schulzweida committed
463
464
465
466
467
468
AC_MSG_NOTICE([

  Configuration completed.

    You can now say 'make' to compile the CDI package and 'make install' to install it afterwards.
])