1 |
gezelter |
2 |
dnl **** Process this file with autoconf to produce a configure script. |
2 |
gezelter |
847 |
AC_PREREQ(2.59) |
3 |
chuckv |
1191 |
AC_INIT(OOPSE, 4.0, gezelter@nd.edu, oopse) |
4 |
gezelter |
2 |
AC_CONFIG_AUX_DIR(ac-tools) |
5 |
gezelter |
847 |
AC_CONFIG_SRCDIR([src/applications/oopse/oopse.cpp]) |
6 |
|
|
AC_CONFIG_HEADER([src/config.h]) |
7 |
gezelter |
2 |
|
8 |
gezelter |
957 |
builtin(include, ac-tools/OOPSE.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 |
1225 |
builtin(include, ac-tools/ACX_MPI.m4) |
13 |
chuckv |
1191 |
builtin(include, ac-tools/CGAL.m4) |
14 |
gezelter |
2 |
|
15 |
gezelter |
847 |
# who am i |
16 |
|
|
AC_CANONICAL_HOST |
17 |
gezelter |
2 |
|
18 |
|
|
AC_PREFIX_DEFAULT("/usr/local") |
19 |
|
|
|
20 |
|
|
# set program name |
21 |
|
|
PROGNAME="oopse" |
22 |
|
|
AC_SUBST(PROGNAME) |
23 |
|
|
|
24 |
gezelter |
847 |
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 |
gezelter |
2 |
# 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 |
gezelter |
961 |
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 |
gezelter |
962 |
USE_SINGLE_PRECISION=yes |
57 |
|
|
AC_SUBST(USE_SINGLE_PRECISION) |
58 |
gezelter |
961 |
fi |
59 |
|
|
|
60 |
gezelter |
1225 |
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 |
|
|
AC_ERROR([Can't find path to user-specified C compiler $CC])]) |
69 |
|
|
fi |
70 |
|
|
|
71 |
|
|
if test x"$CXX" != x; then |
72 |
|
|
AC_CHECK_PROGS(ac_cxx_set,[$CXX],[no]) |
73 |
|
|
AS_IF([test AS_VAR_GET([ac_cxx_set]) != no],[ |
74 |
|
|
AC_PATH_PROG(ac_cxx_path,[$ac_cxx_set],[no])],[ |
75 |
|
|
AC_ERROR([Specified C++ compiler $CXX doesn't seem to exist!])]) |
76 |
|
|
|
77 |
|
|
AS_IF([test AS_VAR_GET([ac_cxx_path]) != no],[ |
78 |
|
|
AC_MSG_NOTICE([Will attempt to use $CXX as C++ compiler])],[ |
79 |
|
|
AC_ERROR([Can't find path to user-specified C++ compiler $CXX])]) |
80 |
|
|
fi |
81 |
|
|
|
82 |
|
|
if test x"$FC" != x; then |
83 |
|
|
AC_CHECK_PROGS(ac_fc_set,[$FC],[no]) |
84 |
|
|
AS_IF([test AS_VAR_GET([ac_fc_set]) != no],[ |
85 |
|
|
AC_PATH_PROG(ac_fc_path,[$ac_fc_set],[no])],[ |
86 |
|
|
AC_ERROR([Specified Fortran compiler $FC doesn't seem to exist!])]) |
87 |
|
|
|
88 |
|
|
AS_IF([test AS_VAR_GET([ac_fc_path]) != no],[ |
89 |
|
|
AC_MSG_NOTICE([Will attempt to use $FC as Fortran compiler])],[ |
90 |
|
|
AC_ERROR([Can't find path to user-specified Fortran compiler $FC])]) |
91 |
|
|
fi |
92 |
|
|
|
93 |
|
|
|
94 |
|
|
dnl do MPI checks |
95 |
|
|
ACX_MPI([USE_MPI="yes"], |
96 |
|
|
[USE_MPI="no" |
97 |
|
|
AC_MSG_WARN([No suitable MPI implementation found. oopse_MPI will not be build.])]) |
98 |
|
|
AC_SUBST(USE_MPI) |
99 |
|
|
|
100 |
gezelter |
847 |
# Checks for programs. |
101 |
gezelter |
1225 |
AC_PROG_CXX([$CXX $ac_cv_prog_acx_mpi_mpicxx icpc pathCC pgCC c++ xlc++ xlC g++ CC]) |
102 |
|
|
AC_PROG_CC([$CC $ac_cv_prog_acx_mpi_mpicc icc pathcc pgcc cc xlc gcc]) |
103 |
|
|
AC_PROG_FC([$FC $ac_cv_prog_acx_mpi_mpif90 ifort ifc pathf95 pgf95 xlf95 lf95 epcf90 pathf90 xlf90 f95 f90 gfortran g95 fort], 95) |
104 |
gezelter |
774 |
AC_PROG_CPP |
105 |
|
|
AC_PROG_EGREP |
106 |
gezelter |
847 |
AC_PROG_LN_S |
107 |
|
|
AC_PROG_MAKE_SET |
108 |
|
|
AC_PROG_RANLIB |
109 |
gezelter |
1210 |
AC_PROG_YACC |
110 |
|
|
AC_PROG_LEX |
111 |
gezelter |
847 |
AX_SYS_PERLSHARPBANG |
112 |
|
|
AC_PROG_INSTALL |
113 |
|
|
case "x$INSTALL" in |
114 |
|
|
x/*) ;; |
115 |
|
|
*) INSTALL=`pwd`/ac-tools/"shtool install -c" ; |
116 |
|
|
esac |
117 |
|
|
MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f" |
118 |
|
|
AC_CHECK_PROG(AR, ar, ar, NONE) |
119 |
|
|
if test "$AR" = "NONE"; then |
120 |
|
|
AC_CACHE_SAVE |
121 |
|
|
exit 1 |
122 |
gezelter |
2 |
fi |
123 |
gezelter |
847 |
AC_PATH_PROG(PS, ps) |
124 |
|
|
AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [ |
125 |
|
|
if $PS ax -o rss > /dev/null 2>&1; then |
126 |
|
|
ac_cv_prog_ps_ax=yes |
127 |
|
|
else |
128 |
|
|
ac_cv_prog_ps_ax=no |
129 |
|
|
fi |
130 |
|
|
if $PS -ef -o rss > /dev/null 2>&1; then |
131 |
|
|
ac_cv_prog_ps_ef=yes |
132 |
|
|
else |
133 |
|
|
ac_cv_prog_ps_ef=no |
134 |
|
|
fi |
135 |
|
|
if test "$ac_cv_prog_ps_ax" = yes; then |
136 |
|
|
ac_cv_prog_ps_syntax=BSD |
137 |
|
|
else |
138 |
|
|
if test "$ac_cv_prog_ps_ef" = yes; then |
139 |
|
|
ac_cv_prog_ps_syntax=POSIX |
140 |
|
|
else |
141 |
|
|
AC_MSG_ERROR(Could not determine ps syntax) |
142 |
|
|
fi |
143 |
|
|
fi |
144 |
|
|
]) |
145 |
|
|
AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program]) |
146 |
|
|
if test "$ac_cv_prog_ps_syntax" = BSD; then |
147 |
|
|
AC_DEFINE(PSTYPE_IS_BSD, 1, [ps uses BSD-style arguments]) |
148 |
|
|
else |
149 |
|
|
if test "$ac_cv_prog_ps_syntax" = POSIX; then |
150 |
|
|
AC_DEFINE(PSTYPE_IS_POSIX, 1, [ps uses POSIX-style arguments]) |
151 |
|
|
else |
152 |
|
|
AC_MSG_ERROR(Unknown ps syntax type!) |
153 |
|
|
fi |
154 |
|
|
fi |
155 |
gezelter |
2 |
|
156 |
gezelter |
847 |
AC_LANG_PUSH(Fortran) |
157 |
|
|
AC_FC_SRCEXT(F90) |
158 |
gezelter |
2 |
dnl Check the flag for Fortran90 preprocessing |
159 |
|
|
ACX_PROG_F90_PREPFLAG |
160 |
|
|
dnl Check to see if a flag is required for preprocessing defines |
161 |
|
|
ACX_PROG_F90_PREPDEFFLAG |
162 |
gezelter |
847 |
AC_FC_WRAPPERS |
163 |
|
|
AC_SUBST(FC_FUNC) |
164 |
|
|
AC_SUBST(FC_FUNC_) |
165 |
|
|
AC_FC_LIBRARY_LDFLAGS |
166 |
gezelter |
2 |
dnl Fortran 90 module suffix |
167 |
|
|
AC_CHECK_MODSUFFIX |
168 |
|
|
dnl Fortran 90 module path specifier |
169 |
|
|
AC_CHECK_MODDIRFLAG |
170 |
gezelter |
44 |
AC_F90_MODULE_NAMES |
171 |
|
|
pat=`echo $ac_cv_f90_module_names | sed 's/.*\(%.*%\).*/\1/'` |
172 |
|
|
F90_MODULE_NAMES=empty |
173 |
|
|
case $pat in |
174 |
|
|
%MODULE%) |
175 |
|
|
F90_MODULE_NAMES=UPPER ;; |
176 |
|
|
%Module%) |
177 |
|
|
F90_MODULE_NAMES=Mixed ;; |
178 |
|
|
%module%) |
179 |
|
|
F90_MODULE_NAMES=lower ;; |
180 |
|
|
*) |
181 |
|
|
F90_MODULE_NAMES=unknown ;; |
182 |
|
|
esac |
183 |
|
|
AC_SUBST(F90_MODULE_NAMES) |
184 |
gezelter |
2 |
AC_LANG_POP |
185 |
|
|
|
186 |
gezelter |
847 |
AC_LANG_C |
187 |
gezelter |
811 |
|
188 |
gezelter |
753 |
dnl Checks for libraries. |
189 |
|
|
AC_CHECK_LIB(m, asin, , exit) |
190 |
gezelter |
847 |
ACX_CHECK_ZLIB |
191 |
gezelter |
957 |
ACX_CHECK_FFTW |
192 |
chuckv |
1200 |
ACX_CHECK_QHULL |
193 |
gezelter |
1210 |
ACX_CHECK_OPENBABEL |
194 |
gezelter |
753 |
|
195 |
gezelter |
847 |
# Checks for header files. |
196 |
|
|
AC_HEADER_STDC |
197 |
gezelter |
859 |
AC_CHECK_HEADERS([conio.h dlfcn.h fstream.h iostream.h libintl.h limits.h machine/hal_sysinfo.h math.h stddef.h stdio.h stdlib.h string.h strings.h strstream.h sys/param.h sys/pstat.h sys/sysmp.h sys/sysctl.h sys/sysinfo.h sys/systemcfg.h sys/table.h sys/time.h time.h unistd.h zlib.h]) |
198 |
gezelter |
847 |
|
199 |
|
|
# Checks for typedefs, structures, and compiler characteristics. |
200 |
|
|
AC_HEADER_STDBOOL |
201 |
|
|
AC_C_CONST |
202 |
|
|
AC_C_INLINE |
203 |
|
|
AC_C_RESTRICT |
204 |
|
|
AC_TYPE_SIZE_T |
205 |
|
|
AC_HEADER_TIME |
206 |
|
|
AC_CHECK_TYPES(clock_t) |
207 |
|
|
AC_C_CONST |
208 |
|
|
AC_C_INLINE |
209 |
|
|
|
210 |
|
|
# Checks for library functions. |
211 |
|
|
AC_FUNC_MALLOC |
212 |
|
|
AC_FUNC_MEMCMP |
213 |
|
|
AC_FUNC_REALLOC |
214 |
|
|
AC_FUNC_SELECT_ARGTYPES |
215 |
|
|
AC_FUNC_STRFTIME |
216 |
|
|
AC_FUNC_STRTOD |
217 |
gezelter |
859 |
AC_CHECK_FUNCS([floor getpagesize gettimeofday memchr memmove memset pow pstat_getdynamic pstat_getstatic rint select snprintf sranddev sqrt strcasecmp strchr strdup stricmp strncasecmp strnicmp strrchr strstr strtol sysmp getsysinfo sysctl table]) |
218 |
gezelter |
847 |
|
219 |
tim |
313 |
# special check for _system_configuration because AIX <4.3.2 do not |
220 |
|
|
# contain the `physmem' member. |
221 |
|
|
AC_MSG_CHECKING([for external symbol _system_configuration]) |
222 |
|
|
AC_TRY_COMPILE([#include <sys/systemcfg.h>], |
223 |
|
|
[double x = _system_configuration.physmem;], |
224 |
|
|
[AC_MSG_RESULT([yes]) |
225 |
|
|
AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1, |
226 |
|
|
[Define if you have the _system_configuration variable.])], |
227 |
|
|
[AC_MSG_RESULT([no])]) |
228 |
|
|
|
229 |
gezelter |
2 |
dnl check for system getopt |
230 |
|
|
adl_FUNC_GETOPT_LONG |
231 |
|
|
|
232 |
tim |
819 |
AC_LANG_CPLUSPLUS |
233 |
gezelter |
847 |
AC_CXX_NAMESPACES |
234 |
|
|
AC_CXX_STD |
235 |
|
|
AC_CHECK_HEADERS([ctype.h iostream fstream sstream strstream]) |
236 |
tim |
819 |
# AC_CPP_FUNC |
237 |
|
|
# ------------------ # |
238 |
|
|
# Checks to see if ANSI C99 CPP variable __func__ works. |
239 |
|
|
# If not, perhaps __FUNCTION__ works instead. |
240 |
|
|
# If not, we'll just define __func__ to "". |
241 |
|
|
AC_DEFUN([AC_CPP_FUNC], |
242 |
|
|
[AC_REQUIRE([AC_PROG_CC_STDC])dnl |
243 |
|
|
AC_CACHE_CHECK([for an ANSI C99-conforming __func__], ac_cv_cpp_func, |
244 |
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], |
245 |
|
|
[[const char *foo = __func__;]])], |
246 |
|
|
[ac_cv_cpp_func=yes], |
247 |
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], |
248 |
|
|
[[const char *foo = __FUNCTION__;]])], |
249 |
|
|
[ac_cv_cpp_func=__FUNCTION__], |
250 |
|
|
[ac_cv_cpp_func=no])])]) |
251 |
|
|
if test $ac_cv_cpp_func = __FUNCTION__; then |
252 |
|
|
AC_DEFINE(__func__,__FUNCTION__, |
253 |
|
|
[Define to __FUNCTION__ or "" if `__func__' does not conform to |
254 |
|
|
ANSI C.]) |
255 |
|
|
elif test $ac_cv_cpp_func = no; then |
256 |
|
|
AC_DEFINE(__func__,"", |
257 |
|
|
[Define to __FUNCTION__ or "" if `__func__' does not conform to |
258 |
|
|
ANSI C.]) |
259 |
|
|
fi |
260 |
|
|
])# AC_CPP_FUNC |
261 |
|
|
|
262 |
|
|
AC_CPP_FUNC |
263 |
|
|
AC_SUBST(__func__) |
264 |
|
|
|
265 |
gezelter |
2 |
|
266 |
gezelter |
847 |
dnl check for strong optimization options |
267 |
gezelter |
345 |
|
268 |
gezelter |
847 |
case $debug in |
269 |
|
|
1) |
270 |
|
|
;; |
271 |
|
|
*) |
272 |
|
|
ACX_PROG_FC_MAXOPT |
273 |
|
|
ACX_PROG_CC_MAXOPT |
274 |
|
|
ACX_PROG_CXX_MAXOPT |
275 |
|
|
;; |
276 |
|
|
esac |
277 |
|
|
|
278 |
|
|
dnl OpenBabel needs this: |
279 |
gezelter |
753 |
AC_DEFINE([OBAPI], [], [Used to export symbols for DLL / shared library builds]) |
280 |
gezelter |
2 |
|
281 |
chuckv |
1191 |
dnl check for CGAL library |
282 |
|
|
ACX_CGAL |
283 |
chuckv |
1201 |
USE_CGAL=no |
284 |
chuckv |
1191 |
if test "$acx_cgal_found" == yes; then |
285 |
chuckv |
1197 |
USE_CGAL=yes |
286 |
|
|
AC_DEFINE(HAVE_CGAL, 1, [Is defined if the CGAL library is available.]) |
287 |
|
|
AC_SUBST(CGAL_CXXFLAGS) |
288 |
|
|
AC_SUBST(CGAL_LDFLAGS) |
289 |
|
|
AC_SUBST(CGAL_CPPFLAGS) |
290 |
|
|
AC_SUBST(CGAL_LIBS) |
291 |
chuckv |
1191 |
fi |
292 |
chuckv |
1201 |
AC_SUBST(USE_CGAL) |
293 |
chuckv |
1191 |
|
294 |
|
|
|
295 |
gezelter |
49 |
BB_ENABLE_DOXYGEN |
296 |
gezelter |
2 |
|
297 |
|
|
AC_SUBST(EXEEXT) |
298 |
|
|
AC_SUBST(OBJEXT) |
299 |
|
|
AC_SUBST(BATEXT) |
300 |
|
|
AC_SUBST(MKINSTALLDIRS) |
301 |
|
|
AC_SUBST(OOPSE) |
302 |
|
|
AC_SUBST(OOPSE_HOME) |
303 |
|
|
AC_SUBST(SUBDIRS) |
304 |
|
|
AC_SUBST(CFLAGS) |
305 |
|
|
AC_SUBST(CXXFLAGS) |
306 |
|
|
AC_SUBST(CPPFLAGS) |
307 |
gezelter |
847 |
AC_SUBST(FCFLAGS) |
308 |
gezelter |
2 |
AC_SUBST(LDFLAGS) |
309 |
|
|
AC_SUBST(PREPDEFFLAG) |
310 |
gezelter |
44 |
AC_SUBST(F90_MODULE_NAMES) |
311 |
gezelter |
1210 |
AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/math/Makefile src/applications/atom2md/Makefile scripts/filepp], [chmod 0755 scripts/*]) |
312 |
gezelter |
2 |
|
313 |
|
|
AC_OUTPUT |