Merge branch 'master' of git://git.gromacs.org/gromacs
[gromacs/adressmacs.git] / configure.ac
blob431f66dd9a584966e267711cc90a17705f5e8e3a
1 #######################################################################
2 # Process this file wth autoconf to produce a configure script.
3 #######################################################################
4  
5 AC_PREREQ(2.50)
6 AC_INIT(gromacs, 4.0.99-dev-20100305, [gmx-users@gromacs.org])
7 AC_CONFIG_SRCDIR(src/gmxlib/3dview.c)
8 AC_CONFIG_AUX_DIR(config)
9 AC_CANONICAL_HOST
11 AM_INIT_AUTOMAKE(tar-ustar)
12 AC_PREFIX_DEFAULT(/usr/local/gromacs)
14 AM_CONFIG_HEADER(src/config.h)
15 dnl This is the version info according to the libtool versioning system.
16 dnl It does *not* correspond to the release number.
17 SHARED_VERSION_INFO="5:0:0"
18 AC_SUBST(SHARED_VERSION_INFO)
20 AC_DISABLE_SHARED
23 #######################################################################
24 # Simple options and makefile variables
25 #######################################################################
27 # This is currently not defined by CMake, because it's tricky to generate
28 # version.h portably (the autoconf rules for it are in src/gmxlib/Makefile.am).
29 AC_DEFINE(USE_VERSION_H,,[Use the version string from generated version.h])
31 ### Single/Double
32 AC_ARG_ENABLE(float,
33              [AC_HELP_STRING([--disable-float],
34                              [Use double instead of single precision])],, enable_float=yes)
36 AC_ARG_ENABLE(double,
37              [AC_HELP_STRING([--enable-double],
38                              [Same effect as --disable-float])],, enable_double=no)
39 if test "$enable_double" = "yes"; then
40    enable_float=no;
42 if test "$enable_float" = "no"; then
43   AC_DEFINE(GMX_DOUBLE,,[Compile in double precision])
45 AM_CONDITIONAL([GMX_DOUBLE],[test "$enable_float" = "no"])
49 ### Fortran or not
50 AC_ARG_ENABLE(fortran,
51              [AC_HELP_STRING([--enable-fortran],
52                              [Use Fortran kernels])],, 
53 [case "${host_cpu}-${host_os}" in
54   sparc*-solaris* | alpha*-* | rs6000*-aix* | powerpc*-aix* | mips*-irix*) enable_fortran=yes ;;
55   *) enable_fortran=no ;;
56  esac])
57 if test "$enable_fortran" = "yes"; then
58   AC_DEFINE(GMX_FORTRAN,,[Enable Fortran support])
60 # Generic fortran kernels will be turned off below if you enable power6-specific optimization!
61 # always use CC for linking:
62 AC_SUBST(F77LINK,"\$(LINK)")
68 ### MPI or not
69 AC_ARG_ENABLE(mpi,
70               [AC_HELP_STRING([--enable-mpi],
71                               [Compile for parallel runs using MPI]
72                               [(instead of threads)])],,enable_mpi=no)
75 ### MPI environment
76 AC_ARG_ENABLE(mpi-environment,
77               [AC_HELP_STRING([--enable-mpi-environment=VAR],
78                               [Only start parallel runs when VAR is set])],,
79 [case "${host_cpu}" in
80   mips*-irix*) enable_mpi_environment="MPI_ENVIRONMENT" ;;
81   *) enable_mpi_environment=no ;;
82 esac])
83 if test "$enable_mpi_environment" != "no"; then
84   AC_DEFINE_UNQUOTED(GMX_CHECK_MPI_ENV,"$enable_mpi_environment",[If defined, only start MPI runs when this variable is set])
87 ### MPI_IN_PLACE
88 AC_ARG_ENABLE(mpi-in-place,
89               [AC_HELP_STRING([--disable-mpi-in-place],
90                               [Disable MPI_IN_PLACE. For MPI implementations]
91                               [that have broken support for it ]
92                               [(some versions of MPICH, for example).])],, enable_mpi_in_place=yes)
96 AC_ARG_ENABLE(debug,
97               [AC_HELP_STRING([--enable-debug],
98                               [Add -g to other command line arguments])],,enable_debug=no)
100 ### IA32 assembly code
101 AC_ARG_ENABLE(ia32_sse,
102               [AC_HELP_STRING([--disable-ia32-sse],
103                               [Don't build SSE/SSE2 assembly loops on ia32])],,enable_ia32_sse=yes)
105 case "${host_cpu}-${host_vendor}" in
106    i?86-*) ;;
107    *) enable_ia32_sse=no ;;
108 esac
110 ### AMD64 assembly code
111 AC_ARG_ENABLE(x86_64_sse,
112               [AC_HELP_STRING([--disable-x86-64-sse],
113                               [Don't build SSE assembly loops on X86_64])],,enable_x86_64_sse=yes)
114 case "${host_cpu}-${host_vendor}" in
115    x86_64-* | amd64-*) ;;
116    i?86-apple) ;;
117    *) enable_x86_64_sse=no ;;
118 esac
121 ### Altivec on powerpc (motorola)
122 AC_ARG_ENABLE(ppc_altivec,
123               [AC_HELP_STRING([--disable-ppc-altivec],
124                               [Don't build Altivec loops on PowerPC])],,enable_ppc_altivec=undef)
125 # Power3/4/5 running AIX does not support altivec. We identify this with vendor=IBM.
126 # IBM powerpc 970 boxes run linux, and have vendor=unknown.
127 if test "$enable_ppc_altivec" = "undef"; then
128   case "${host_cpu}-${host_vendor}" in
129     ppc*-ibm* | powerpc*-ibm*) enable_ppc_altivec=no ;;
130     ppc*-* | powerpc*-*) enable_ppc_altivec=yes ;; 
131     *) enable_ppc_altivec=no ;;
132   esac
137 ### ia64 assembly code
138 AC_ARG_ENABLE(ia64_asm,
139               [AC_HELP_STRING([--disable-ia64-asm],
140                               [Don't build assembly loops on ia64])],,enable_ia64_asm=yes)
141 case "${host_cpu}" in
142    ia64) ;;
143    *) enable_ia64_asm=no ;;
144 esac
147 # IBM Power6-specific optimization
148 AC_ARG_ENABLE(power6,
149              [AC_HELP_STRING([--enable-power6],
150                              [Use IBM Pwr6/PPC440/PPC450-specific F77 kernels])],,enable_power6=no)
151 # Turn off generic fortran loops if we are using power6-specific optimization
152 if test "$enable_power6" = "yes"; then
153   enable_fortran=no;
156 AC_ARG_ENABLE(bluegene,
157               [AC_HELP_STRING([--enable-bluegene],
158                               [Build assembly intrinsics kernels on bluegene])],,enable_bluegene=no)
161 ### Optimize for host cpu version
162 AC_ARG_ENABLE(cpu-optimization,     
163               [AC_HELP_STRING([--disable-cpu-optimization],
164                               [No detection or tuning flags for cpu version])],, enable_cpu_optimization=yes)
167 ### Do software 1/sqrt(x)                                                                                                            
168 AC_ARG_ENABLE(software-invsqrt,
169               [AC_HELP_STRING([--disable-software-invsqrt],
170                               [No software 1/sqrt (disabled on sgi,ibm,ia64)])],,
171 [case "${host_cpu}-${host_os}" in
172   mips*-irix* | rs6000*-aix* | powerpc*-aix | ia64*-*) enable_software_invsqrt=no ;;
173   *) enable_software_invsqrt=yes ;;
174 esac])
175 if test "$enable_software_invsqrt" = "yes"; then
176   AC_DEFINE(GMX_SOFTWARE_INVSQRT,,[Use the GROMACS software 1/sqrt(x)])
178 AM_CONDITIONAL([GMX_SOFTWARE_INVSQRT],[test "$enable_software_invsqrt" = "yes"])
180 AC_ARG_ENABLE(fahcore,
181               [AC_HELP_STRING([--enable-fahcore],
182                               [Create a library with mdrun functionality])],, enable_fahcore=no)
186 # The four options below used to improve code scheduling, but the newest CPUs can usually rearrange
187 # instructions dynamically at runtime, so they might not make much difference now:
190 AC_ARG_ENABLE(all-static,
191               [AC_HELP_STRING([--enable-all-static],
192                               [Make completely static binaries])],, enable_all_static=no)
193 # Dont add the -all-static flag until after the compiler test.
195 AC_ARG_ENABLE(cgunits,
196               [AC_HELP_STRING([--enable-cgunits],
197                               [Build a gromacs with uses reduced units])],,enable_cgunits=no)
199 if test "$enable_cgunits" = "yes"; then
200   AC_DEFINE(CGUNITS,,[Use reduced (CG) units])
203 # FFT libraries - only use one...
204 AC_ARG_WITH(fft,
205             [AC_HELP_STRING([--with-fft=@<:@fftw3/fftw2/mkl(>=6.0)/fftpack@:>@],
206                             [FFT library to use. fftw3 is default, fftpack built in.])],,
207                              with_fft=fftw3)
209 AC_ARG_ENABLE(fftw-measure,
210             [AC_HELP_STRING([--disable-fftw-measure],
211                             [Dont optimize FFTs. This produces binary exactly]
212                             [reproducible runs (as the -reprod flag to mdrun),]
213                             [and if you are using FFTW on x86 and specified its]
214                             [--enable-sse/sse2 flag (NOT default in FFTW!) the]
215                             [kernels used are close-to-optimal anyway.])],,
216                              enable_fftw_measure=yes)
219 AC_ARG_ENABLE(threads,
220               [AC_HELP_STRING([--disable-threads],    
221                               [Disable parallel runs using threads])],,enable_threads=yes)
224 ### Use external BLAS/LAPACK libraries if the user wants to.
226 AC_ARG_WITH(external_blas,
227             [AC_HELP_STRING([--with-external-blas],
228                             [Use system BLAS library (add to LIBS). Automatic on OS X.])],,
230 # default action - check if we are on OS X
231 case "${host_vendor}-${host_os}" in
232   apple-darwin*) with_external_blas="yes" ; extra_LDFLAGS="-framework Accelerate" ;;
233   *)             with_external_blas="no"  ;;
234 esac
236 AM_CONDITIONAL([GMX_EXTERNAL_BLAS], [test "$with_external_blas" = "yes"])
239 AC_ARG_WITH(external_lapack,
240             [AC_HELP_STRING([--with-external-lapack],
241                             [Use system LAPACK library (add to LIBS). Automatic on OS X.])],,
243 # default action - check if we are on OS X
244 case "${host_vendor}-${host_os}" in
245   apple-darwin*) with_external_lapack="yes" ; extra_LDFLAGS="-framework Accelerate" ;;
246   *)             with_external_lapack="no"  ;;
247 esac
249 AM_CONDITIONAL([GMX_EXTERNAL_LAPACK], [test "$with_external_lapack" = "yes"])
254 AC_ARG_WITH(qmmm_gaussian,
255               [AC_HELP_STRING([--without-qmmm-gaussian],
256                               [Use modified Gaussian0x for QM-MM (see website)])],,with_qmmm_gaussian=yes)
257 if test "$with_qmmm_gaussian" = "yes"; then
258   AC_DEFINE(GMX_QMMM_GAUSSIAN,,[Use (modified) Gaussian0x for QM-MM calculations])
262 AC_ARG_WITH(qmmm_gamess,
263               [AC_HELP_STRING([--without-qmmm-gamess],
264                               [Use modified Gamess-UK for QM-MM (see website)])],,with_qmmm_gamess=no)
265 if test "$with_qmmm_gamess" = "yes"; then
266   AC_DEFINE(GMX_QMMM_GAMESS,,[Use (modified) Gamess-UK for QM-MM calculations])
270 AC_ARG_WITH(qmmm_mopac,
271               [AC_HELP_STRING([--without-qmmm-mopac],
272                               [Use modified Mopac 7 for QM-MM (see website)])],,with_qmmm_mopac=no)
273 if test "$with_qmmm_mopac" = "yes"; then
274   AC_DEFINE(GMX_QMMM_MOPAC,,[Use (modified) Mopac 7 for QM-MM calculations])
277 AC_ARG_WITH(dlopen,
278             [AC_HELP_STRING([--without-dlopen],
279                             [do not compile with dlopen, needed to read VMD]
280                             [supported file formats])],,with_dlopen=yes)
284    
286 ############################################################
287 # Add some debug info: Who is building, and on what machine?
288 ############################################################
289 AC_DEFINE_UNQUOTED([BUILD_TIME],["`date`"],[Date and time for build])
290 AC_DEFINE_UNQUOTED([BUILD_USER],["`whoami`@`hostname`"],[User doing build])
291 AC_DEFINE_UNQUOTED([BUILD_MACHINE],["`uname -srm`"],[Hardware and OS version for build host])
295 ############################################################
296 # Checks for programs
297 ############################################################
299 # normally we use the default compiler, but on alpha/linux we try the compaq ones first
300 case "${host_cpu}-${host_os}" in
301   alpha*-linux*)
302     cc_names="ccc cc gcc"
303     f77_names="fort f77 g77"
304     ;;
305   *) 
306     cc_names="cc icc xlc gcc"
307     f77_names="f77 ifort xlf xlf77 cf77 fl32 g77 fort77 f90 xlf90 pgf77 cf77 fort fort77 pgf90"
308     ;;
309 esac
310 # the (non-mpi) c compiler, which is also used for programs executed during build stage
311 AC_PROG_CC( $cc_names )
312 # Check for environment variable CC_FOR_BUILD before overwriting it
313 if test -z "$CC_FOR_BUILD"; then
314   CC_FOR_BUILD=$CC
316 AC_SUBST(CC_FOR_BUILD) 
318 if test "$enable_fortran" = "yes"; then 
319   AC_PROG_F77( $f77_names )
320   if test -z "$F77"; then
321     AC_MSG_ERROR([No fortran compiler found])
322   fi
325 AM_PROG_AS( $CC )
327 # if we are using mpi, also get an MPICC. We cannot set that in the PROG_CC macro
328 # above, since autoconf checks that the created file can be executed. This would
329 # fail on platforms where MPI executables can only be run through a batchqueue.
331 if test "$enable_mpi" = "yes"; then
332   enable_threads="no"
333   AC_CHECK_PROGS(MPICC, mpxlc mpicc mpcc hcc, $CC)
334 # now change the normal cc to the MPI one - see the comment above.
335   CC=$MPICC
336   CXX=$MPICC
337   AC_MSG_CHECKING([whether the MPI cc command works]) # be paranoid
338   AC_TRY_LINK([#include <mpi.h>],[int argc; char **argv; MPI_Init(&argc,&argv);],
339 AC_MSG_RESULT([yes]),AC_MSG_ERROR([Cannot compile and link MPI code with $CC]))
340   AC_DEFINE(GMX_MPI,,[Make a parallel version of GROMACS using MPI])
341   AC_DEFINE(GMX_LIB_MPI,,[Use a real MPI library])
343   if test "$enable_mpi_in_place" = "yes"; then
344     # not all MPIs support MPI_IN_PLACE:
345     AC_MSG_CHECKING([for MPI_IN_PLACE in collective operations])
346     AC_TRY_COMPILE([
347 #include <mpi.h>
348 void test(void)
350     void *buf;
351     MPI_Allreduce(MPI_IN_PLACE, buf, 10, MPI_FLOAT, MPI_SUM, MPI_COMM_WORLD);
353     ],,[
354         AC_MSG_RESULT([yes])
355         AC_DEFINE(MPI_IN_PLACE_EXISTS,[],[MPI_IN_PLACE available for collective operations])
356     ],[
357         AC_MSG_RESULT([no])
358     ]) 
359   fi
361 # on the cray xt3 we have to tell autoconf that we 
362 # are actually cross-compiling even if the architecture
363 # of host and target are the same. so we enforce 
364 # cross-compilation if __QK_USER__ is defined
365   AC_MSG_CHECKING([for catamount])
366   AC_TRY_COMPILE([
367 #if defined __QK_USER__
368 #else
369 #error not catamount
370 #endif
371 ],,[
372   AC_MSG_RESULT([yes])
373   cross_compiling=yes 
374   AC_DEFINE(GMX_CRAY_XT3,[],[Enable special hacks for Cray XT3])
375   AC_DEFINE(GMX_NO_SYSTEM,[],[Ignore calls to system(3)])
376   AC_DEFINE(GMX_NO_NICE,[],[Ignore calls to nice(3)])
377   AC_DEFINE(GMX_BROKEN_CALLOC,[],[Don't use calloc(3)])
378   extra_LDFLAGS="$extra_LDFLAGS -lgmalloc -lacml"
380   AC_MSG_RESULT([no])
382 # end of "$enable_mpi" = "yes"
386 AH_TEMPLATE([F77_OR_C_FUNC],
387             [Set to F77_FUNC(name,NAME) if Fortran used, otherwise 'name' for C.])
388 AH_TEMPLATE([F77_OR_C_FUNC_],
389             [Set to F77_FUNC_(name,NAME) if Fortran used, otherwise 'name' for C.])
393 if test "$enable_fortran" = "yes"; then
394   AC_F77_LIBRARY_LDFLAGS
395   AC_F77_WRAPPERS
396   AC_DEFINE([F77_OR_C_FUNC(name,NAME)],[F77_FUNC(name,NAME)])
397   AC_DEFINE([F77_OR_C_FUNC_(name,NAME)],[F77_FUNC_(name,NAME)])
398 else
399   AC_DEFINE([F77_OR_C_FUNC(name,NAME)],[name])
400   AC_DEFINE([F77_OR_C_FUNC_(name,NAME)],[name])
405 AC_PROG_CPP
406 # Needed by libtool scripts?
407 AC_PROG_EGREP
409 if test "$enable_cpu_optimization" = "yes"; then
410   ACX_DETECT_GMXCPU
411 else
412   gmxcpu=""
414 ACX_COMPILER_MAXOPT
417 # We've postponed the threads check because we need to check with the right
418 # compilers/flags 
419 if test "$enable_threads" = "yes"; then 
420   if test "$enable_mpi" = "yes"; then
421     AC_MSG_ERROR([Cannot use both threads and MPI - yet.])
422   fi
423   if test "$with_fft" = "fftw2"; then
424     AC_MSG_ERROR([fftw2 can't be used with threads. Use fftw3 or mkl.])
425   fi 
426   AC_CHECK_HEADERS(unistd.h)
427   AC_CHECK_HEADERS(sys/time.h)
428   AC_CHECK_HEADERS(sched.h)
429   AC_CHECK_FUNCS(sysconf)
431   # for now we just assume pthreads
432   ACX_PTHREAD(,AC_MSG_ERROR([Cannot find POSIX threads - required for thread support using configure!]))
433   LIBS="$PTHREAD_LIBS $LIBS"
434   CFLAGS="$CFLAGS $PTHREAD_CFLAGS -I$srcdir/include"
435   CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS -I$srcdir/include"
436   CC="$PTHREAD_CC "
437   AC_DEFINE(THREAD_PTHREADS,,[Use pthreads for thread_mpi multithreading])
439   # profiling
440   AC_ARG_ENABLE(tmpi-profiling,
441               [AC_HELP_STRING([--enable-tmpi-profiling],
442               [Enables profiling of thread_mpi calls and wait times])],,
443               enable_tmpi_profiling=no)
444   if test "x$enable_tmpi_profiling" = "xyes"; then
445     AC_DEFINE(TMPI_PROFILE,,[Enable profiling for call and wait times])
446   fi
448   # check the atomics
449   AC_MSG_CHECKING(if atomic operations are supported)
450   CFLAGS_RET="$CFLAGS"
451   CXXFLAGS_RET="$CXXFLAGS"
452   CFLAGS="$CFLAGS -I$srcdir/include -DTMPI_CHECK_ATOMICS"
453   CXXFLAGS="$CXXFLAGS -I$srcdir/include -DTMPI_CHECK_ATOMICS"
454   # this sets a variable 'tmpi_atomics' to 'yes' if there are atomics. 
455   AC_COMPILE_IFELSE([#include "thread_mpi/atomic.h" ],
456                       [AC_MSG_RESULT(yes); tmpi_atomics=yes],
457                       [AC_MSG_WARN(
458 [No atomics.
460 This compiler+CPU combination doesn't have working atomics.
461 Thread support will be unbearably slow: disable threads.
463 Atomics should work on all but the most obscure CPU+compiler combinations;
464 if your system is not obscure -- like, for example, x86 with gcc --  please
465 contact the developers.
466 ]); tmpi_atomics=no])
467   CFLAGS="$CFLAGS_RET"
468   CXXFLAGS="$CXXFLAGS_RET"
470   AC_DEFINE(GMX_THREADS,,[Use threads for parallelization])
471   AC_DEFINE(GMX_MPI,,[Make a parallel version of GROMACS using MPI])
472   AM_CONDITIONAL(THREAD_PARALLEL,true)
473 else
474   AM_CONDITIONAL(THREAD_PARALLEL,false)
479 #############
480 # Check integer endian
481 #############
482 AC_C_BIGENDIAN([AC_DEFINE([GMX_INTEGER_BIG_ENDIAN],,[Integer byte order is big endian.])],[],[
483 AC_MSG_ERROR([Cannot determine endian in compiled output])])
484 # Little endian implied if GMX_INTEGER_BIG_ENDIAN not defined in source.
486 #############
487 # Make sure size_t can hold pointers.
488 # On some Nec machines, you reportedly need to specify a flag for size_t to be 64 bits wide.
489 #############
490 AC_MSG_CHECKING([that size_t can hold pointers])
491 AC_TRY_COMPILE([
492 #include <stdlib.h>
493 #include <stddef.h>
494 ],[int chk[sizeof(size_t)-sizeof(int *)+1];],AC_MSG_RESULT([yes]),[
495    AC_MSG_ERROR([size_t is smaller than int*. Check if your compiler needs a flag to make it 64 bit.])])
498 #############
499 # Check that SIGUSR1 is defined
500 #############
501 AC_MSG_CHECKING([for SIGUSR1])
502 AC_TRY_COMPILE([#include <signal.h>],[int i=SIGUSR1;],[
503 AC_MSG_RESULT([yes])
504 AC_DEFINE(HAVE_SIGUSR1,,[SIGUSR1 supported and defined])
505 ],AC_MSG_RESULT([no]))
507 #############
508 # Check if pipes are supported
509 #############
510 AC_MSG_CHECKING([for pipes])
511 AC_TRY_COMPILE([#include <stdio.h>],[
512 FILE *pipe=popen("/tmp/pipe","r");
514 AC_MSG_RESULT([yes])
515 AC_DEFINE(HAVE_PIPES,,[Pipes (popen/pclose) supported])
516 ],AC_MSG_RESULT([no]))
520 #############
521 # Check floating-point format and endian
522 #############
523 ACX_FLOAT_FORMAT
526 AC_PROG_INSTALL
527 AC_PROG_LN_S
528 AC_PROG_MAKE_SET
529 AC_LIBTOOL_WIN32_DLL
530 AC_PROG_LIBTOOL
531 AC_SYS_LARGEFILE
533 # Use our own version of AC_FUNC_FSEEKO from autoconf 2.63 instead
534 # of the broken one we might get from autoconf 2.61.
535 ACX_FUNC_FSEEKO_FIXED
540 ############################################################################
541 # Checks for libraries.
542 ############################################################################
544 # Don't add math library for intel compilers
545 if $CC -V 2>&1 | grep 'Intel Corporation' > /dev/null 2>&1; then
546   AC_MSG_NOTICE([Using built-in math library with intel compiler])
547 else
548   AC_CHECK_LIB(m,sqrt,,AC_MSG_ERROR([No math library found]))
551 #####
552 # Disable MASS support for now.
553 #####
556 case "$with_fft" in
557 fftw2)
558   if test "$enable_float" = "yes"; then
559     sizeof_real=4
560   else
561     sizeof_real=8
562   fi
563   ACX_CHECK_FFTW2(fftw,$sizeof_real)
564   ACX_CHECK_FFTW2(rfftw,$sizeof_real)
566   case ${ac_fftw_savedprefix} in
567    d) AC_DEFINE(FFTW2_NAME_DFFTW,,[Use the d prefix on fftw2 includes]) ;;
568    s) AC_DEFINE(FFTW2_NAME_SFFTW,,[Use the s prefix on fftw2 includes]) ;;
569    *) AC_DEFINE(FFTW2_NAME_FFTW,,[Dont use any prefix on fftw2 includes]) ;;
570   esac
572   AC_DEFINE(GMX_FFT_FFTW2,,[Use FFTW2 FFT library])
574   ;; #  end of fftw2 check
576 fftw3) # Much simpler check than fftw2
577 # Check for header <fftw3.h> AC_CHECK_HEADERS doesnt work, since we must
578 # use mpicc to get includes - cpp isnt always the same compiler.
579 AC_MSG_CHECKING([for fftw3.h])
580 AC_TRY_COMPILE([#include<fftw3.h>],,[
581 # ok, look for library file too
582 AC_MSG_RESULT(yes)
583 if test "$enable_float" = "yes"; then
584   AC_CHECK_LIB([fftw3f],main,,AC_MSG_ERROR([Cannot find fftw3f library]))
585   PKG_FFTW="fftw3f"
586 else
587   AC_CHECK_LIB([fftw3],main,,AC_MSG_ERROR([Cannot find fftw3 library]))
588   PKG_FFTW="fftw3"
590   AC_DEFINE(GMX_FFT_FFTW3,,[Use FFTW3 FFT library])
592 # not ok, echo a warning
593 AC_MSG_ERROR(
594 [Cannot find the default external FFT library (fftw3).
595 Other alternatives are 'fftw2', or 'mkl' for Intel MKL.
596 You are STRONGLY recommended to use one of these - fftw is free.
598 Use CPPFLAGS and LDFLAGS if the library is installed in a 
599 non-standard location. (see FAQ at http://www.gromacs.org)
600                                                           
601 If you dont care about performance you can also specify 'fftpack'
602 to use a slower set of FFTs built into Gromacs. 
603 (Just install FFTW3 unless you really know what you are doing).
606   AC_SUBST(PKG_FFTW)
607   ;;
609 mkl*)
610 ###########
611 # Intel Math Kernel Library version 6 and later.
612 ##########
613 AC_MSG_CHECKING([for mkl_dfti.h])
614 AC_TRY_COMPILE([#include<mkl_dfti.h>],,AC_MSG_RESULT(yes),AC_MSG_ERROR([Cannot find mkl_dfti.h header from Intel Math Kernel Library>=6.0.]\
616 ## Check for library
617 #  AC_CHECK_LIB([guide],main,,AC_MSG_ERROR([Cannot find libguide (Intel MKL)]))
618 #  AC_CHECK_LIB([mkl],DftiComputeForward,,
619 #    AC_MSG_ERROR([Cannot find Intel Math Kernel Library >= 6.0]))
620   # first check for older MKLs
621   AC_CHECK_LIB([mkl],DftiComputeForward,,[have_mkl="no"])
622   if test "$have_mkl" == "no"; then
623     # we assume it's a new MKL
624     LIBS="$LIBS -liomp5 -lmkl_sequential -lmkl_core"
625     LMKL=" -liomp5 -lmkl_sequential -lmkl_core"
626     AC_CHECK_LIB([mkl_intel_lp64],DftiComputeForward,,[have_mkl10_64="no"])
627     if test "$have_mkl10_64" == "no"; then
628       AC_CHECK_LIB([mkl_intel],DftiComputeForward,,[have_mkl10_32="no"])
629       if test "$have_mkl10_32" == "no"; then
630         AC_MSG_ERROR([Cannot find Intel Math Kernel Library >= 6.0])
631       fi
632     fi
633   fi
634   AC_DEFINE(GMX_FFT_MKL,,[Use Intel MKL FFT library])
635   AC_SUBST(LMKL)
636   ;;
638 fftpack | no)
639   AC_MSG_WARN([The built-in FFTPACK routines are slow.
640 Are you sure you don't want to use FFTW? It is free and much faster...])
641   AC_DEFINE(GMX_FFT_FFTPACK,,[Use Built-in FFTPACK FFT library])
642   ;;
644   AC_MSG_ERROR([Unknown FFT library])
645   ;;
646 esac
649 if test "$enable_fftw_measure" != "yes"; then
650    AC_DEFINE(GMX_DISABLE_FFTW_MEASURE,,[Do not optimize FFTW setups (not needed with SSE FFT kernels)])
653 ######
654 # check for xtc headers
655 case "${host_os}" in
656 cygwin* | mingw*)   # use our own xdr stuff for cygwin/mingw
657   ;;
659   AC_CHECK_HEADERS([rpc/rpc.h])
660   AC_CHECK_HEADERS([rpc/xdr.h],,,
661 [#if HAVE_RPC_RPC_H
662 # include <rpc/rpc.h>
663 #endif
665   AC_CHECK_LIB(nsl,xdr_float)
666   AC_TRY_LINK([
667 #if HAVE_RPC_RPC_H
668 #include<rpc/rpc.h> 
669 #else
670 #error NO rpc.h header
671 #endif
672 #if HAVE_RPC_XDR_H
673 #include<rpc/xdr.h>
674 #else
675 #error No xdr.h header
676 #endif
677 ],[ XDR *xd; float f; xdr_float(xd,&f);],[have_xdr="yes"])
679   if test "$have_xdr" != "yes"; then
680     AC_DEFINE(GMX_INTERNAL_XDR,,[Use our own instead of system XDR libraries])  
681     AC_MSG_WARN([Couldn't find XDR headers and/or libraries - using our own])
682   fi
683   ;;
684 esac
687 ########################################################################
688 # Checks for header files and types
689 ########################################################################
691 AC_CHECK_HEADERS([limits.h unistd.h],,AC_MSG_ERROR([Include headers not found]))
692 AC_CHECK_HEADERS(unistd.h)
693 AC_CHECK_HEADERS(sys/types.h)
694 AC_CHECK_HEADERS(sys/time.h)
695 AC_CHECK_HEADERS(dirent.h)
696 AC_CHECK_HEADERS(regex.h,,[AC_MSG_WARN(
697 [No regex.h found.
698 Regular expression matching in selections will be disabled.
699 Selections still work, but the default groups can differ from
700 those obtained with regular expressions enabled.
701 Consider installing the regular expression library from GNU libc.])])
703 #####
704 # Checks for additional and/or optional functions or libraries.
705 #AC_FUNC_MALLOC
706 AC_FUNC_MEMCMP
707 AC_TYPE_SIGNAL
708 AC_TYPE_OFF_T
709 AC_FUNC_VPRINTF
710 AM_WITH_DMALLOC
711 AC_CHECK_FUNCS(strcasecmp)
712 AC_CHECK_FUNCS(strdup)
713 AC_CHECK_FUNCS(gettimeofday)
714 AC_CHECK_FUNCS(isnan)
715 AC_CHECK_FUNCS(_isnan)
716 AC_CHECK_FUNCS(isfinite)
717 AC_CHECK_FUNCS(_isfinite)
719 # check for bool (must come late, since CFLAGS/includes might affect it)
720 AC_CHECK_TYPES([bool])
726 #############
727 # Check integer sizes, set to zero if e.g. long long is not supported.
728 # (Note: this must come *after* type checks for the corresponding types!)
729 #############
730 AC_CHECK_SIZEOF(int)
731 AC_CHECK_SIZEOF(long int)
732 AC_CHECK_SIZEOF(long long int)
733 AC_CHECK_SIZEOF(off_t)
734 AC_CHECK_SIZEOF(void*)
738 # Apple OS X is a bit strange/braindead in that it always reports itself as i386, both for
739 # 32 and 64 bit builds (even with the 64 bit kernel!).
741 # To get the SSE support right we check for the size of void * that we detected above...
742 case "${host_vendor}-${host_os}" in
743   apple-darwin*)
744   if test $ac_cv_sizeof_voidp = 8; then
745      enable_ia32_sse=no;
746   else
747      enable_x86_64_sse=no;
748   fi
749   ;;
750   *) ;;
751 esac
756 #####
757 # Look for X
758 AC_PATH_XTRA
759 if test "$no_x" != "yes"; then
760   LIBS="$X_LIBS $LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
761   INCLUDES="$INCLUDES $X_CFLAGS"
762   AM_CONDITIONAL(USE_X11,true)
763 else
764   AM_CONDITIONAL(USE_X11,false)
767 # GNU Scientific Library or not
768 AC_ARG_WITH(gsl,
769  [AC_HELP_STRING([--with-gsl],[Link to the GNU scientific library, ]
770                  [enables extra functions in analysis])],,with_gsl=no)
772 ######
773 if test "$with_gsl" = "yes"; then
774   ac_save_LDFLAGS="$LDFLAGS"
775   AC_CHECK_HEADERS([gsl/gsl_version.h],[
776 # header found, check for libraries 
777   AC_CHECK_LIB(gslcblas,main,[
778   LDFLAGS="$ac_save_LDFLAGS -lgslcblas"
779 # gslcblas library found, check main lib
780   AC_CHECK_LIB(gsl,main)])])
781   PKG_GSL="gsl"
782   AC_SUBST(PKG_GSL)
786 ######
787 # Use OpenMM libraries
788 ######
789 AC_ARG_WITH(openmm,
790  [  --with-openmm                 Use the OpenMM libraries to run on GPUs],,with_openmm=no)
792 if test "$with_openmm" = "yes"; then
794   AC_PROG_CXX
795   CPPFLAGS="$CPPFLAGS -I$OPENMM_INSTALL_DIR/include"
796   INCLUDES="$INCLUDES -I$OPENMM_INSTALL_DIR/include"
797   LDFLAGS="$LDFLAGS -L$OPENMM_INSTALL_DIR/lib -lOpenMM"
798   #AC_CHECK_HEADERS([OpenMM.h],AC_CHECK_LIB(OpenMM,main))
799   #AC_CHECK_HEADERS([OpenMM.h],,AC_MSG_ERROR([Cannot find OpenMM.h file. Please set OPENMM_INSTALL_DIR.]))
800   AC_DEFINE([USE_OPENMM],,[Use OpenMM libraries to run on GPUs])
802 #  AS_CASE([${host_cpu}-${host_os}-${host_vendor}],
803 #    [i?86-linux*], [OPENMM_HOST=linux32],
804 #    [x86_64-linux*], [OPENMM_HOST=linux64],
805 #    [amd64-linux*], [OPENMM_HOST=linux64],
806 #    [i?86-darwin*-apple], [OPENMM_HOST=apple],
807 #    [OPENMM_HOST=""])
808 #  AC_SUBST([OPENMM_HOST])
811 AM_CONDITIONAL([USE_OPENMM],[test "$with_openmm" = "yes"])
814 AC_ARG_WITH(xml,
815  [AC_HELP_STRING([--without-xml],[do not link to the xml2 library,] 
816                  [disallows the use of certain file formats])],,with_xml=yes)
818 #########
819 # Check for libxml2, but it is optional, so dont stop
820 # if it isnt there.
821 if test "$with_xml" = "yes"; then
822    ac_save_CPPFLAGS="$CPPFLAGS"
823    CPPFLAGS="$ac_save_CPPFLAGS -I/usr/include/libxml2"
824    AC_CHECK_HEADERS([libxml/parser.h],AC_CHECK_LIB(xml2,main))
825    if test "$ac_cv_lib_xml2_main" = "yes"; then
826      INCLUDES="$INCLUDES -I/usr/include/libxml2"
827    fi
828    PKG_XML2="libxml-2.0"
829    AC_SUBST(PKG_XML2)
830 # restore CPPFLAGS
831    CPPFLAGS="$ac_save_CPPFLAGS"
834 #### 
835 # And collect the f77 libs to the linker - on Solaris, f77 stuff must go first,
836 # and we need -L/usr/ucblib to find libucb... (stupid OS)
837 # On e.g. ibm the mass libraries must come before -lm... 
838 case "${host_cpu}-${host_os}" in
839   *-solaris*) 
840     LIBS="$FLIBS $LIBS" 
841     LDFLAGS="$LDFLAGS -L/usr/ucblib"
842     ;;
843   *) LIBS="$LIBS $FLIBS" ;;
844 esac
847 # add the Accelerate framework if enabled above.
848 # LDFLAGS might have been set in the CPU optimization, so we cant assign it directly before that.
849 LDFLAGS="$LDFLAGS $extra_LDFLAGS"
856 #####
857 # Checks for typedefs, structures, and compiler characteristics.
858 AC_C_CONST
859 AC_TYPE_SIZE_T
860 AC_STRUCT_TM
861 AC_C_INLINE
863 # AC_TYPE_UID_T is broken on Mac OS X, so use generic tests instead
864 AC_CHECK_TYPES([uid_t],[],[AC_DEFINE(uid_t, int, [Define to `int' if <sys/types.h> doesn't define.])],[[#include <sys/types.h>]])
865 AC_CHECK_TYPES([gid_t],[],[AC_DEFINE(gid_t, int, [Define to `int' if <sys/types.h> doesn't define.])],[[#include <sys/types.h>]])
867 AC_CHECK_TYPES([sig_atomic_t],[],[AC_DEFINE(sig_atomic_t, int, [Define to `int' (and hope it's atomic) if <signal.h> doesn't define it.])],[[#include <signal.h>]])
869     
872 # Test stuff for ia32 and x86_64 assembly, and add objects/libraries.
873 if test "$enable_ia32_sse" = "yes" -o "$enable_x86_64_sse" = "yes"; then
874   AC_MSG_CHECKING([whether your compiler can handle assembly files (*.s)])
876 # Use 64-bit registers (rsp/rbp) on x86_64
878 if test "$enable_x86_64_sse" = "yes"; then
879 cat > conftestasm.s << EOF
880 checkasm:
881         mov     %rsp, %rbp
882         ret
884 else
885 cat > conftestasm.s << EOF
886 checkasm:
887         movl    %esp, %ebp
888         ret
891   if AC_TRY_COMMAND($CC $CFLAGS -c conftestasm.s); then
892     if test -f conftestasm.o; then
893       AC_MSG_RESULT([yes])
894     else
895       AC_MSG_RESULT([no])
896       AC_MSG_ERROR([Upgrade your compiler (or disable assembly loops).])
897     fi
898   else
899     AC_MSG_RESULT([no])
900     AC_MSG_ERROR([Upgrade your compiler (or disable assembly loops).])
901   fi
903 # ok, cc understands assembly.
905 # If we are using double precision we need SSE2
906   if test "$enable_float" = "no"; then
907 #   test SSE2 on ia32:
908     if test "$enable_ia32_sse" = "yes"; then
909       AC_MSG_CHECKING([whether as fully supports ia32 SSE2])
910 cat > conftest.s << EOF
911 checkasm:
912         emms
913         movapd 32(%esi,%edx,8),%xmm4
914         emms
915         ret
917       if AC_TRY_COMMAND($CC $CFLAGS -c conftest.s); then
918         AC_MSG_RESULT([yes])
919       else
920         AC_MSG_RESULT([no])
921         AC_MSG_ERROR([Upgrade to a more recent binutils (or disable assembly loops).])
922       fi
923       AC_DEFINE([GMX_IA32_SSE2],,[Double-precision SSE2 instructions on ia32])
924     fi
925 #   test SSE2 on X86_64:
926     if test "$enable_x86_64_sse" = "yes"; then
927       AC_MSG_CHECKING([whether as fully supports X86_64 SSE2])
928 cat > conftest.s << EOF
929 checkasm:
930         emms
931         movapd 32(%rsi,%rdx,8),%xmm4
932         emms
933         ret
935       if AC_TRY_COMMAND($CC $CFLAGS -c conftest.s); then
936         AC_MSG_RESULT([yes])
937       else
938         AC_MSG_RESULT([no])
939         AC_MSG_ERROR([Upgrade to a more recent binutils (or disable assembly loops).])
940       fi
941       AC_DEFINE([GMX_X86_64_SSE2],,[Double-precision SSE2 instructions on X86_64])
942     fi
943   else
944 # end of double precision testing, now do single.
945     if test "$enable_ia32_sse" = "yes"; then
946       AC_MSG_CHECKING([whether as fully supports ia32 SSE])
947 cat > conftest.s << EOF
948 checkasm:
949         emms
950         movaps 32(%esi,%edx,8),%xmm4
951         emms
952         ret
954       if AC_TRY_COMMAND($CC $CFLAGS -c conftest.s); then
955         AC_MSG_RESULT([yes])
956       else
957         AC_MSG_RESULT([no])
958         AC_MSG_ERROR([Upgrade to a more recent binutils (or disable assembly loops).])
959       fi
960       AC_DEFINE([GMX_IA32_SSE],,[Single-precision SSE instructions on ia32])
961     fi
962 #   test SSE2 on X86_64:
963     if test "$enable_x86_64_sse" = "yes"; then
964       AC_MSG_CHECKING([whether as fully supports X86_64 SSE instructions])
965 cat > conftest.s << EOF
966 checkasm:
967         emms
968         movaps 32(%rsi,%rdx,8),%xmm4
969         emms
970         ret
972       if AC_TRY_COMMAND($CC $CFLAGS -c conftest.s); then
973         AC_MSG_RESULT([yes])
974       else
975         AC_MSG_RESULT([no])
976         AC_MSG_ERROR([Upgrade to a more recent binutils (or disable assembly loops).])
977       fi
978       AC_DEFINE([GMX_X86_64_SSE],,[Single-precision SSE instructions on X86_64])
979     fi
980   fi
984 # Test stuff for ia64 assembly
986 # Nothing to test right now.
989   
992 # Test altivec support.
994 if test "$enable_ppc_altivec" = "yes"; then
995   if test "$enable_float" = "no"; then
996     AC_MSG_WARN([PowerPC Altivec loops can only be used in single precision - disabling])
997     enable_ppc_altivec=no
998   else 
999     # On FSF (vanilla) GCC we must include altivec.h, and on apple we 
1000     # should NOT do it after using -faltivec. Go figure...
1001     case "${host_os}" in
1002     darwin*)                            
1003         # do nothing on Apple systems
1004        ;;
1005     *)
1006         AC_CHECK_HEADERS([altivec.h])
1007        ;;
1008     esac
1010     AC_MSG_CHECKING([whether the compiler supports altivec extensions])
1011     AC_TRY_COMPILE([],[
1012 #ifndef __VEC__
1013 choke_me
1014 #endif
1016     AC_MSG_RESULT([yes])
1017     AC_DEFINE([GMX_PPC_ALTIVEC],,[Use PowerPC Altivec inner loops])],[
1018       AC_MSG_RESULT([no])
1019       AC_MSG_WARN([no altivec support found - On recent PowerPC CPUs]
1020 [you can get a huge performance gain by using an altivec-enabled compiler.]
1021 [On OS X, you need GCC>=3.3, or the IBM compilers. If you are using standard]
1022 [GCC, you need at least version 4.0])
1023       enable_ppc_altivec=no])
1024   fi  
1027 if test "$enable_ia64_asm" = "yes"; then
1028   AC_DEFINE(GMX_IA64_ASM,,[Use ia64 assembly tuned for Itanium2])
1029   AC_DEFINE(DISABLE_WATER_NLIST,,[Turn off all water neighborlist optimization])
1030   AC_DEFINE(DISABLE_WATERWATER_NLIST,,[Turn off water-water neighborlist optimization only])
1033 if test "$enable_bluegene" = "yes"; then
1034   AC_DEFINE(GMX_BLUEGENE,,[Use assembly intrinsics kernels for BlueGene])
1038 # Add the appropriate assembly loops 
1040 AM_CONDITIONAL([GMX_IA32_SSE],[test "$enable_ia32_sse" = "yes" -a "$enable_float" = "yes"])
1041 AM_CONDITIONAL([GMX_IA32_SSE2],[test "$enable_ia32_sse" = "yes" -a "$enable_float" = "no"])
1042 AM_CONDITIONAL([GMX_X86_64_SSE],[test "$enable_x86_64_sse" = "yes" -a "$enable_float" = "yes"])
1043 AM_CONDITIONAL([GMX_X86_64_SSE2],[test "$enable_x86_64_sse" = "yes" -a "$enable_float" = "no"])
1044 AM_CONDITIONAL([GMX_FORTRAN],[test "$enable_fortran" = "yes"])
1045 AM_CONDITIONAL([GMX_PPC_ALTIVEC],[test "$enable_ppc_altivec" = "yes" -a "$enable_float" = "yes"])
1046 AM_CONDITIONAL([GMX_IA64_ASM],[test "$enable_ia64_asm" = "yes"])
1047 AM_CONDITIONAL([GMX_BLUEGENE],[test "$enable_bluegene" = "yes"])
1048 AM_CONDITIONAL([GMX_POWER6],[test "$enable_power6" = "yes"])
1051 #############
1052 # Check integer endian
1053 #############
1054 AC_C_BIGENDIAN([AC_DEFINE([GMX_INTEGER_BIG_ENDIAN],,[Integer byte order is big endian.])],[],[
1055 AC_MSG_ERROR([Cannot determine endian in compiled output])])
1056 # Little endian implied if GMX_INTEGER_BIG_ENDIAN not defined in source.
1060 case "${host_cpu}" in
1061    i?86) 
1062          # Check if inline assembly works
1063          AC_MSG_CHECKING(if the compiler supports gcc inline assembly)
1064       AC_TRY_LINK([],[float f;int i; asm("fld %1\nfistpl %0\n" : "=m" (*&i) : "f" (f));],[AC_MSG_RESULT(yes)
1065 AC_DEFINE(GMX_X86_GCC_INLINE_ASM,,[Enable x86 gcc inline assembly])],[AC_MSG_RESULT(no)])
1066          # Check for MSVC inline assembly
1067      AC_MSG_CHECKING(if the compiler supports MSVC inline assembly)
1068       AC_TRY_LINK([],[float f;int i; _asm { fld f } ; _asm { fistpl i };],[AC_MSG_RESULT(yes)
1069 AC_DEFINE(GMX_X86_MSVC_INLINE_ASM,,[Enable x86 MSVC inline assembly])],[AC_MSG_RESULT(no)])
1070         ;;              
1071    *) ;;
1072 esac
1075 ############
1076 # Check dlopen
1077 ###########
1078 if test "$with_dlopen" = "yes"; then
1079       AC_MSG_CHECKING(if dlopen supported)
1080       CFLAGS_RET=$CFLAGS
1081       #LDFLAGS="$lt_cv_dlopen_libs $LDFLAGS" #can't make the macro, which is getting lt_cv_dlopen_libs, to work
1082       LDFLAGS_RET=$LDFLAGS
1083       if test "$enable_all_static" = "yes"; then  #make sure we test also whether it works static
1084          LDFLAGS="$LDFLAGS -static"
1085       fi
1086       CFLAGS="-I$srcdir/include -DGMX_DLOPEN $CFLAGS"
1087       AC_TRY_LINK([#include "$srcdir/src/gmxlib/vmddlopen.c"],,[AC_MSG_RESULT([yes])\
1088         AC_DEFINE(GMX_DLOPEN,,[Compile with dlopen])],AC_MSG_RESULT([no]))
1089       CFLAGS=$CFLAGS_RET
1090       LDFLAGS=$LDFLAGS_RET
1096 ########################################################################
1097 # Final output stage
1098 ########################################################################
1099 AS="$CC"
1100 AC_SUBST(ASFLAGS)
1101 AC_SUBST(AS)
1102 AC_SUBST(INCLUDES)          # should be automatic, but doesnt seem to be?
1104 # To tell libraries apart, we use four versions of the name. For instance, libgmx:
1105 # libgmx                single prec, no mpi.
1106 # libgmx_d              double prec, no mpi.
1107 # libgmx_mpi            single prec, mpi.
1108 # libgmx_mpi_d          double prec, mpi.
1109 # However, the non-suffixed names are linked to the _mpi and/or _d suffixed
1110 # ones upon installation if that is the only version available.
1112 if test "$enable_mpi" = "yes"; then
1113   LIBSUFFIX="_mpi"
1115 if test "$enable_float" = "no"; then
1116   LIBSUFFIX="${LIBSUFFIX}_d"
1118 AC_SUBST(LIBSUFFIX) 
1120 # Unless the user has explicitly requested a prefix/suffix/transform, we
1121 # use _d on double precision files. Don't add anything for mpi, but at the
1122 # end we tell the user it is possible and smart to do in some cases!
1123 if test "$program_transform_name" = "s,x,x,"; then
1124   name_transform_provided=no;
1125   if test "$enable_float" = "no"; then
1126     program_transform_name="s,\$\$,_d,"
1127   fi
1128 else
1129   name_transform_provided=yes;
1133 # Use a variable for RPM - this way it can be 
1134 # overridden with make RPM=rpm3 rpm
1135 RPM=rpm
1136 AC_SUBST(RPM)
1138 if test "$enable_fahcore" = "yes"; then  
1139   CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/../corewrap -include swindirect.h -DFULLINDIRECT -DUSE_FAH_XDR"  
1140   if test "$enable_mpi" = "yes"; then 
1141     CFLAGS="$CFLAGS -DMPI"  
1142   fi
1144 AM_CONDITIONAL([GMX_FAHCORE],[test "$enable_fahcore" = "yes"])
1147 if test "$enable_all_static" = "yes"; then
1148   LDFLAGS="$LDFLAGS -all-static"
1151 # we have asm source, so this is necessary for automake 1.6
1152 CCAS=$CC
1153 CCASFLAGS=$CFLAGS
1155 AC_SUBST(CCAS)
1156 AC_SUBST(CCASFLAGS)
1158 AC_CONFIG_FILES([ Makefile ])
1159 AC_CONFIG_FILES([ src/Makefile ])
1160 AC_CONFIG_FILES([ src/gmxlib/Makefile ])
1161 AC_CONFIG_FILES([ src/gmxlib/libgmx${LIBSUFFIX}.pc:src/gmxlib/libgmx.pc.in ])
1162 AC_CONFIG_FILES([ src/gmxlib/gmx_blas/Makefile ])
1163 AC_CONFIG_FILES([ src/gmxlib/gmx_lapack/Makefile ])
1164 AC_CONFIG_FILES([ src/gmxlib/selection/Makefile ])
1165 AC_CONFIG_FILES([ src/gmxlib/statistics/Makefile ])
1166 AC_CONFIG_FILES([ src/gmxlib/trajana/Makefile ])
1167 AC_CONFIG_FILES([ src/gmxlib/thread_mpi/Makefile ])
1168 AC_CONFIG_FILES([ src/gmxlib/nonbonded/Makefile ])
1169 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_c/Makefile ])
1170 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile ])
1171 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile ])
1172 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile ])
1173 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile ])
1174 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_ppc_altivec/Makefile ])
1175 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_ia64_single/Makefile ])
1176 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_ia64_double/Makefile ])
1177 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_bluegene/Makefile ])
1178 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_power6/Makefile ])
1179 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_f77_single/Makefile ])
1180 AC_CONFIG_FILES([ src/gmxlib/nonbonded/nb_kernel_f77_double/Makefile ])
1181 AC_CONFIG_FILES([ include/Makefile ])
1182 AC_CONFIG_FILES([ include/types/Makefile ])
1183 AC_CONFIG_FILES([ include/thread_mpi/Makefile ])
1184 AC_CONFIG_FILES([ include/thread_mpi/atomic/Makefile ])
1185 AC_CONFIG_FILES([ src/mdlib/Makefile ])
1186 AC_CONFIG_FILES([ src/mdlib/libmd${LIBSUFFIX}.pc:src/mdlib/libmd.pc.in ])
1187 AC_CONFIG_FILES([ src/kernel/Makefile ])
1188 AC_CONFIG_FILES([ src/kernel/libgmxpreprocess${LIBSUFFIX}.pc:src/kernel/libgmxpreprocess.pc.in ])
1189 AC_CONFIG_FILES([ src/tools/Makefile ])
1190 AC_CONFIG_FILES([ src/tools/libgmxana${LIBSUFFIX}.pc:src/tools/libgmxana.pc.in ])
1191 AC_CONFIG_FILES([ src/ngmx/Makefile ])
1192 AC_CONFIG_FILES([ src/contrib/Makefile ])
1193 AC_CONFIG_FILES([ scripts/Makefile ])
1194 AC_CONFIG_FILES([ admin/Makefile ])
1195 AC_CONFIG_FILES([ share/Makefile ])
1196 AC_CONFIG_FILES([ share/tutor/Makefile ])
1197 AC_CONFIG_FILES([ share/tutor/gmxdemo/Makefile ])
1198 AC_CONFIG_FILES([ share/tutor/nmr1/Makefile ])
1199 AC_CONFIG_FILES([ share/tutor/nmr2/Makefile ])
1200 AC_CONFIG_FILES([ share/tutor/water/Makefile ])
1201 AC_CONFIG_FILES([ share/tutor/mixed/Makefile ])
1202 AC_CONFIG_FILES([ share/tutor/methanol/Makefile ])
1203 AC_CONFIG_FILES([ share/tutor/speptide/Makefile ])
1204 AC_CONFIG_FILES([ share/template/Makefile ])
1205 AC_CONFIG_FILES([ share/top/Makefile ])
1206 AC_CONFIG_FILES([ share/top/gmx.ff/Makefile ])
1207 AC_CONFIG_FILES([ share/top/gmx2.ff/Makefile ])
1208 AC_CONFIG_FILES([ share/top/encadv.ff/Makefile ])
1209 AC_CONFIG_FILES([ share/top/encads.ff/Makefile ])
1210 AC_CONFIG_FILES([ share/top/oplsaa.ff/Makefile ])
1211 AC_CONFIG_FILES([ share/top/gromos43a1.ff/Makefile ])
1212 AC_CONFIG_FILES([ share/top/gromos43a2.ff/Makefile ])
1213 AC_CONFIG_FILES([ share/top/gromos45a3.ff/Makefile ])
1214 AC_CONFIG_FILES([ share/top/gromos53a5.ff/Makefile ])
1215 AC_CONFIG_FILES([ share/top/gromos53a6.ff/Makefile ])
1216 AC_CONFIG_FILES([ share/html/Makefile ])
1217 AC_CONFIG_FILES([ share/html/images/Makefile ])
1218 AC_CONFIG_FILES([ share/html/online/Makefile ])
1219 AC_CONFIG_FILES([ man/Makefile man/man1/Makefile man/man7/Makefile ])
1220 AC_CONFIG_FILES([ Doxyfile ])
1221 AC_OUTPUT
1229 #########################################################
1230 # Echo some important info, to avoid stupid mistakes
1233 if test "$enable_float" = "no" -a "$name_transform_provided" = "no"; then
1234   echo ""
1235   echo "* You are compiling a double precision version of Gromacs -"
1236   echo "  program names will be suffixed with _d to avoid overwriting single"
1237   echo "  precision files. You can override it with --program-suffix"
1240 if test "$name_transform_provided" = "no" -a "$enable_mpi" = "yes"; then
1241   echo ""
1242   echo "* Seems you are compiling with MPI support. You can install the MPI-"
1243   echo "  enabled programs with suffixed names to have both MPI and non-MPI"
1244   echo "  versions. This is useful e.g. on supercomputers where you usually"
1245   echo "  cannot run MPI-linked programs on the login node."
1246   echo "  Set a suffix with e.g. --program-suffix=_mpi (or _mpi_d for double)."
1247   echo "  You only need MPI for mdrun, so if you already have non-MPI stuff"
1248   echo "  installed you can issue make mdrun; make install-mdrun."
1251 if test "$enable_shared" = "no"; then
1252   echo ""
1253   echo "* On most platforms you can save 10X space with dynamic libraries, although"
1254   echo "  the binaries might be less portable. Why not try --enable-shared ?"
1255 fi  
1258 if test "$tmpi_atomics" = "no"; then
1259   echo ""
1260   echo "* This compiler+CPU combination doesn't have working atomic operations."
1261   echo "  Thread support will be unbearably slow: the default number of threads"
1262   echo "  is set to 1."
1263   echo "  Atomics should work on all but the most obscure CPU+compiler"
1264   echo "  combinations; if your system is not obscure (like, for example, x86"
1265   echo "  with gcc) please contact the developers."
1266   echo ""