ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/devel_omp/ac-tools/configure.in
Revision: 1372
Committed: Tue Oct 20 13:13:16 2009 UTC (15 years, 9 months ago) by gezelter
Original Path: trunk/ac-tools/configure.in
File size: 8065 byte(s)
Log Message:
fixing mpi configure

File Contents

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