This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by cdo configure 2.0.5, which was
generated by GNU Autoconf 2.71.  Invocation command line was

  $ ./configure --prefix=/gpfs/home/jin/tools/pkgs/cdo-2.0.5 --with-netcdf=/gpfs/software/netcdf/intel/netcdf-c-4.7.4 --with-udunits2=/gpfs/software/udunits-2.2.26 --with-hdf5=/gpfs/software/hdf5/intel/1.10.5

## --------- ##
## Platform. ##
## --------- ##

hostname = login2
uname -m = x86_64
uname -r = 3.10.0-1160.24.1.el7.x86_64
uname -s = Linux
uname -v = #1 SMP Thu Apr 8 19:51:47 UTC 2021

/usr/bin/uname -p = x86_64
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /gpfs/software/netcdf-fortran/intel/4.5.3//bin/
PATH: /gpfs/software/netcdf/intel/netcdf-c-4.7.4/bin/
PATH: /gpfs/software/pnetcdf/intel/1.12.1/bin/
PATH: /gpfs/software/hdf5/intel/1.10.5/bin/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/mpi/intel64/bin/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/mpi/intel64/libfrabric/bin/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/mkl/bin/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/bin/intel64/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/bin/
PATH: /gpfs/software/intel/parallel-studio-xe/2020_2/compilers_and_libraries_2020/linux/../../debugger_2020/gdb/intel64/bin/
PATH: /cm/shared/apps/slurm/17.11.12/sbin/
PATH: /cm/shared/apps/slurm/17.11.12/bin/
PATH: /gpfs/home/jin/model/SAM6.11.6/UTIL/
PATH: /cm/local/apps/environment-modules/4.0.0//bin/
PATH: /usr/local/bin/
PATH: /usr/bin/
PATH: /usr/local/sbin/
PATH: /usr/sbin/
PATH: /opt/ibutils/bin/
PATH: /sbin/
PATH: /usr/sbin/
PATH: /cm/local/apps/environment-modules/4.0.0/bin/
PATH: /gpfs/home/jin/bin/


## ----------- ##
## Core tests. ##
## ----------- ##

configure:3292: looking for aux files: tap-driver.sh ltmain.sh compile ar-lib missing install-sh config.guess config.sub
configure:3305:  trying ./config/
configure:3334:   ./config/tap-driver.sh found
configure:3334:   ./config/ltmain.sh found
configure:3334:   ./config/compile found
configure:3334:   ./config/ar-lib found
configure:3334:   ./config/missing found
configure:3316:   ./config/install-sh found
configure:3334:   ./config/config.guess found
configure:3334:   ./config/config.sub found
configure:3460: checking build system type
configure:3475: result: x86_64-pc-linux-gnu
configure:3495: checking host system type
configure:3509: result: x86_64-pc-linux-gnu
configure:3549: checking for a BSD-compatible install
configure:3622: result: /usr/bin/install -c
configure:3633: checking whether build environment is sane
configure:3688: result: yes
configure:3847: checking for a race-free mkdir -p
configure:3891: result: /usr/bin/mkdir -p
configure:3898: checking for gawk
configure:3919: found /usr/bin/gawk
configure:3930: result: gawk
configure:3941: checking whether make sets $(MAKE)
configure:3964: result: yes
configure:3994: checking whether make supports nested variables
configure:4012: result: yes
configure:4152: checking whether to enable maintainer-specific portions of Makefiles
configure:4162: result: no
configure:4190: checking whether make supports the include directive
configure:4205: make -f confmf.GNU && cat confinc.out
this is the am__doit target
configure:4208: $? = 0
configure:4227: result: yes (GNU style)
configure:4303: checking for gcc
configure:4335: result: icc
configure:4688: checking for C compiler version
configure:4697: icc --version >&5
icc (ICC) 19.1.2.254 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:4708: $? = 0
configure:4697: icc -v >&5
icc version 19.1.2.254 (gcc version 4.8.5 compatibility)
configure:4708: $? = 0
configure:4697: icc -V >&5
Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.2.254 Build 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:4708: $? = 0
configure:4697: icc -qversion >&5
icc: command line warning #10006: ignoring unknown option '-qversion'
icc: command line error: no files specified; for help type "icc -help"
configure:4708: $? = 1
configure:4697: icc -version >&5
icc: command line warning #10006: ignoring unknown option '-version'
icc: command line error: no files specified; for help type "icc -help"
configure:4708: $? = 1
configure:4728: checking whether the C compiler works
configure:4750: icc    conftest.c  >&5
configure:4754: $? = 0
configure:4804: result: yes
configure:4807: checking for C compiler default output file name
configure:4809: result: a.out
configure:4815: checking for suffix of executables
configure:4822: icc -o conftest    conftest.c  >&5
configure:4826: $? = 0
configure:4849: result: 
configure:4871: checking whether we are cross compiling
configure:4879: icc -o conftest    conftest.c  >&5
configure:4883: $? = 0
configure:4890: ./conftest
configure:4894: $? = 0
configure:4909: result: no
configure:4914: checking for suffix of object files
configure:4937: icc -c   conftest.c >&5
configure:4941: $? = 0
configure:4963: result: o
configure:4967: checking whether the compiler supports GNU C
configure:4987: icc -c   conftest.c >&5
configure:4987: $? = 0
configure:4997: result: yes
configure:5008: checking whether icc accepts -g
configure:5029: icc -c -g  conftest.c >&5
configure:5029: $? = 0
configure:5073: result: yes
configure:5093: checking for icc option to enable C11 features
configure:5108: icc  -c -g -O2  conftest.c >&5
conftest.c(64): error: #error directive: "Compiler does not advertise C99 conformance"
  # error "Compiler does not advertise C99 conformance"
    ^

conftest.c(119): error: expected a ")"
  test_restrict (ccp restrict text)
                              ^

conftest.c(124): error: expected an expression
    for (unsigned int i = 0; *(text+i) != '\0'; ++i)
         ^

conftest.c(124): error: identifier "text" is undefined
    for (unsigned int i = 0; *(text+i) != '\0'; ++i)
                               ^

conftest.c(124): error: identifier "i" is undefined
    for (unsigned int i = 0; *(text+i) != '\0'; ++i)
                                    ^

conftest.c(168): error: #error directive: "Compiler does not advertise C11 conformance"
  # error "Compiler does not advertise C11 conformance"
    ^

conftest.c(200): error: identifier "syntax" is undefined
  char const utf8_literal[] = u8"happens to be ASCII" "another string";
                              ^

conftest.c(200): error: expected a ";"
  char const utf8_literal[] = u8"happens to be ASCII" "another string";
                              ^

conftest.c(233): error: expected a ";"
    char *restrict newvar = "Another string";
                   ^

conftest.c(243): error: expected an expression
    for (int i = 0; i < ia->datasize; ++i)
         ^

conftest.c(243): error: identifier "i" is undefined
    for (int i = 0; i < ia->datasize; ++i)
                    ^

conftest.c(260): error: identifier "newvar" is undefined
    ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
                                                           ^

compilation aborted for conftest.c (code 2)
configure:5108: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| /* end confdefs.h.  */
| 
| /* Does the compiler advertise C89 conformance?
|    Do not test the value of __STDC__, because some compilers set it to 0
|    while being otherwise adequately conformant. */
| #if !defined __STDC__
| # error "Compiler does not advertise C89 conformance"
| #endif
| 
| #include <stddef.h>
| #include <stdarg.h>
| struct stat;
| /* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
| struct buf { int x; };
| struct buf * (*rcsopen) (struct buf *, struct stat *, int);
| static char *e (p, i)
|      char **p;
|      int i;
| {
|   return p[i];
| }
| static char *f (char * (*g) (char **, int), char **p, ...)
| {
|   char *s;
|   va_list v;
|   va_start (v,p);
|   s = g (p, va_arg (v,int));
|   va_end (v);
|   return s;
| }
| 
| /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
|    function prototypes and stuff, but not \xHH hex character constants.
|    These do not provoke an error unfortunately, instead are silently treated
|    as an "x".  The following induces an error, until -std is added to get
|    proper ANSI mode.  Curiously \x00 != x always comes out true, for an
|    array size at least.  It is necessary to write \x00 == 0 to get something
|    that is true only with -std.  */
| int osf4_cc_array ['\x00' == 0 ? 1 : -1];
| 
| /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
|    inside strings and character constants.  */
| #define FOO(x) 'x'
| int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
| 
| int test (int i, double x);
| struct s1 {int (*f) (int a);};
| struct s2 {int (*f) (double a);};
| int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
|                int, int);
| 
| // Does the compiler advertise C99 conformance?
| #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
| # error "Compiler does not advertise C99 conformance"
| #endif
| 
| #include <stdbool.h>
| extern int puts (const char *);
| extern int printf (const char *, ...);
| extern int dprintf (int, const char *, ...);
| extern void *malloc (size_t);
| 
| // Check varargs macros.  These examples are taken from C99 6.10.3.5.
| // dprintf is used instead of fprintf to avoid needing to declare
| // FILE and stderr.
| #define debug(...) dprintf (2, __VA_ARGS__)
| #define showlist(...) puts (#__VA_ARGS__)
| #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
| static void
| test_varargs_macros (void)
| {
|   int x = 1234;
|   int y = 5678;
|   debug ("Flag");
|   debug ("X = %d\n", x);
|   showlist (The first, second, and third items.);
|   report (x>y, "x is %d but y is %d", x, y);
| }
| 
| // Check long long types.
| #define BIG64 18446744073709551615ull
| #define BIG32 4294967295ul
| #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
| #if !BIG_OK
|   #error "your preprocessor is broken"
| #endif
| #if BIG_OK
| #else
|   #error "your preprocessor is broken"
| #endif
| static long long int bignum = -9223372036854775807LL;
| static unsigned long long int ubignum = BIG64;
| 
| struct incomplete_array
| {
|   int datasize;
|   double data[];
| };
| 
| struct named_init {
|   int number;
|   const wchar_t *name;
|   double average;
| };
| 
| typedef const char *ccp;
| 
| static inline int
| test_restrict (ccp restrict text)
| {
|   // See if C++-style comments work.
|   // Iterate through items via the restricted pointer.
|   // Also check for declarations in for loops.
|   for (unsigned int i = 0; *(text+i) != '\0'; ++i)
|     continue;
|   return 0;
| }
| 
| // Check varargs and va_copy.
| static bool
| test_varargs (const char *format, ...)
| {
|   va_list args;
|   va_start (args, format);
|   va_list args_copy;
|   va_copy (args_copy, args);
| 
|   const char *str = "";
|   int number = 0;
|   float fnumber = 0;
| 
|   while (*format)
|     {
|       switch (*format++)
| 	{
| 	case 's': // string
| 	  str = va_arg (args_copy, const char *);
| 	  break;
| 	case 'd': // int
| 	  number = va_arg (args_copy, int);
| 	  break;
| 	case 'f': // float
| 	  fnumber = va_arg (args_copy, double);
| 	  break;
| 	default:
| 	  break;
| 	}
|     }
|   va_end (args_copy);
|   va_end (args);
| 
|   return *str && number && fnumber;
| }
| 
| 
| // Does the compiler advertise C11 conformance?
| #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
| # error "Compiler does not advertise C11 conformance"
| #endif
| 
| // Check _Alignas.
| char _Alignas (double) aligned_as_double;
| char _Alignas (0) no_special_alignment;
| extern char aligned_as_int;
| char _Alignas (0) _Alignas (int) aligned_as_int;
| 
| // Check _Alignof.
| enum
| {
|   int_alignment = _Alignof (int),
|   int_array_alignment = _Alignof (int[100]),
|   char_alignment = _Alignof (char)
| };
| _Static_assert (0 < -_Alignof (int), "_Alignof is signed");
| 
| // Check _Noreturn.
| int _Noreturn does_not_return (void) { for (;;) continue; }
| 
| // Check _Static_assert.
| struct test_static_assert
| {
|   int x;
|   _Static_assert (sizeof (int) <= sizeof (long int),
|                   "_Static_assert does not work in struct");
|   long int y;
| };
| 
| // Check UTF-8 literals.
| #define u8 syntax error!
| char const utf8_literal[] = u8"happens to be ASCII" "another string";
| 
| // Check duplicate typedefs.
| typedef long *long_ptr;
| typedef long int *long_ptr;
| typedef long_ptr long_ptr;
| 
| // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
| struct anonymous
| {
|   union {
|     struct { int i; int j; };
|     struct { int k; long int l; } w;
|   };
|   int m;
| } v1;
| 
| 
| int
| main (int argc, char **argv)
| {
|   int ok = 0;
|   
| ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
| 
|   
|   // Check bool.
|   _Bool success = false;
|   success |= (argc != 0);
| 
|   // Check restrict.
|   if (test_restrict ("String literal") == 0)
|     success = true;
|   char *restrict newvar = "Another string";
| 
|   // Check varargs.
|   success &= test_varargs ("s, d' f .", "string", 65, 34.234);
|   test_varargs_macros ();
| 
|   // Check flexible array members.
|   struct incomplete_array *ia =
|     malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
|   ia->datasize = 10;
|   for (int i = 0; i < ia->datasize; ++i)
|     ia->data[i] = i * 1.234;
| 
|   // Check named initializers.
|   struct named_init ni = {
|     .number = 34,
|     .name = L"Test wide string",
|     .average = 543.34343,
|   };
| 
|   ni.number = 58;
| 
|   int dynamic_array[ni.number];
|   dynamic_array[0] = argv[0][0];
|   dynamic_array[ni.number - 1] = 543;
| 
|   // work around unused variable warnings
|   ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
| 	 || dynamic_array[ni.number - 1] != 543);
| 
|   
|   _Static_assert ((offsetof (struct anonymous, i)
| 		   == offsetof (struct anonymous, w.k)),
| 		  "Anonymous union alignment botch");
|   v1.i = 2;
|   v1.w.k = 5;
|   ok |= v1.i != 5;
| 
|   return ok;
| }
| 
configure:5108: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:5108: $? = 0
configure:5129: result: -std=gnu11
configure:5242: checking whether icc -std=gnu11 understands -c and -o together
configure:5265: icc -std=gnu11 -c conftest.c -o conftest2.o
configure:5268: $? = 0
configure:5265: icc -std=gnu11 -c conftest.c -o conftest2.o
configure:5268: $? = 0
configure:5280: result: yes
configure:5299: checking dependency style of icc -std=gnu11
configure:5411: result: gcc3
configure:5482: checking for ar
configure:5503: found /usr/bin/ar
configure:5514: result: ar
configure:5540: checking the archiver (ar) interface
configure:5557: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:5557: $? = 0
configure:5560: ar cru libconftest.a conftest.o >&5
configure:5563: $? = 0
configure:5591: result: ar
configure:5612: setting up libtool
configure:5661: checking how to print strings
configure:5688: result: printf
configure:5709: checking for a sed that does not truncate output
configure:5779: result: /usr/bin/sed
configure:5797: checking for grep that handles long lines and -e
configure:5861: result: /usr/bin/grep
configure:5866: checking for egrep
configure:5934: result: /usr/bin/grep -E
configure:5939: checking for fgrep
configure:6007: result: /usr/bin/grep -F
configure:6043: checking for ld used by icc -std=gnu11
configure:6111: result: /usr/bin/ld
configure:6118: checking if the linker (/usr/bin/ld) is GNU ld
configure:6134: result: yes
configure:6146: checking for BSD- or MS-compatible name lister (nm)
configure:6201: result: /usr/bin/nm -B
configure:6341: checking the name lister (/usr/bin/nm -B) interface
configure:6349: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:6352: /usr/bin/nm -B "conftest.o"
configure:6355: output
0000000000000000 N .debug_info_seg
0000000000000000 B some_variable
configure:6362: result: BSD nm
configure:6365: checking whether ln -s works
configure:6369: result: yes
configure:6377: checking the maximum length of command line arguments
configure:6509: result: 3458764513820540925
configure:6557: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:6598: result: func_convert_file_noop
configure:6605: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:6626: result: func_convert_file_noop
configure:6633: checking for /usr/bin/ld option to reload object files
configure:6641: result: -r
configure:6720: checking for objdump
configure:6741: found /usr/bin/objdump
configure:6752: result: objdump
configure:6784: checking how to recognize dependent libraries
configure:6985: result: pass_all
configure:7075: checking for dlltool
configure:7110: result: no
configure:7140: checking how to associate runtime and link libraries
configure:7168: result: printf %s\n
configure:7302: checking for archiver @FILE support
configure:7320: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:7320: $? = 0
configure:7324: ar cru libconftest.a @conftest.lst >&5
configure:7327: $? = 0
configure:7332: ar cru libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:7335: $? = 1
configure:7347: result: @
configure:7410: checking for strip
configure:7431: found /usr/bin/strip
configure:7442: result: strip
configure:7519: checking for ranlib
configure:7540: found /usr/bin/ranlib
configure:7551: result: ranlib
configure:7653: checking command to parse /usr/bin/nm -B output from icc -std=gnu11 object
configure:7807: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:7810: $? = 0
configure:7814: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7817: $? = 0
configure:7883: icc -std=gnu11 -o conftest -g -O2   conftest.c conftstm.o >&5
configure:7886: $? = 0
configure:7924: result: ok
configure:7971: checking for sysroot
configure:8002: result: no
configure:8009: checking for a working dd
configure:8053: result: /usr/bin/dd
configure:8057: checking how to truncate binary pipes
configure:8073: result: /usr/bin/dd bs=4096 count=1
configure:8210: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:8213: $? = 0
configure:8410: checking for mt
configure:8445: result: no
configure:8465: checking if : is a manifest tool
configure:8472: : '-?'
configure:8480: result: no
configure:9205: checking for stdio.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for stdlib.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for string.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for inttypes.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for stdint.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for strings.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for sys/stat.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for sys/types.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for unistd.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9205: checking for sys/param.h
configure:9205: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9205: $? = 0
configure:9205: result: yes
configure:9230: checking for dlfcn.h
configure:9230: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:9230: $? = 0
configure:9230: result: yes
configure:9489: checking for objdir
configure:9505: result: .libs
configure:9769: checking if icc -std=gnu11 supports -fno-rtti -fno-exceptions
configure:9788: icc -std=gnu11 -c -g -O2  -fno-rtti -fno-exceptions conftest.c >&5
configure:9792: $? = 0
configure:9805: result: yes
configure:10163: checking for icc -std=gnu11 option to produce PIC
configure:10171: result: -fPIC -DPIC
configure:10179: checking if icc -std=gnu11 PIC flag -fPIC -DPIC works
configure:10198: icc -std=gnu11 -c -g -O2  -fPIC -DPIC -DPIC conftest.c >&5
configure:10202: $? = 0
configure:10215: result: yes
configure:10244: checking if icc -std=gnu11 static flag -static works
configure:10273: result: no
configure:10288: checking if icc -std=gnu11 supports -c -o file.o
configure:10310: icc -std=gnu11 -c -g -O2  -o out/conftest2.o conftest.c >&5
configure:10314: $? = 0
configure:10336: result: yes
configure:10344: checking if icc -std=gnu11 supports -c -o file.o
configure:10392: result: yes
configure:10425: checking whether the icc -std=gnu11 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:11691: result: yes
configure:11728: checking whether -lc should be explicitly linked in
configure:11737: icc -std=gnu11 -c -g -O2  conftest.c >&5
configure:11740: $? = 0
configure:11755: icc -std=gnu11 -shared  -fPIC -DPIC conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep  -lc  \>/dev/null 2\>\&1
configure:11758: $? = 0
configure:11772: result: no
configure:11932: checking dynamic linker characteristics
configure:12514: icc -std=gnu11 -o conftest -g -O2   -Wl,-rpath -Wl,/foo conftest.c  >&5
configure:12514: $? = 0
configure:12753: result: GNU/Linux ld.so
configure:12875: checking how to hardcode library paths into programs
configure:12900: result: immediate
configure:13452: checking whether stripping libraries is possible
configure:13457: result: yes
configure:13492: checking if libtool supports shared libraries
configure:13494: result: yes
configure:13497: checking whether to build shared libraries
configure:13522: result: yes
configure:13525: checking whether to build static libraries
configure:13529: result: yes
configure:13619: checking for bash
configure:13654: result: /bin/sh
configure:13726: checking for gcc
configure:13758: result: icc
configure:13828: checking for g++
configure:13860: result: icpc
configure:14012: checking for C++ compiler version
configure:14021: icpc --version >&5
icpc (ICC) 19.1.2.254 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:14032: $? = 0
configure:14021: icpc -v >&5
icpc version 19.1.2.254 (gcc version 4.8.5 compatibility)
configure:14032: $? = 0
configure:14021: icpc -V >&5
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.2.254 Build 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:14032: $? = 0
configure:14021: icpc -qversion >&5
icpc: command line warning #10006: ignoring unknown option '-qversion'
icpc: command line error: no files specified; for help type "icpc -help"
configure:14032: $? = 1
configure:14036: checking whether the compiler supports GNU C++
configure:14056: icpc -c   conftest.cpp >&5
configure:14056: $? = 0
configure:14066: result: yes
configure:14077: checking whether icpc accepts -g
configure:14098: icpc -c -g  conftest.cpp >&5
configure:14098: $? = 0
configure:14142: result: yes
configure:14162: checking for icpc option to enable C++11 features
configure:14177: icpc  -c -g -O2  conftest.cpp >&5
conftest.cpp(71): error: #error directive: "Compiler does not advertise C++11 conformance"
  # error "Compiler does not advertise C++11 conformance"
    ^

conftest.cpp(76): error #77: this declaration has no storage class or type specifier
    constexpr int get_val() { return 20; }
    ^

conftest.cpp(76): error: expected a ";"
    constexpr int get_val() { return 20; }
              ^

conftest.cpp(82): warning #12: parsing restarts here after previous syntax error
    };
     ^

conftest.cpp(88): warning #3498: delegating constructors are a C++11 feature
      delegate(): delegate(2354) {}
                  ^

conftest.cpp(99): warning #3459: "override" and "final" are C++11 features
      virtual int getval() override final { return this->n * 2; }
                  ^

conftest.cpp(99): warning #3459: "override" and "final" are C++11 features
      virtual int getval() override final { return this->n * 2; }
                  ^

conftest.cpp(106): warning #3502: defaulted functions are a C++11 feature
      nocopy() = default;
                 ^

conftest.cpp(107): warning #3501: deleted functions are a C++11 feature
      nocopy(const nocopy&) = delete;
                              ^

conftest.cpp(120): error: invalid storage class for a template declaration
    template <typename V> auto sum(V first) -> V
                          ^

conftest.cpp(120): error #303: explicit type is missing ("int" assumed)
    template <typename V> auto sum(V first) -> V
                          ^

conftest.cpp(120): error: expected a ";"
    template <typename V> auto sum(V first) -> V
                                            ^

conftest.cpp(128): warning #12: parsing restarts here after previous syntax error
  }
  ^

conftest.cpp(148): error #303: explicit type is missing ("int" assumed)
    auto a1 = 6538;
         ^

conftest.cpp(149): error #303: explicit type is missing ("int" assumed)
    auto a2 = 48573953.4;
         ^

conftest.cpp(150): error #303: explicit type is missing ("int" assumed)
    auto a3 = "String literal";
         ^

conftest.cpp(150): error: a value of type "const char *" cannot be used to initialize an entity of type "int"
    auto a3 = "String literal";
              ^

conftest.cpp(153): error #303: explicit type is missing ("int" assumed)
    for (auto i = a3; *i; ++i) { total += *i; }
              ^

conftest.cpp(153): error: operand of "*" must be a pointer
    for (auto i = a3; *i; ++i) { total += *i; }
                       ^

conftest.cpp(153): error: operand of "*" must be a pointer
    for (auto i = a3; *i; ++i) { total += *i; }
                                           ^

conftest.cpp(155): error: identifier "decltype" is undefined
    decltype(a2) a4 = 34895.034;
    ^

conftest.cpp(155): error: expected a ";"
    decltype(a2) a4 = 34895.034;
                 ^

conftest.cpp(159): error: namespace "cxx11test" has no member "get_val"
    short sa[cxx11test::get_val()] = { 0 };
                        ^

conftest.cpp(159): error: variable "sa" may not be initialized
    short sa[cxx11test::get_val()] = { 0 };
          ^

conftest.cpp(163): error: namespace "cxx11test" has no member "testinit"
    cxx11test::testinit il = { 4323, 435234.23544 };
               ^

conftest.cpp(169): error #303: explicit type is missing ("int" assumed)
    for (auto &x : array) { x += 23; }
              ^

conftest.cpp(169): error: reference variable "x" requires an initializer
    for (auto &x : array) { x += 23; }
                 ^

conftest.cpp(169): error: expected a ";"
    for (auto &x : array) { x += 23; }
                 ^

conftest.cpp(169): error: expected an expression
    for (auto &x : array) { x += 23; }
                        ^

conftest.cpp(169): error: expected a ";"
    for (auto &x : array) { x += 23; }
                        ^

conftest.cpp(174): warning #3496: lambda expressions are a C++11 feature
    assert (eval ([](int x) { return x*2; }, 21) == 42);
                  ^

conftest.cpp(174): error: a template argument may not reference a local type
    assert (eval ([](int x) { return x*2; }, 21) == 42);
            ^

conftest.cpp(176): error: a template argument may not reference a local type
    assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
            ^

conftest.cpp(178): error: a template argument may not reference a local type
    assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
            ^

conftest.cpp(184): error #303: explicit type is missing ("int" assumed)
    auto a = sum(1);
         ^

conftest.cpp(185): error #303: explicit type is missing ("int" assumed)
    auto b = sum(1, 2);
         ^

conftest.cpp(185): error: no instance of function template "cxx11test::sum" matches the argument list
            argument types are: (int, int)
    auto b = sum(1, 2);
             ^
conftest.cpp(183): note: this candidate was rejected because mismatch in count of arguments
    using cxx11test::sum;
                     ^

conftest.cpp(186): error #303: explicit type is missing ("int" assumed)
    auto c = sum(1.0, 2.0, 3.0);
         ^

conftest.cpp(186): error: no instance of function template "cxx11test::sum" matches the argument list
            argument types are: (double, double, double)
    auto c = sum(1.0, 2.0, 3.0);
             ^
conftest.cpp(183): note: this candidate was rejected because mismatch in count of arguments
    using cxx11test::sum;
                     ^

conftest.cpp(200): error: identifier "nullptr" is undefined
    char *c = nullptr;
              ^

conftest.cpp(204): warning #765: use of alternative token "<:" appears to be unintended
    test_template<::test_template<int>> v(test_template<int>(12));
    ^

conftest.cpp(204): error: argument list for class template "<unnamed>::test_template" is missing
    test_template<::test_template<int>> v(test_template<int>(12));
    ^

conftest.cpp(204): error: expected an identifier
    test_template<::test_template<int>> v(test_template<int>(12));
                 ^

conftest.cpp(204): error: expected an expression
    test_template<::test_template<int>> v(test_template<int>(12));
                   ^

conftest.cpp(208): warning #12: parsing restarts here after previous syntax error
    char const *utf8 = u8"UTF-8 string \u2500";
                     ^

conftest.cpp(208): error: identifier "u8" is undefined
    char const *utf8 = u8"UTF-8 string \u2500";
                       ^

conftest.cpp(208): error: expected a "]"
    char const *utf8 = u8"UTF-8 string \u2500";
                         ^

conftest.cpp(209): error: identifier "char16_t" is undefined
    char16_t const *utf16 = u"UTF-8 string \u2500";
    ^

conftest.cpp(209): error: expected a ";"
    char16_t const *utf16 = u"UTF-8 string \u2500";
             ^

conftest.cpp(210): error: identifier "char32_t" is undefined
    char32_t const *utf32 = U"UTF-32 string \u2500";
    ^

conftest.cpp(210): error: expected a ";"
    char32_t const *utf32 = U"UTF-32 string \u2500";
             ^

compilation aborted for conftest.cpp (code 2)
configure:14177: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| 
| // Does the compiler advertise C++98 conformance?
| #if !defined __cplusplus || __cplusplus < 199711L
| # error "Compiler does not advertise C++98 conformance"
| #endif
| 
| // These inclusions are to reject old compilers that
| // lack the unsuffixed header files.
| #include <cstdlib>
| #include <exception>
| 
| // <cassert> and <cstring> are *not* freestanding headers in C++98.
| extern void assert (int);
| namespace std {
|   extern int strcmp (const char *, const char *);
| }
| 
| // Namespaces, exceptions, and templates were all added after "C++ 2.0".
| using std::exception;
| using std::strcmp;
| 
| namespace {
| 
| void test_exception_syntax()
| {
|   try {
|     throw "test";
|   } catch (const char *s) {
|     // Extra parentheses suppress a warning when building autoconf itself,
|     // due to lint rules shared with more typical C programs.
|     assert (!(strcmp) (s, "test"));
|   }
| }
| 
| template <typename T> struct test_template
| {
|   T const val;
|   explicit test_template(T t) : val(t) {}
|   template <typename U> T add(U u) { return static_cast<T>(u) + val; }
| };
| 
| } // anonymous namespace
| 
| 
| // Does the compiler advertise C++ 2011 conformance?
| #if !defined __cplusplus || __cplusplus < 201103L
| # error "Compiler does not advertise C++11 conformance"
| #endif
| 
| namespace cxx11test
| {
|   constexpr int get_val() { return 20; }
| 
|   struct testinit
|   {
|     int i;
|     double d;
|   };
| 
|   class delegate
|   {
|   public:
|     delegate(int n) : n(n) {}
|     delegate(): delegate(2354) {}
| 
|     virtual int getval() { return this->n; };
|   protected:
|     int n;
|   };
| 
|   class overridden : public delegate
|   {
|   public:
|     overridden(int n): delegate(n) {}
|     virtual int getval() override final { return this->n * 2; }
|   };
| 
|   class nocopy
|   {
|   public:
|     nocopy(int i): i(i) {}
|     nocopy() = default;
|     nocopy(const nocopy&) = delete;
|     nocopy & operator=(const nocopy&) = delete;
|   private:
|     int i;
|   };
| 
|   // for testing lambda expressions
|   template <typename Ret, typename Fn> Ret eval(Fn f, Ret v)
|   {
|     return f(v);
|   }
| 
|   // for testing variadic templates and trailing return types
|   template <typename V> auto sum(V first) -> V
|   {
|     return first;
|   }
|   template <typename V, typename... Args> auto sum(V first, Args... rest) -> V
|   {
|     return first + sum(rest...);
|   }
| }
| 
| 
| int
| main (int argc, char **argv)
| {
|   int ok = 0;
|   
|   assert (argc);
|   assert (! argv[0]);
| {
|   test_exception_syntax ();
|   test_template<double> tt (2.0);
|   assert (tt.add (4) == 6.0);
|   assert (true && !false);
| }
| 
|   
| {
|   // Test auto and decltype
|   auto a1 = 6538;
|   auto a2 = 48573953.4;
|   auto a3 = "String literal";
| 
|   int total = 0;
|   for (auto i = a3; *i; ++i) { total += *i; }
| 
|   decltype(a2) a4 = 34895.034;
| }
| {
|   // Test constexpr
|   short sa[cxx11test::get_val()] = { 0 };
| }
| {
|   // Test initializer lists
|   cxx11test::testinit il = { 4323, 435234.23544 };
| }
| {
|   // Test range-based for
|   int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,
|                  14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
|   for (auto &x : array) { x += 23; }
| }
| {
|   // Test lambda expressions
|   using cxx11test::eval;
|   assert (eval ([](int x) { return x*2; }, 21) == 42);
|   double d = 2.0;
|   assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
|   assert (d == 5.0);
|   assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
|   assert (d == 5.0);
| }
| {
|   // Test use of variadic templates
|   using cxx11test::sum;
|   auto a = sum(1);
|   auto b = sum(1, 2);
|   auto c = sum(1.0, 2.0, 3.0);
| }
| {
|   // Test constructor delegation
|   cxx11test::delegate d1;
|   cxx11test::delegate d2();
|   cxx11test::delegate d3(45);
| }
| {
|   // Test override and final
|   cxx11test::overridden o1(55464);
| }
| {
|   // Test nullptr
|   char *c = nullptr;
| }
| {
|   // Test template brackets
|   test_template<::test_template<int>> v(test_template<int>(12));
| }
| {
|   // Unicode literals
|   char const *utf8 = u8"UTF-8 string \u2500";
|   char16_t const *utf16 = u"UTF-8 string \u2500";
|   char32_t const *utf32 = U"UTF-32 string \u2500";
| }
| 
|   return ok;
| }
| 
configure:14195: result: none needed
configure:14261: checking dependency style of icpc
configure:14373: result: gcc3
configure:14406: checking how to run the C++ preprocessor
configure:14428: icpc -E  conftest.cpp
configure:14428: $? = 0
configure:14443: icpc -E  conftest.cpp
conftest.cpp(25): error #2379: cannot open source file "ac_nonexistent.h"
  #include <ac_nonexistent.h>
                             ^

configure:14443: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:14470: result: icpc -E
configure:14484: icpc -E  conftest.cpp
configure:14484: $? = 0
configure:14499: icpc -E  conftest.cpp
conftest.cpp(25): error #2379: cannot open source file "ac_nonexistent.h"
  #include <ac_nonexistent.h>
                             ^

configure:14499: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:14664: checking for ld used by icpc
configure:14732: result: /usr/bin/ld -m elf_x86_64
configure:14739: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld
configure:14755: result: yes
configure:14810: checking whether the icpc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:15887: result: yes
configure:15923: icpc -c -g -O2  conftest.cpp >&5
configure:15926: $? = 0
configure:16407: checking for icpc option to produce PIC
configure:16415: result: -fPIC -DPIC
configure:16423: checking if icpc PIC flag -fPIC -DPIC works
configure:16442: icpc -c -g -O2  -fPIC -DPIC -DPIC conftest.cpp >&5
configure:16446: $? = 0
configure:16459: result: yes
configure:16482: checking if icpc static flag -static works
configure:16511: result: no
configure:16523: checking if icpc supports -c -o file.o
configure:16545: icpc -c -g -O2  -o out/conftest2.o conftest.cpp >&5
configure:16549: $? = 0
configure:16571: result: yes
configure:16576: checking if icpc supports -c -o file.o
configure:16624: result: yes
configure:16654: checking whether the icpc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:16694: result: yes
configure:16836: checking dynamic linker characteristics
configure:17584: result: GNU/Linux ld.so
configure:17649: checking how to hardcode library paths into programs
configure:17674: result: immediate
configure:17830: checking for Fortran 77 compiler version
configure:17839: ifort --version >&5
ifort (IFORT) 19.1.2.254 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:17850: $? = 0
configure:17839: ifort -v >&5
ifort version 19.1.2.254
configure:17850: $? = 0
configure:17839: ifort -V >&5
Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.2.254 Build 20200623
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

configure:17850: $? = 0
configure:17839: ifort -qversion >&5
ifort: command line warning #10006: ignoring unknown option '-qversion'
ifort: command line error: no files specified; for help type "ifort -help"
configure:17850: $? = 1
configure:17859: checking whether the compiler supports GNU Fortran 77
configure:17873: ifort -c  conftest.F >&5
conftest.F(3): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( : % [ . = =>
       choke me
---------------^
conftest.F(3): error #6218: This statement is positioned incorrectly and/or has syntax errors.
       choke me
-------^
compilation aborted for conftest.F (code 1)
configure:17873: $? = 1
configure: failed program was:
|       program main
| #ifndef __GNUC__
|        choke me
| #endif
| 
|       end
configure:17883: result: no
configure:17891: checking whether ifort accepts -g
configure:17903: ifort -c -g conftest.f >&5
configure:17903: $? = 0
configure:17912: result: yes
configure:18041: checking if libtool supports shared libraries
configure:18043: result: yes
configure:18046: checking whether to build shared libraries
configure:18070: result: yes
configure:18073: checking whether to build static libraries
configure:18077: result: yes
configure:18429: checking for ifort option to produce PIC
configure:18437: result: -fPIC
configure:18445: checking if ifort PIC flag -fPIC works
configure:18464: ifort -c -g -fPIC conftest.f >&5
configure:18468: $? = 0
configure:18481: result: yes
configure:18504: checking if ifort static flag -static works
configure:18533: result: no
configure:18545: checking if ifort supports -c -o file.o
configure:18567: ifort -c -g -o out/conftest2.o conftest.f >&5
configure:18571: $? = 0
configure:18593: result: yes
configure:18598: checking if ifort supports -c -o file.o
configure:18646: result: yes
configure:18676: checking whether the ifort linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:19891: result: yes
configure:20033: checking dynamic linker characteristics
configure:20775: result: GNU/Linux ld.so
configure:20840: checking how to hardcode library paths into programs
configure:20865: result: immediate
configure:20898: checking for C/C++ restrict keyword
configure:20928: icc -c -g -O2  conftest.c >&5
configure:20928: $? = 0
configure:20937: result: __restrict__
configure:20960: checking whether icpc supports C++14 features with -std=gnu++14
configure:21379: icpc -std=gnu++14 -c -g -O2  conftest.cpp >&5
conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21379: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21389: result: no
configure:20960: checking whether icpc supports C++14 features with -std=gnu++1y
configure:21379: icpc -std=gnu++1y -c -g -O2  conftest.cpp >&5
conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21379: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21389: result: no
configure:21406: checking whether icpc supports C++14 features with -std=c++14
configure:21825: icpc -std=c++14 -c -g -O2  conftest.cpp >&5
conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21406: checking whether icpc supports C++14 features with +std=c++14
configure:21825: icpc +std=c++14 -c -g -O2  conftest.cpp >&5
icpc: error #10236: File not found:  '+std=c++14'
conftest.cpp(37): error: #error directive: "This is not a C++11 compiler"
  #error "This is not a C++11 compiler"
   ^

conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21406: checking whether icpc supports C++14 features with -h std=c++14
configure:21825: icpc -h std=c++14 -c -g -O2  conftest.cpp >&5
conftest.cpp(37): error: #error directive: "This is not a C++11 compiler"
  #error "This is not a C++11 compiler"
   ^

conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21406: checking whether icpc supports C++14 features with -std=c++1y
configure:21825: icpc -std=c++1y -c -g -O2  conftest.cpp >&5
conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21406: checking whether icpc supports C++14 features with +std=c++1y
configure:21825: icpc +std=c++1y -c -g -O2  conftest.cpp >&5
icpc: error #10236: File not found:  '+std=c++1y'
conftest.cpp(37): error: #error directive: "This is not a C++11 compiler"
  #error "This is not a C++11 compiler"
   ^

conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21406: checking whether icpc supports C++14 features with -h std=c++1y
configure:21825: icpc -h std=c++1y -c -g -O2  conftest.cpp >&5
conftest.cpp(37): error: #error directive: "This is not a C++11 compiler"
  #error "This is not a C++11 compiler"
   ^

conftest.cpp(324): error: #error directive: "This is not a C++14 compiler"
  #error "This is not a C++14 compiler"
   ^

compilation aborted for conftest.cpp (code 2)
configure:21825: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "cdo"
| #define PACKAGE_TARNAME "cdo"
| #define PACKAGE_VERSION "2.0.5"
| #define PACKAGE_STRING "cdo 2.0.5"
| #define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
| #define PACKAGE_URL ""
| #define CDO "2.0.5"
| #define PACKAGE "cdo"
| #define VERSION "2.0.5"
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| /* end confdefs.h.  */
| 
| 
| // If the compiler admits that it is not ready for C++11, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201103L
| 
| #error "This is not a C++11 compiler"
| 
| #else
| 
| namespace cxx11
| {
| 
|   namespace test_static_assert
|   {
| 
|     template <typename T>
|     struct check
|     {
|       static_assert(sizeof(int) <= sizeof(T), "not big enough");
|     };
| 
|   }
| 
|   namespace test_final_override
|   {
| 
|     struct Base
|     {
|       virtual ~Base() {}
|       virtual void f() {}
|     };
| 
|     struct Derived : public Base
|     {
|       virtual ~Derived() override {}
|       virtual void f() override {}
|     };
| 
|   }
| 
|   namespace test_double_right_angle_brackets
|   {
| 
|     template < typename T >
|     struct check {};
| 
|     typedef check<void> single_type;
|     typedef check<check<void>> double_type;
|     typedef check<check<check<void>>> triple_type;
|     typedef check<check<check<check<void>>>> quadruple_type;
| 
|   }
| 
|   namespace test_decltype
|   {
| 
|     int
|     f()
|     {
|       int a = 1;
|       decltype(a) b = 2;
|       return a + b;
|     }
| 
|   }
| 
|   namespace test_type_deduction
|   {
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static const bool value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static const bool value = true;
|     };
| 
|     template < typename T1, typename T2 >
|     auto
|     add(T1 a1, T2 a2) -> decltype(a1 + a2)
|     {
|       return a1 + a2;
|     }
| 
|     int
|     test(const int c, volatile int v)
|     {
|       static_assert(is_same<int, decltype(0)>::value == true, "");
|       static_assert(is_same<int, decltype(c)>::value == false, "");
|       static_assert(is_same<int, decltype(v)>::value == false, "");
|       auto ac = c;
|       auto av = v;
|       auto sumi = ac + av + 'x';
|       auto sumf = ac + av + 1.0;
|       static_assert(is_same<int, decltype(ac)>::value == true, "");
|       static_assert(is_same<int, decltype(av)>::value == true, "");
|       static_assert(is_same<int, decltype(sumi)>::value == true, "");
|       static_assert(is_same<int, decltype(sumf)>::value == false, "");
|       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|       return (sumf > 0.0) ? sumi : add(c, v);
|     }
| 
|   }
| 
|   namespace test_noexcept
|   {
| 
|     int f() { return 0; }
|     int g() noexcept { return 0; }
| 
|     static_assert(noexcept(f()) == false, "");
|     static_assert(noexcept(g()) == true, "");
| 
|   }
| 
|   namespace test_constexpr
|   {
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|     {
|       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|     }
| 
|     template < typename CharT >
|     unsigned long constexpr
|     strlen_c(const CharT *const s) noexcept
|     {
|       return strlen_c_r(s, 0UL);
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("1") == 1UL, "");
|     static_assert(strlen_c("example") == 7UL, "");
|     static_assert(strlen_c("another\0example") == 7UL, "");
| 
|   }
| 
|   namespace test_rvalue_references
|   {
| 
|     template < int N >
|     struct answer
|     {
|       static constexpr int value = N;
|     };
| 
|     answer<1> f(int&)       { return answer<1>(); }
|     answer<2> f(const int&) { return answer<2>(); }
|     answer<3> f(int&&)      { return answer<3>(); }
| 
|     void
|     test()
|     {
|       int i = 0;
|       const int c = 0;
|       static_assert(decltype(f(i))::value == 1, "");
|       static_assert(decltype(f(c))::value == 2, "");
|       static_assert(decltype(f(0))::value == 3, "");
|     }
| 
|   }
| 
|   namespace test_uniform_initialization
|   {
| 
|     struct test
|     {
|       static const int zero {};
|       static const int one {1};
|     };
| 
|     static_assert(test::zero == 0, "");
|     static_assert(test::one == 1, "");
| 
|   }
| 
|   namespace test_lambdas
|   {
| 
|     void
|     test1()
|     {
|       auto lambda1 = [](){};
|       auto lambda2 = lambda1;
|       lambda1();
|       lambda2();
|     }
| 
|     int
|     test2()
|     {
|       auto a = [](int i, int j){ return i + j; }(1, 2);
|       auto b = []() -> int { return '0'; }();
|       auto c = [=](){ return a + b; }();
|       auto d = [&](){ return c; }();
|       auto e = [a, &b](int x) mutable {
|         const auto identity = [](int y){ return y; };
|         for (auto i = 0; i < a; ++i)
|           a += b--;
|         return x + identity(a + b);
|       }(0);
|       return a + b + c + d + e;
|     }
| 
|     int
|     test3()
|     {
|       const auto nullary = [](){ return 0; };
|       const auto unary = [](int x){ return x; };
|       using nullary_t = decltype(nullary);
|       using unary_t = decltype(unary);
|       const auto higher1st = [](nullary_t f){ return f(); };
|       const auto higher2nd = [unary](nullary_t f1){
|         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|       };
|       return higher1st(nullary) + higher2nd(nullary)(unary);
|     }
| 
|   }
| 
|   namespace test_variadic_templates
|   {
| 
|     template <int...>
|     struct sum;
| 
|     template <int N0, int... N1toN>
|     struct sum<N0, N1toN...>
|     {
|       static constexpr auto value = N0 + sum<N1toN...>::value;
|     };
| 
|     template <>
|     struct sum<>
|     {
|       static constexpr auto value = 0;
|     };
| 
|     static_assert(sum<>::value == 0, "");
|     static_assert(sum<1>::value == 1, "");
|     static_assert(sum<23>::value == 23, "");
|     static_assert(sum<1, 2>::value == 3, "");
|     static_assert(sum<5, 5, 11>::value == 21, "");
|     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
| 
|   }
| 
|   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|   // because of this.
|   namespace test_template_alias_sfinae
|   {
| 
|     struct foo {};
| 
|     template<typename T>
|     using member = typename T::member_type;
| 
|     template<typename T>
|     void func(...) {}
| 
|     template<typename T>
|     void func(member<T>*) {}
| 
|     void test();
| 
|     void test() { func<foo>(0); }
| 
|   }
| 
| }  // namespace cxx11
| 
| #endif  // __cplusplus >= 201103L
| 
| 
| 
| 
| // If the compiler admits that it is not ready for C++14, why torture it?
| // Hopefully, this will speed up the test.
| 
| #ifndef __cplusplus
| 
| #error "This is not a C++ compiler"
| 
| #elif __cplusplus < 201402L
| 
| #error "This is not a C++14 compiler"
| 
| #else
| 
| namespace cxx14
| {
| 
|   namespace test_polymorphic_lambdas
|   {
| 
|     int
|     test()
|     {
|       const auto lambda = [](auto&&... args){
|         const auto istiny = [](auto x){
|           return (sizeof(x) == 1UL) ? 1 : 0;
|         };
|         const int aretiny[] = { istiny(args)... };
|         return aretiny[0];
|       };
|       return lambda(1, 1L, 1.0f, '1');
|     }
| 
|   }
| 
|   namespace test_binary_literals
|   {
| 
|     constexpr auto ivii = 0b0000000000101010;
|     static_assert(ivii == 42, "wrong value");
| 
|   }
| 
|   namespace test_generalized_constexpr
|   {
| 
|     template < typename CharT >
|     constexpr unsigned long
|     strlen_c(const CharT *const s) noexcept
|     {
|       auto length = 0UL;
|       for (auto p = s; *p; ++p)
|         ++length;
|       return length;
|     }
| 
|     static_assert(strlen_c("") == 0UL, "");
|     static_assert(strlen_c("x") == 1UL, "");
|     static_assert(strlen_c("test") == 4UL, "");
|     static_assert(strlen_c("another\0test") == 7UL, "");
| 
|   }
| 
|   namespace test_lambda_init_capture
|   {
| 
|     int
|     test()
|     {
|       auto x = 0;
|       const auto lambda1 = [a = x](int b){ return a + b; };
|       const auto lambda2 = [a = lambda1(x)](){ return a; };
|       return lambda2();
|     }
| 
|   }
| 
|   namespace test_digit_separators
|   {
| 
|     constexpr auto ten_million = 100'000'000;
|     static_assert(ten_million == 100000000, "");
| 
|   }
| 
|   namespace test_return_type_deduction
|   {
| 
|     auto f(int& x) { return x; }
|     decltype(auto) g(int& x) { return x; }
| 
|     template < typename T1, typename T2 >
|     struct is_same
|     {
|       static constexpr auto value = false;
|     };
| 
|     template < typename T >
|     struct is_same<T, T>
|     {
|       static constexpr auto value = true;
|     };
| 
|     int
|     test()
|     {
|       auto x = 0;
|       static_assert(is_same<int, decltype(f(x))>::value, "");
|       static_assert(is_same<int&, decltype(g(x))>::value, "");
|       return x;
|     }
| 
|   }
| 
| }  // namespace cxx14
| 
| #endif  // __cplusplus >= 201402L
| 
| 
| 
configure:21835: result: no
configure:21859: error: *** A compiler with support for C++14 language features is required.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_c_restrict=__restrict__
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value=icc
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=icpc
ac_cv_env_DCE_UUID_C_INCLUDE_set=
ac_cv_env_DCE_UUID_C_INCLUDE_value=
ac_cv_env_DCE_UUID_C_LIB_set=
ac_cv_env_DCE_UUID_C_LIB_value=
ac_cv_env_F77_set=set
ac_cv_env_F77_value=ifort
ac_cv_env_FFLAGS_set=
ac_cv_env_FFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_OSSP_UUID_C_INCLUDE_set=
ac_cv_env_OSSP_UUID_C_INCLUDE_value=
ac_cv_env_OSSP_UUID_C_LIB_set=
ac_cv_env_OSSP_UUID_C_LIB_value=
ac_cv_env_UTIL_LINUX_UUID_C_INCLUDE_set=
ac_cv_env_UTIL_LINUX_UUID_C_INCLUDE_value=
ac_cv_env_UTIL_LINUX_UUID_C_LIB_set=
ac_cv_env_UTIL_LINUX_UUID_C_LIB_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_f77_compiler_gnu=no
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdio_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_param_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_ac_pt_BASH=/bin/sh
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_lt_DD=/usr/bin/dd
ac_cv_path_mkdir=/usr/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CXXCPP='icpc -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=icc
ac_cv_prog_ac_ct_CXX=icpc
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c11=-std=gnu11
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=-std=gnu11
ac_cv_prog_cxx_11=no
ac_cv_prog_cxx_g=yes
ac_cv_prog_cxx_stdcxx=
ac_cv_prog_f77_g=yes
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_ar_interface=ar
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
ax_cv_cxx_compile_cxx14__h_std_cpp14=no
ax_cv_cxx_compile_cxx14__h_std_cpp1y=no
ax_cv_cxx_compile_cxx14__std_cpp14=no
ax_cv_cxx_compile_cxx14__std_cpp1y=no
ax_cv_cxx_compile_cxx14__std_gnupp14=no
ax_cv_cxx_compile_cxx14__std_gnupp1y=no
ax_cv_cxx_compile_cxx14_pstd_cpp14=no
ax_cv_cxx_compile_cxx14_pstd_cpp1y=no
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64'
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_c_o_F77=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_F77=-fPIC
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_pic_works_F77=yes
lt_cv_prog_compiler_rtti_exceptions=yes
lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no
lt_cv_prog_compiler_static_works_F77=no
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/  {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=3458764513820540925
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/usr/bin/dd bs=4096 count=1'

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} '\''/gpfs/home/jin/testdir/cdo-2.0.5/config/missing'\'' aclocal-1.16'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_CPPFLAGS=''
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='1'
AM_V='$(V)'
AR='ar'
AS=''
AUTOCONF='${SHELL} '\''/gpfs/home/jin/testdir/cdo-2.0.5/config/missing'\'' autoconf'
AUTOHEADER='${SHELL} '\''/gpfs/home/jin/testdir/cdo-2.0.5/config/missing'\'' autoheader'
AUTOMAKE='${SHELL} '\''/gpfs/home/jin/testdir/cdo-2.0.5/config/missing'\'' automake-1.16'
AWK='gawk'
BASH='/bin/sh'
CC='icc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CLDFLAGS=''
CLIBS=''
CMOR_LIBS=''
CPP=''
CPPFLAGS=''
CSCOPE='cscope'
CTAGS='ctags'
CURL_INCLUDE=''
CURL_LDFLAGS=''
CXX='icpc'
CXXCPP='icpc -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-g -O2'
CYGPATH_W='echo'
DCE_UUIDROOT=''
DCE_UUID_C_INCLUDE=''
DCE_UUID_C_LIB=''
DEFS=''
DEPDIR='.deps'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECCODES_INCLUDE=''
ECCODES_LIBS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
ENABLE_ACROSS=''
ENABLE_ALL_STATIC_FALSE=''
ENABLE_ALL_STATIC_TRUE=''
ENABLE_CDI_APP_FALSE=''
ENABLE_CDI_APP_TRUE=''
ENABLE_CDI_LIB=''
ENABLE_CDI_LIB_FALSE=''
ENABLE_CDI_LIB_TRUE=''
ENABLE_CGRIBEX=''
ENABLE_EXTRA=''
ENABLE_FORTRAN=''
ENABLE_GRIB=''
ENABLE_GRIBAPI=''
ENABLE_HIRLAM_EXTENSIONS_FALSE=''
ENABLE_HIRLAM_EXTENSIONS_TRUE=''
ENABLE_IEG=''
ENABLE_MAGICS_FALSE=''
ENABLE_MAGICS_TRUE=''
ENABLE_NC2=''
ENABLE_NC4=''
ENABLE_NC4HDF5=''
ENABLE_NC4SZLIB=''
ENABLE_NETCDF=''
ENABLE_SERVICE=''
ENABLE_THREADS=''
ETAGS='etags'
EXEEXT=''
F77='ifort'
FDB5_INCLUDE=''
FDB5_LIBS=''
FFLAGS='-g'
FGREP='/usr/bin/grep -F'
FORTRAN_WORKS=''
GREP='/usr/bin/grep'
GRIB_API_INCLUDE=''
GRIB_API_LIBS=''
HAVE_CXX14=''
HAVE_LIBGRIB_API_FALSE=''
HAVE_LIBGRIB_API_TRUE=''
HDF5_INCLUDE=''
HDF5_LIBS=''
HDF5_ROOT='/gpfs/software/hdf5/intel/1.10.5'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAGICS_INCLUDE=''
MAGICS_LIBS=''
MAGICS_ROOT=''
MAINT='#'
MAINTAINER_MODE_FALSE=''
MAINTAINER_MODE_TRUE='#'
MAKEINFO='${SHELL} '\''/gpfs/home/jin/testdir/cdo-2.0.5/config/missing'\'' makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/usr/bin/mkdir -p'
NC_CONFIG=''
NETCDF_INCLUDE=''
NETCDF_LIBS=''
NETCDF_ROOT=''
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OPENMP_CFLAGS=''
OSSP_UUIDROOT=''
OSSP_UUID_C_INCLUDE=''
OSSP_UUID_C_LIB=''
OTOOL64=''
OTOOL=''
PACKAGE='cdo'
PACKAGE_BUGREPORT='https://mpimet.mpg.de/cdo'
PACKAGE_NAME='cdo'
PACKAGE_STRING='cdo 2.0.5'
PACKAGE_TARNAME='cdo'
PACKAGE_URL=''
PACKAGE_VERSION='2.0.5'
PATH_SEPARATOR=':'
PROJ_INCLUDE=''
PROJ_LDFLAGS=''
PTHREAD_CC=''
PTHREAD_CFLAGS=''
PTHREAD_LIBS=''
RANLIB='ranlib'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
STRIP='strip'
SYSTEM_TYPE=''
SZLIB_INCLUDE=''
SZLIB_LIBS=''
THREADS_INCLUDE=''
THREADS_LIBS=''
UDUNITS_INCLUDE=''
UDUNITS_LDFLAGS=''
USE_F77_FALSE=''
USE_F77_TRUE=''
UTIL_LINUX_UUIDROOT=''
UTIL_LINUX_UUID_C_INCLUDE=''
UTIL_LINUX_UUID_C_LIB=''
UUID_C_INCLUDE=''
UUID_C_LIB=''
VERSION='2.0.5'
XML2_LIBS=''
ac_ct_AR='ar'
ac_ct_CC='icc'
ac_ct_CXX='icpc'
ac_ct_DUMPBIN=''
ac_ct_F77=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
ax_pthread_config=''
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /gpfs/home/jin/testdir/cdo-2.0.5/config/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/gpfs/home/jin/tools/pkgs/cdo-2.0.5'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
subdirs_extra=''
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "cdo"
#define PACKAGE_TARNAME "cdo"
#define PACKAGE_VERSION "2.0.5"
#define PACKAGE_STRING "cdo 2.0.5"
#define PACKAGE_BUGREPORT "https://mpimet.mpg.de/cdo"
#define PACKAGE_URL ""
#define CDO "2.0.5"
#define PACKAGE "cdo"
#define VERSION "2.0.5"
#define HAVE_STDIO_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRINGS_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_PARAM_H 1
#define STDC_HEADERS 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define restrict __restrict__

configure: exit 1
