1 |
dnl **** Process this file with autoconf to produce a configure script. |
2 |
AC_PREREQ(2.68) |
3 |
AC_INIT(OpenMD, 2.0, gezelter@nd.edu) |
4 |
AC_CONFIG_AUX_DIR(ac-tools) |
5 |
AC_CONFIG_SRCDIR([src/applications/openmd/openmd.cpp]) |
6 |
AC_CONFIG_HEADER([src/config.h]) |
7 |
|
8 |
builtin(include, ac-tools/OpenMD.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 |
|
14 |
# who am i |
15 |
AC_CANONICAL_HOST |
16 |
|
17 |
AC_PREFIX_DEFAULT("/usr/local") |
18 |
|
19 |
# set program name |
20 |
PROGNAME="openmd" |
21 |
AC_SUBST(PROGNAME) |
22 |
|
23 |
AC_EXEEXT |
24 |
AC_OBJEXT |
25 |
OBJEXT=".$OBJEXT" |
26 |
|
27 |
OPENMD=openmd |
28 |
|
29 |
dnl **** define home dir of OpenMD |
30 |
if test "x${prefix}" = "xNONE" |
31 |
then |
32 |
OPENMD_HOME=${ac_default_prefix}/openmd |
33 |
else |
34 |
OPENMD_HOME=${prefix}/openmd |
35 |
fi |
36 |
AC_ARG_ENABLE(openmd-home, |
37 |
[ --enable-openmd-home=DIR define OpenMD home dir [PREFIX/openmd]], |
38 |
[OPENMD_HOME="${enableval}"]) |
39 |
|
40 |
# 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 |
AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OpenMD in debug mode]), [debug=1]) |
45 |
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 |
AC_ARG_ENABLE(single, [AC_HELP_STRING([--enable-single],[compile OpenMD in single precision])], ok=$enableval, ok=no) |
52 |
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 |
USE_SINGLE_PRECISION=yes |
56 |
AC_SUBST(USE_SINGLE_PRECISION) |
57 |
fi |
58 |
|
59 |
AC_PROG_CXX([$CXX icpc pathCC pgCC c++ xlc++ xlC g++ CC]) |
60 |
AC_PROG_CC([$CC icc pathcc pgcc cc xlc gcc]) |
61 |
|
62 |
save_CXX=$CXX |
63 |
save_CC=$CC |
64 |
save_LIBS=$LIBS |
65 |
|
66 |
AC_LANG([C++]) |
67 |
AC_CHECK_LIB(c, dlopen, LIBDL="", [AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl")]) |
68 |
AC_SUBST(LIBDL) |
69 |
AX_MPI([USE_MPI="yes"], |
70 |
[USE_MPI="no" |
71 |
AC_MSG_WARN([No suitable C++ MPI implementation found. openmd_MPI will not be built.])]) |
72 |
AS_IF([test AS_VAR_GET([USE_MPI]) != no],[ |
73 |
AC_LANG([C]) |
74 |
AX_MPI([USE_MPI="yes"], |
75 |
[USE_MPI="no" |
76 |
AC_MSG_WARN([No suitable C MPI implementation found. openmd_MPI will not be built.])]) |
77 |
]) |
78 |
AS_IF([test AS_VAR_GET([USE_MPI]) != no],[ |
79 |
CXX=$MPICXX |
80 |
CC=$MPICC |
81 |
LIBS="$MPILIBS $LIBS" |
82 |
],[ |
83 |
CXX=$save_CXX |
84 |
CC=$save_CC |
85 |
LIBS=$save_LIBS |
86 |
] |
87 |
) |
88 |
AC_SUBST(USE_MPI) |
89 |
|
90 |
# Checks for programs. |
91 |
AC_PROG_CPP |
92 |
AC_PROG_EGREP |
93 |
AC_PROG_LN_S |
94 |
AC_PROG_MAKE_SET |
95 |
AC_PROG_RANLIB |
96 |
AX_SYS_PERLSHARPBANG |
97 |
AC_PROG_INSTALL |
98 |
case "x$INSTALL" in |
99 |
x/*) ;; |
100 |
*) INSTALL=`pwd`/ac-tools/"shtool install -c" ; |
101 |
esac |
102 |
MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f -m 755" |
103 |
AC_CHECK_PROG(AR, ar, ar, NONE) |
104 |
if test "$AR" = "NONE"; then |
105 |
AC_CACHE_SAVE |
106 |
exit 1 |
107 |
fi |
108 |
|
109 |
dnl Checks for libraries. |
110 |
ACX_CHECK_ZLIB |
111 |
ACX_CHECK_FFTW |
112 |
ACX_CHECK_QHULL |
113 |
ACX_CHECK_OPENBABEL |
114 |
|
115 |
# Checks for header files. |
116 |
AC_CHECK_HEADERS([limits.h stdlib.h string.h sys/ioctl.h unistd.h]) |
117 |
|
118 |
# Checks for typedefs, structures, and compiler characteristics. |
119 |
AC_HEADER_STDBOOL |
120 |
AC_C_INLINE |
121 |
AC_TYPE_SIZE_T |
122 |
|
123 |
# Checks for library functions. |
124 |
AC_FUNC_MALLOC |
125 |
AC_FUNC_REALLOC |
126 |
AC_FUNC_STRTOD |
127 |
AC_CHECK_FUNCS([atexit floor pow select sqrt strcasecmp strchr strdup strncasecmp strstr strtol strtoull]) |
128 |
|
129 |
dnl check for strong optimization options |
130 |
|
131 |
case $debug in |
132 |
1) |
133 |
;; |
134 |
*) |
135 |
ACX_PROG_CC_MAXOPT |
136 |
ACX_PROG_CXX_MAXOPT |
137 |
;; |
138 |
esac |
139 |
|
140 |
BB_ENABLE_DOXYGEN |
141 |
|
142 |
AC_SUBST(EXEEXT) |
143 |
AC_SUBST(OBJEXT) |
144 |
AC_SUBST(BATEXT) |
145 |
AC_SUBST(MKINSTALLDIRS) |
146 |
AC_SUBST(OPENMD) |
147 |
AC_SUBST(OPENMD_HOME) |
148 |
AC_SUBST(SUBDIRS) |
149 |
AC_SUBST(CFLAGS) |
150 |
AC_SUBST(CXXFLAGS) |
151 |
AC_SUBST(CPPFLAGS) |
152 |
AC_SUBST(LDFLAGS) |
153 |
AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/math/Makefile src/integrators/Makefile src/applications/atom2md/Makefile scripts/filepp], [chmod 0755 scripts/*]) |
154 |
|
155 |
AC_OUTPUT |