ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/configure.in
Revision: 1390
Committed: Wed Nov 25 20:02:06 2009 UTC (15 years, 7 months ago) by gezelter
Original Path: trunk/ac-tools/configure.in
File size: 7762 byte(s)
Log Message:
Almost all of the changes necessary to create OpenMD out of our old
project (OOPSE-4)

File Contents

# User Rev Content
1 gezelter 2 dnl **** Process this file with autoconf to produce a configure script.
2 gezelter 847 AC_PREREQ(2.59)
3 gezelter 1390 AC_INIT(OpenMD, 1.0, gezelter@nd.edu, openmd)
4 gezelter 2 AC_CONFIG_AUX_DIR(ac-tools)
5 gezelter 1390 AC_CONFIG_SRCDIR([src/applications/openmd/openmd.cpp])
6 gezelter 847 AC_CONFIG_HEADER([src/config.h])
7 gezelter 2
8 gezelter 1390 builtin(include, ac-tools/OpenMD.m4)
9 gezelter 811 builtin(include, ac-tools/AC_CXX_HAVE_STL.m4)
10     builtin(include, ac-tools/AC_CXX_NAMESPACES.m4)
11     builtin(include, ac-tools/AC_CXX_STD.m4)
12 gezelter 1372 builtin(include, ac-tools/ax_mpi.m4)
13 gezelter 2
14 gezelter 847 # who am i
15     AC_CANONICAL_HOST
16 gezelter 2
17     AC_PREFIX_DEFAULT("/usr/local")
18    
19     # set program name
20 gezelter 1390 PROGNAME="openmd"
21 gezelter 2 AC_SUBST(PROGNAME)
22    
23 gezelter 847 AC_EXEEXT
24     AC_OBJEXT
25     OBJEXT=".$OBJEXT"
26    
27 gezelter 1390 OPENMD=openmd
28 gezelter 847
29 gezelter 1390 dnl **** define home dir of OpenMD
30 gezelter 847 if test "x${prefix}" = "xNONE"
31     then
32 gezelter 1390 OPENMD_HOME=${ac_default_prefix}/openmd
33 gezelter 847 else
34 gezelter 1390 OPENMD_HOME=${prefix}/openmd
35 gezelter 847 fi
36 gezelter 1390 AC_ARG_ENABLE(openmd-home,
37     [ --enable-openmd-home=DIR define OpenMD home dir [PREFIX/openmd]],
38     [OPENMD_HOME="${enableval}"])
39 gezelter 847
40 gezelter 2 # there are two ways to do debugging. One with the --enable-debug flag
41     # and one using the DEBUG environment variable
42    
43     debug=0
44 gezelter 1390 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OpenMD in debug mode]), [debug=1])
45 gezelter 2 if test "${DEBUG}"; then
46     AC_DEFINE(debug, 1, [Code compiled in debug mode])
47     msg="$msg, debug mode"
48     fi
49     AC_SUBST(debug)
50    
51 gezelter 1390 AC_ARG_ENABLE(single, [AC_HELP_STRING([--enable-single],[compile OpenMD in single precision])], ok=$enableval, ok=no)
52 gezelter 961 AC_ARG_ENABLE(float, [AC_HELP_STRING([--enable-float],[synonym for --enable-single])], ok=$enableval)
53     if test "$ok" = "yes"; then
54     AC_DEFINE(SINGLE_PRECISION,1,[Define to compile in single precision.])
55 gezelter 962 USE_SINGLE_PRECISION=yes
56     AC_SUBST(USE_SINGLE_PRECISION)
57 gezelter 961 fi
58    
59 gezelter 1225 if test x"$CC" != x; then
60     AC_CHECK_PROGS(ac_cc_set,[$CC],[no])
61     AS_IF([test AS_VAR_GET([ac_cc_set]) != no],[
62     AC_PATH_PROG(ac_cc_path,[$ac_cc_set],[no])],[
63     AC_ERROR([Specified C compiler $CC doesn't seem to exist!])])
64    
65     AS_IF([test AS_VAR_GET([ac_cc_path]) != no],[
66 gezelter 1372 AC_MSG_NOTICE([Will attempt to use $CC as C compiler])
67     MPICC=$CC
68     ],[
69 gezelter 1225 AC_ERROR([Can't find path to user-specified C compiler $CC])])
70     fi
71    
72     if test x"$CXX" != x; then
73     AC_CHECK_PROGS(ac_cxx_set,[$CXX],[no])
74     AS_IF([test AS_VAR_GET([ac_cxx_set]) != no],[
75     AC_PATH_PROG(ac_cxx_path,[$ac_cxx_set],[no])],[
76     AC_ERROR([Specified C++ compiler $CXX doesn't seem to exist!])])
77    
78     AS_IF([test AS_VAR_GET([ac_cxx_path]) != no],[
79 gezelter 1372 AC_MSG_NOTICE([Will attempt to use $CXX as C++ compiler])
80     MPICXX=$CXX
81     ],[
82 gezelter 1225 AC_ERROR([Can't find path to user-specified C++ compiler $CXX])])
83     fi
84    
85     if test x"$FC" != x; then
86     AC_CHECK_PROGS(ac_fc_set,[$FC],[no])
87     AS_IF([test AS_VAR_GET([ac_fc_set]) != no],[
88     AC_PATH_PROG(ac_fc_path,[$ac_fc_set],[no])],[
89     AC_ERROR([Specified Fortran compiler $FC doesn't seem to exist!])])
90    
91     AS_IF([test AS_VAR_GET([ac_fc_path]) != no],[
92 gezelter 1372 AC_MSG_NOTICE([Will attempt to use $FC as Fortran compiler])
93     MPIFC=$FC
94     ],[
95 gezelter 1225 AC_ERROR([Can't find path to user-specified Fortran compiler $FC])])
96     fi
97    
98    
99     dnl do MPI checks
100 gezelter 1372 AC_LANG([C++])
101     AX_MPI([USE_MPI="yes"],
102     [USE_MPI="no"
103 gezelter 1390 AC_MSG_WARN([No suitable C++ MPI implementation found. openmd_MPI will not be built.])])
104 gezelter 1372 AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
105     AC_LANG([C])
106     AX_MPI([USE_MPI="yes"],
107     [USE_MPI="no"
108 gezelter 1390 AC_MSG_WARN([No suitable C MPI implementation found. openmd_MPI will not be built.])])
109 gezelter 1372 ])
110     AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
111     AC_LANG([Fortran])
112     AX_MPI([USE_MPI="yes"],
113     [USE_MPI="no"
114 gezelter 1390 AC_MSG_WARN([No suitable Fortran MPI implementation found. openmd_MPI will not be built.])])
115 gezelter 1372 ])
116     AS_IF([test AS_VAR_GET([USE_MPI]) != no],[
117     CXX=$MPICXX
118     CC=$MPICC
119     FC=$MPIFC
120     ])
121 gezelter 1225 AC_SUBST(USE_MPI)
122    
123 gezelter 847 # Checks for programs.
124 gezelter 1372 AC_PROG_CXX([$CXX icpc pathCC pgCC c++ xlc++ xlC g++ CC])
125     AC_PROG_CC([$CC icc pathcc pgcc cc xlc gcc])
126     AC_PROG_FC([$FC ifort ifc pathf95 pgf95 xlf95 lf95 epcf90 pathf90 xlf90 f95 f90 gfortran g95 fort], 95)
127 gezelter 774 AC_PROG_CPP
128     AC_PROG_EGREP
129 gezelter 847 AC_PROG_LN_S
130     AC_PROG_MAKE_SET
131     AC_PROG_RANLIB
132     AX_SYS_PERLSHARPBANG
133     AC_PROG_INSTALL
134     case "x$INSTALL" in
135     x/*) ;;
136     *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
137     esac
138     MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
139     AC_CHECK_PROG(AR, ar, ar, NONE)
140     if test "$AR" = "NONE"; then
141     AC_CACHE_SAVE
142     exit 1
143 gezelter 2 fi
144 gezelter 847 AC_PATH_PROG(PS, ps)
145     AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [
146     if $PS ax -o rss > /dev/null 2>&1; then
147     ac_cv_prog_ps_ax=yes
148     else
149     ac_cv_prog_ps_ax=no
150     fi
151     if $PS -ef -o rss > /dev/null 2>&1; then
152     ac_cv_prog_ps_ef=yes
153     else
154     ac_cv_prog_ps_ef=no
155     fi
156     if test "$ac_cv_prog_ps_ax" = yes; then
157     ac_cv_prog_ps_syntax=BSD
158     else
159     if test "$ac_cv_prog_ps_ef" = yes; then
160     ac_cv_prog_ps_syntax=POSIX
161     else
162     AC_MSG_ERROR(Could not determine ps syntax)
163     fi
164     fi
165     ])
166     AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program])
167     if test "$ac_cv_prog_ps_syntax" = BSD; then
168     AC_DEFINE(PSTYPE_IS_BSD, 1, [ps uses BSD-style arguments])
169     else
170     if test "$ac_cv_prog_ps_syntax" = POSIX; then
171     AC_DEFINE(PSTYPE_IS_POSIX, 1, [ps uses POSIX-style arguments])
172     else
173     AC_MSG_ERROR(Unknown ps syntax type!)
174     fi
175     fi
176 gezelter 2
177 gezelter 847 AC_LANG_PUSH(Fortran)
178     AC_FC_SRCEXT(F90)
179 gezelter 2 dnl Check the flag for Fortran90 preprocessing
180     ACX_PROG_F90_PREPFLAG
181     dnl Check to see if a flag is required for preprocessing defines
182     ACX_PROG_F90_PREPDEFFLAG
183 gezelter 847 AC_FC_WRAPPERS
184     AC_SUBST(FC_FUNC)
185     AC_SUBST(FC_FUNC_)
186     AC_FC_LIBRARY_LDFLAGS
187 gezelter 2 dnl Fortran 90 module suffix
188     AC_CHECK_MODSUFFIX
189     dnl Fortran 90 module path specifier
190     AC_CHECK_MODDIRFLAG
191 gezelter 44 AC_F90_MODULE_NAMES
192     pat=`echo $ac_cv_f90_module_names | sed 's/.*\(%.*%\).*/\1/'`
193     F90_MODULE_NAMES=empty
194     case $pat in
195     %MODULE%)
196     F90_MODULE_NAMES=UPPER ;;
197     %Module%)
198     F90_MODULE_NAMES=Mixed ;;
199     %module%)
200     F90_MODULE_NAMES=lower ;;
201     *)
202     F90_MODULE_NAMES=unknown ;;
203     esac
204     AC_SUBST(F90_MODULE_NAMES)
205 gezelter 2 AC_LANG_POP
206    
207 gezelter 847 AC_LANG_C
208 gezelter 811
209 gezelter 753 dnl Checks for libraries.
210     AC_CHECK_LIB(m, asin, , exit)
211 gezelter 847 ACX_CHECK_ZLIB
212 gezelter 957 ACX_CHECK_FFTW
213 chuckv 1200 ACX_CHECK_QHULL
214 gezelter 1210 ACX_CHECK_OPENBABEL
215 gezelter 753
216 gezelter 847 # Checks for header files.
217     AC_HEADER_STDC
218 gezelter 1226 AC_CHECK_HEADERS([libintl.h limits.h machine/hal_sysinfo.h stdlib.h string.h strings.h sys/param.h sys/pstat.h sys/sysctl.h sys/sysinfo.h sys/sysmp.h sys/systemcfg.h sys/table.h sys/time.h unistd.h])
219 gezelter 847
220     # Checks for typedefs, structures, and compiler characteristics.
221     AC_HEADER_STDBOOL
222     AC_C_CONST
223     AC_C_INLINE
224     AC_TYPE_SIZE_T
225     AC_HEADER_TIME
226    
227     # Checks for library functions.
228     AC_FUNC_MALLOC
229     AC_FUNC_REALLOC
230     AC_FUNC_SELECT_ARGTYPES
231     AC_FUNC_STRTOD
232 gezelter 1226 AC_CHECK_FUNCS([floor getpagesize gettimeofday memset pow pstat_getdynamic pstat_getstatic select sqrt strcasecmp strchr strdup stricmp strncasecmp strnicmp strstr strtol sysmp getsysinfo sysctl table])
233 gezelter 847
234 tim 313 # special check for _system_configuration because AIX <4.3.2 do not
235     # contain the `physmem' member.
236     AC_MSG_CHECKING([for external symbol _system_configuration])
237     AC_TRY_COMPILE([#include <sys/systemcfg.h>],
238     [double x = _system_configuration.physmem;],
239     [AC_MSG_RESULT([yes])
240     AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
241     [Define if you have the _system_configuration variable.])],
242     [AC_MSG_RESULT([no])])
243    
244 gezelter 847 dnl check for strong optimization options
245 gezelter 345
246 gezelter 847 case $debug in
247     1)
248     ;;
249     *)
250     ACX_PROG_FC_MAXOPT
251     ACX_PROG_CC_MAXOPT
252     ACX_PROG_CXX_MAXOPT
253     ;;
254     esac
255    
256 gezelter 49 BB_ENABLE_DOXYGEN
257 gezelter 2
258     AC_SUBST(EXEEXT)
259     AC_SUBST(OBJEXT)
260     AC_SUBST(BATEXT)
261     AC_SUBST(MKINSTALLDIRS)
262 gezelter 1390 AC_SUBST(OPENMD)
263     AC_SUBST(OPENMD_HOME)
264 gezelter 2 AC_SUBST(SUBDIRS)
265     AC_SUBST(CFLAGS)
266     AC_SUBST(CXXFLAGS)
267     AC_SUBST(CPPFLAGS)
268 gezelter 847 AC_SUBST(FCFLAGS)
269 gezelter 2 AC_SUBST(LDFLAGS)
270     AC_SUBST(PREPDEFFLAG)
271 gezelter 44 AC_SUBST(F90_MODULE_NAMES)
272 skuang 1298 AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/math/Makefile src/integrators/Makefile src/applications/atom2md/Makefile scripts/filepp], [chmod 0755 scripts/*])
273 gezelter 2
274     AC_OUTPUT