Project

General

Profile

config.h

Venkat Reddy, 10/01/2015 08:05 AM

 
1
/*
2
 * This file is part of the GROMACS molecular simulation package.
3
 *
4
 * Copyright (c) 2009,2010,2011,2012,2013,2014,2015, by the GROMACS development team, led by
5
 * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
6
 * and including many others, as listed in the AUTHORS file in the
7
 * top-level source directory and at http://www.gromacs.org.
8
 *
9
 * GROMACS is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU Lesser General Public License
11
 * as published by the Free Software Foundation; either version 2.1
12
 * of the License, or (at your option) any later version.
13
 *
14
 * GROMACS is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 * Lesser General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public
20
 * License along with GROMACS; if not, see
21
 * http://www.gnu.org/licenses, or write to the Free Software Foundation,
22
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
23
 *
24
 * If you want to redistribute modifications to GROMACS, please
25
 * consider that scientific software is very special. Version
26
 * control is crucial - bugs must be traceable. We will be happy to
27
 * consider code for inclusion in the official distribution, but
28
 * derived work must not be called official GROMACS. Details are found
29
 * in the README & COPYING files - if they are missing, get the
30
 * official version at http://www.gromacs.org.
31
 *
32
 * To help us fund GROMACS development, we humbly ask that you cite
33
 * the research papers on the package. Check out http://www.gromacs.org.
34
 */
35
/*! \libinternal \file
36
 * \brief
37
 * Include file for configuration macros from the build system.
38
 *
39
 * This header is not installed, so headers must not reference macros defined
40
 * here.
41
 *
42
 * \inlibraryapi
43
 */
44
#ifndef GMX_CONFIG_H
45
#define GMX_CONFIG_H
46

    
47
/* TODO: For now, disable Doxygen warnings from here */
48
/*! \cond */
49

    
50
/* IEEE754 floating-point format. Memory layout is defined by macros
51
 * GMX_IEEE754_BIG_ENDIAN_BYTE_ORDER and GMX_IEEE754_BIG_ENDIAN_WORD_ORDER. 
52
 */
53
#define GMX_FLOAT_FORMAT_IEEE754 1
54

    
55
/* Work around broken calloc() */
56
/* #undef GMX_BROKEN_CALLOC */
57

    
58
/* Do not optimize FFTW setups (not needed with SSE FFT kernels) */
59
#define GMX_DISABLE_FFTW_MEASURE 0
60

    
61
/* Use FFTW3 FFT library */
62
#define GMX_FFT_FFTW3 1
63

    
64
/* Target platform is x86 or x86_64 */
65
#define GMX_TARGET_X86
66

    
67
/* Target platform is BlueGene/Q */
68
/* #undef GMX_TARGET_BGQ */
69

    
70
/** Define if we are building natively on Windows */
71
/* #undef GMX_NATIVE_WINDOWS */
72

    
73
/** Define if we are building for Cygwin */
74
/* #undef GMX_CYGWIN */
75

    
76
/** Define if we have sufficient C++11 support */
77
#define GMX_CXX11 1
78

    
79
/* GCC bug in AVX maskload/maskstore arguments - worked around internally */
80
/* #undef GMX_SIMD_X86_AVX_GCC_MASKLOAD_BUG */
81

    
82
/* SSE2 was selected for SIMD instruction set level */
83
/* #undef GMX_SIMD_X86_SSE2 */
84

    
85
/* SSE4.1 was selected as SIMD instructions */
86
#define GMX_SIMD_X86_SSE4_1
87

    
88
/* AVX 128-bit FMA was selected as SIMD instructions */
89
/* #undef GMX_SIMD_X86_AVX_128_FMA */
90

    
91
/* AVX 256-bit was selected as SIMD instructions */
92
/* #undef GMX_SIMD_X86_AVX_256 */
93

    
94
/* AVX2 256-bit SIMD instruction set level was selected */
95
/* #undef GMX_SIMD_X86_AVX2_256 */
96

    
97
/* MIC (Xeon Phi) SIMD instruction set level was selected */
98
/* #undef GMX_SIMD_X86_MIC */
99

    
100
/* AVX-512F foundation level instruction SIMD */
101
/* #undef GMX_SIMD_X86_AVX_512F */
102

    
103
/* AVX-512ER foundation level instruction SIMD */
104
/* #undef GMX_SIMD_X86_AVX_512ER */
105

    
106
/* 32-bit ARM NEON SIMD instruction set level was selected */
107
/* #undef GMX_SIMD_ARM_NEON */
108

    
109
/* ARM (AArch64) NEON Advanced SIMD instruction set level was selected */
110
/* #undef GMX_SIMD_ARM_NEON_ASIMD */
111

    
112
/* IBM QPX was selected as SIMD instructions (e.g. BlueGene/Q) */
113
/* #undef GMX_SIMD_IBM_QPX */
114

    
115
/* IBM VMX was selected as SIMD instructions (Power 6 and later) */
116
/* #undef GMX_SIMD_IBM_VMX */
117

    
118
/* IBM VSX was selected as SIMD instructions (Power 7 and later) */
119
/* #undef GMX_SIMD_IBM_VSX */
120
 
121
/* Fujitsu Sparc64 HPC-ACE SIMD acceleration */
122
/* #undef GMX_SIMD_SPARC64_HPC_ACE */
123

    
124
/* Reference SIMD implementation for testing */
125
/* #undef GMX_SIMD_REFERENCE */
126

    
127
/* String for SIMD instruction choice (for writing to log files and stdout) */
128
#define GMX_SIMD_STRING "SSE4.1"
129

    
130
/* Calling convention string (if any) for routines with SIMD variable args */
131
#define gmx_simdcall 
132

    
133
/* Target mantissa accuracy for SIMD single precision math */
134
#define GMX_SIMD_ACCURACY_BITS_SINGLE 22
135

    
136
/* Target mantissa accuracy for SIMD double precision math */
137
#define GMX_SIMD_ACCURACY_BITS_DOUBLE 44
138

    
139
/* Integer byte order is big endian. */
140
#define GMX_INTEGER_BIG_ENDIAN 0
141

    
142
/* Use our own instead of system XDR libraries */
143
#define GMX_INTERNAL_XDR 0
144

    
145
/* Compile to use TNG library */
146
#define GMX_USE_TNG
147

    
148
/* Add support for tracing using Extrae */
149
#define HAVE_EXTRAE 0
150

    
151
/* Use MPI (with mpicc) for parallelization */
152
/* #undef GMX_LIB_MPI */
153

    
154
/* Use threads_mpi for parallelization */
155
#define GMX_THREAD_MPI
156

    
157
#if defined GMX_LIB_MPI || defined GMX_THREAD_MPI
158
/* Make a parallel version of GROMACS using message passing
159
   (MPI or thread_mpi) */
160
#define GMX_MPI
161
#endif
162

    
163
/* MPI_IN_PLACE exists for collective operations */
164
#define MPI_IN_PLACE_EXISTS
165

    
166
/* Use OpenMP multithreading */
167
#define GMX_OPENMP
168

    
169
/* Can and should use nice(3) to set priority */
170
#define GMX_USE_NICE
171

    
172
/* Maximum number of OpenMP threads supported */
173
#define GMX_OPENMP_MAX_THREADS 32
174

    
175
/* Use if we cannot rename checkpoints */
176
#define GMX_NO_RENAME 0
177

    
178
/* Use (modified) Gamess-UK for QM-MM calculations */
179
#define GMX_QMMM_GAMESS 0
180

    
181
/* Use (modified) Gaussian0x for QM-MM calculations */
182
#define GMX_QMMM_GAUSSIAN 0
183

    
184
/* Use (modified) Mopac 7 for QM-MM calculations */
185
#define GMX_QMMM_MOPAC 0
186

    
187
/* Use ORCA for QM-MM calculations */
188
#define GMX_QMMM_ORCA 0
189

    
190
/* Use the GROMACS software 1/sqrt(x) */
191
#define GMX_SOFTWARE_INVSQRT
192

    
193
/* Use sub-counters */
194
/* #undef GMX_CYCLE_SUBCOUNTERS */
195

    
196
/* Compile with plugin support */
197
#define GMX_USE_PLUGINS
198

    
199
/* Fallback path for VMD plug-ins */
200
#define GMX_VMD_PLUGIN_PATH "/usr/local/lib/vmd/plugins/*/molfile"
201

    
202
/* Define when pthreads are used */
203
#define THREAD_PTHREADS
204

    
205
/* Define when Windows threads are used */
206
/* #undef THREAD_WINDOWS */
207

    
208
/* Define native atomic operations are found */
209
#define TMPI_ATOMICS
210

    
211
/* Define for busy wait option  */
212
/* See gmxpre-config.h.cmakein for explanation for the #ifdef */
213
#ifndef TMPI_WAIT_FOR_NO_ONE
214
/* #undef TMPI_WAIT_FOR_NO_ONE */
215
#endif
216

    
217
/* Define for copy buffer option */
218
/* #undef TMPI_COPY_BUFFER */
219

    
220
/* Define for tmpi warnings option */
221
/* #undef TMPI_WARNINGS */
222

    
223
/* Define for profiling option */
224
/* #undef TMPI_PROFILE */
225

    
226
/* Define for Linux pthread_setaffinity_np */
227
#define HAVE_PTHREAD_SETAFFINITY
228

    
229
/* Define for X-Windows */
230
#define GMX_X11 0
231

    
232
/* Enable x86 gcc inline assembly */
233
#define GMX_X86_GCC_INLINE_ASM
234

    
235
/* Use GPU native acceleration */
236
/* #undef GMX_GPU */
237

    
238
/* CUDA runtime API version (identical to CUDART_VERSION from cuda_runtime_api.h) */
239
/* #undef GMX_CUDA_VERSION */
240

    
241
/* Use NVML */
242
/* #undef HAVE_NVML */
243

    
244
/* Use OpenCL acceleators */
245
/* #undef GMX_USE_OPENCL */
246

    
247
/* Define relative path to OpenCL kernels */
248
#define OCL_INSTALL_DIR "share/gromacs/opencl"
249

    
250
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
251
#define HAVE_FSEEKO
252

    
253
/* Define to 1 if _fseeki64 (and presumably _fseeki64) exists and is declared. */
254
/* #undef HAVE__FSEEKI64 */
255

    
256
/* Have io.h (windows)*/
257
/* #undef HAVE_IO_H */
258

    
259
/* Define to 1 if you have the posix_memalign() function. */
260
#define HAVE_POSIX_MEMALIGN
261

    
262
/* Define to 1 if you have the memalign() function. */
263
/* #undef HAVE_MEMALIGN */
264

    
265
/* Define to 1 if you have the MSVC _aligned_malloc() function. */
266
/* #undef HAVE__ALIGNED_MALLOC */
267

    
268
/* Define to 1 if you have the clock_gettime() function. */
269
#define HAVE_CLOCK_GETTIME
270

    
271
/* Define to 1 if you have the gettimeofday() function. */
272
#define HAVE_GETTIMEOFDAY
273

    
274
/* Define to 1 if you have the rdtscp instruction. */
275
/* #undef HAVE_RDTSCP */
276

    
277
/* Define to 1 if you have the isfinite() function. */
278
#define HAVE_ISFINITE
279

    
280
/* Define to 1 if you have the _isfinite() function. */
281
/* #undef HAVE__ISFINITE */
282

    
283
/* Define to 1 if you have the _finite() function. */
284
/* #undef HAVE__FINITE */
285

    
286
/* Define to 1 if you have the fsync() function. */
287
#define HAVE_FSYNC
288

    
289
/* Define to 1 if you have the Windows _commit() function. */
290
/* #undef HAVE__COMMIT */
291

    
292
/* Define to 1 if you have the fileno() function. */
293
#define HAVE_FILENO
294

    
295
/* Define to 1 if you have the _fileno() function. */
296
/* #undef HAVE__FILENO */
297

    
298
/* Define to 1 if you have the sigaction() function. */
299
#define HAVE_SIGACTION
300

    
301
/* Define to 1 if you have the rsqrt() function. */
302
/* #undef HAVE_RSQRT */
303

    
304
/* Define to 1 if you have the rsqrtf() function. */
305
/* #undef HAVE_RSQRTF */
306

    
307
/* Define to 1 if you have the sqrtf() function. */
308
#define HAVE_SQRTF
309

    
310
/* Define to 1 if yo have the <unistd.h> header file. */
311
#define HAVE_UNISTD_H
312

    
313
/* Define to 1 if yo have the <pwd.h> header file. */
314
#define HAVE_PWD_H
315

    
316
/* Define to 1 if yo have the <dirent.h> header file. */
317
#define HAVE_DIRENT_H
318

    
319
/* Define to 1 if you have the <sys/time.h> header file. */
320
#define HAVE_SYS_TIME_H
321

    
322
/* Define to 1 if you have the <x86intrin.h> header file */
323
/* #undef HAVE_X86INTRIN_H */
324

    
325
/* Define to 1 if you have the <intrin.h> header file */
326
/* #undef HAVE_INTRIN_H */
327

    
328
/* Define to 1 if you have the <sched.h> header */
329
#define HAVE_SCHED_H
330

    
331
/* Define to 1 if you have the POSIX <regex.h> header file. */
332
#define HAVE_POSIX_REGEX 1
333

    
334
/* Define to 1 if you have the C++11 <regex> header file. */
335
#define HAVE_CXX11_REGEX 0
336

    
337
/* Define to 1 if you have the sysconf() function */
338
#define HAVE_SYSCONF
339

    
340
/* Define to 1 if you have the all the affinity functions in sched.h */
341
#define HAVE_SCHED_AFFINITY
342

    
343
/* Bytes in IEEE fp word are in big-endian order if set, little-endian if not.
344
   Only relevant when FLOAT_FORMAT_IEEE754 is defined. */
345
#define GMX_IEEE754_BIG_ENDIAN_BYTE_ORDER 0
346

    
347
/* The two words in a double precision variable are in b ig-endian order if
348
   set, little-endian if not. Do NOT assume this is the same as the byte
349
   order! Only relevant when FLOAT_FORMAT_IEEE754 is defined. */
350
#define GMX_IEEE754_BIG_ENDIAN_WORD_ORDER 0
351

    
352
/* Define if SIGUSR1 is present */
353
#define HAVE_SIGUSR1 1
354

    
355
/* Enable gromacs quotes */
356
#define GMX_COOL_QUOTES 1
357

    
358
/* default name mangling maybe wrong on exotic plattforms */
359
#define F77_FUNC(name,NAME) name ## _
360

    
361
/* Define if we have pipes */
362
#define HAVE_PIPES 1
363

    
364
/* Define if we have feenableexcept */
365
#define HAVE_FEENABLEEXCEPT 1
366

    
367
/* Define if we have zlib */
368
#define HAVE_ZLIB 1
369

    
370
/*! \endcond */
371

    
372
#endif