1####################################################################
2# ARCHITECTURE
3####################################################################
4
5set( EC_HAVE_C_INLINE 1 )
6set( EC_HAVE_FUNCTION_DEF 1 )
7set( EC_HAVE_CXXABI_H 1 )
8set( EC_HAVE_CXX_BOOL 1 )
9set( EC_HAVE_CXX_SSTREAM 1 )
10set( EC_HAVE_CXX_INT_128 1 )
11set( CMAKE_SIZEOF_VOID_P 8 )
12set( EC_SIZEOF_PTR 8 )
13set( EC_SIZEOF_CHAR 1 )
14set( EC_SIZEOF_SHORT 2 )
15set( EC_SIZEOF_INT 4 )
16set( EC_SIZEOF_LONG 8 )
17set( EC_SIZEOF_LONG_LONG 8 )
18set( EC_SIZEOF_FLOAT 4 )
19set( EC_SIZEOF_DOUBLE 8 )
20set( EC_SIZEOF_LONG_DOUBLE 16 )
21set( EC_SIZEOF_SIZE_T 8 )
22set( EC_SIZEOF_SSIZE_T 8 )
23set( EC_SIZEOF_OFF_T 8 )
24set( EC_BIG_ENDIAN 0 )
25set( EC_LITTLE_ENDIAN 1 )
26set( IEEE_BE 0 )
27set( IEEE_LE 1 )
28set( EC_HAVE_FSEEK 1 )
29set( EC_HAVE_FSEEKO 1 )
30set( EC_HAVE_FTELLO 1 )
31set( EC_HAVE_LSEEK 0 )
32set( EC_HAVE_FTRUNCATE 0 )
33set( EC_HAVE_OPEN 0 )
34set( EC_HAVE_FOPEN 1 )
35set( EC_HAVE_FMEMOPEN 1 )
36set( EC_HAVE_FUNOPEN 0 )
37set( EC_HAVE_FLOCK 1 )
38set( EC_HAVE_MMAP 1 )
39set( EC_HAVE_POSIX_MEMALIGN 1 )
40set( EC_HAVE_F_GETLK 1 )
41set( EC_HAVE_F_SETLK 1 )
42set( EC_HAVE_F_SETLKW 1 )
43set( EC_HAVE_F_GETLK64 1 )
44set( EC_HAVE_F_SETLK64 1 )
45set( EC_HAVE_F_SETLKW64 1 )
46set( EC_HAVE_MAP_ANONYMOUS 1 )
47set( EC_HAVE_MAP_ANON 1 )
48set( EC_HAVE_ASSERT_H 1 )
49set( EC_HAVE_STDLIB_H 1 )
50set( EC_HAVE_UNISTD_H 1 )
51set( EC_HAVE_STRING_H 1 )
52set( EC_HAVE_STRINGS_H 1 )
53set( EC_HAVE_SYS_STAT_H 1 )
54set( EC_HAVE_SYS_TIME_H 1 )
55set( EC_HAVE_SYS_TYPES_H 1 )
56set( EC_HAVE_MALLOC_H 1 )
57set( EC_HAVE_SYS_MALLOC_H 0 )
58set( EC_HAVE_SYS_PARAM_H 1 )
59set( EC_HAVE_SYS_MOUNT_H 1 )
60set( EC_HAVE_SYS_VFS_H 1 )
61set( EC_HAVE_OFFT 1 )
62set( EC_HAVE_OFF64T 1 )
63set( EC_HAVE_STRUCT_STAT 1 )
64set( EC_HAVE_STRUCT_STAT64 1 )
65set( EC_HAVE_STAT 1 )
66set( EC_HAVE_STAT64 1 )
67set( EC_HAVE_FSTAT 1 )
68set( EC_HAVE_FSTAT64 1 )
69set( EC_HAVE_FSEEKO64 1 )
70set( EC_HAVE_FTELLO64 1 )
71set( EC_HAVE_LSEEK64 1 )
72set( EC_HAVE_OPEN64 1 )
73set( EC_HAVE_FOPEN64 1 )
74set( EC_HAVE_FTRUNCATE64 1 )
75set( EC_HAVE_FLOCK64 1 )
76set( EC_HAVE_MMAP64 1 )
77set( EC_HAVE_STRUCT_STATVFS 1 )
78set( EC_HAVE_STRUCT_STATVFS64 1 )
79set( EC_HAVE_FOPENCOOKIE 1 )
80set( EC_HAVE_FSYNC 1 )
81set( EC_HAVE_FDATASYNC 1 )
82set( EC_HAVE_DIRFD 1 )
83set( EC_HAVE_SYSPROC 0 )
84set( EC_HAVE_SYSPROCFS 1 )
85set( EC_HAVE_EXECINFO_BACKTRACE 1 )
86set( EC_HAVE_GMTIME_R 1 )
87set( EC_HAVE_GETPWUID_R 1 )
88set( EC_HAVE_GETPWNAM_R 1 )
89set( EC_HAVE_READDIR_R 1 )
90set( EC_HAVE_DIRENT_D_TYPE 1 )
91set( EC_HAVE_GETHOSTBYNAME_R 1 )
92set( EC_HAVE_ATTRIBUTE_CONSTRUCTOR 1 )
93set( EC_ATTRIBUTE_CONSTRUCTOR_INITS_ARGV 0 )
94set( EC_HAVE_PROCFS 1 )
95set( EC_HAVE_DLFCN_H 1 )
96set( EC_HAVE_DLADDR 1 )
97
98# Disable relative rpaths as aprun does not respect it
99set( ENABLE_RELATIVE_RPATHS OFF CACHE STRING "Disable relative rpaths" FORCE )
100
101####################################################################
102# COMPILER
103####################################################################
104
105include(CMakeForceCompiler)
106
107CMAKE_FORCE_C_COMPILER       ( cc  GNU )
108CMAKE_FORCE_CXX_COMPILER     ( CC  GNU )
109CMAKE_FORCE_Fortran_COMPILER ( ftn GNU )
110
111set( ECBUILD_FIND_MPI OFF )
112set( ECBUILD_TRUST_FLAGS ON )
113
114####################################################################
115# OpenMP FLAGS
116####################################################################
117
118set( OMP_C_FLAGS             "-fopenmp" )
119set( OMP_CXX_FLAGS           "-fopenmp" )
120set( OMP_Fortran_FLAGS       "-fopenmp" )
121
122####################################################################
123# DEBUG FLAGS
124####################################################################
125
126set( ECBUILD_C_FLAGS_DEBUG        "-O0 -g -ftrapv" )
127set( ECBUILD_CXX_FLAGS_DEBUG      "-O0 -g -ftrapv" )
128set( ECBUILD_Fortran_FLAGS_DEBUG  "-ffree-line-length-none -O0 -g -fcheck=bounds -fbacktrace -finit-real=snan -ffpe-trap=invalid,zero,overflow" )
129
130####################################################################
131# LINK FLAGS
132####################################################################
133
134set( ECBUILD_SHARED_LINKER_FLAGS "-Wl,--eh-frame-hdr" )
135set( ECBUILD_MODULE_LINKER_FLAGS "-Wl,--eh-frame-hdr -Wl,-Map,loadmap" )
136set( ECBUILD_EXE_LINKER_FLAGS    "-Wl,--eh-frame-hdr -Wl,-Map,loadmap -Wl,--as-needed" )
137
138####################################################################
139# LIBRARIES
140####################################################################
141
142# Don't search for LAPACK as it is provided by the cray-libsci module which is
143# loaded by default
144set( LAPACK_FOUND $ENV{CRAY_LIBSCI_PREFIX_DIR} )
145