ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/ac-tools/configure.in
Revision: 1228
Committed: Thu Jun 3 20:02:18 2004 UTC (20 years, 1 month ago) by gezelter
File size: 7717 byte(s)
Log Message:
Working on MPI scripting for autoconf

File Contents

# Content
1 dnl **** Process this file with autoconf to produce a configure script.
2
3 AC_INIT(OOPSE, 1.0, gezelter@nd.edu, oopse)
4 AC_CONFIG_AUX_DIR(ac-tools)
5
6 builtin(include, ac-tools/fortran90.m4)
7 builtin(include, ac-tools/aclocal.m4)
8
9 AC_CONFIG_SRCDIR([src/oopse.cpp])
10
11 AC_PREFIX_DEFAULT("/usr/local")
12
13 # set program name
14 PROGNAME="oopse"
15 AC_SUBST(PROGNAME)
16
17 # there are two ways to do debugging. One with the --enable-debug flag
18 # and one using the DEBUG environment variable
19
20 debug=0
21 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OOPSE in debug mode]), [debug=1])
22 if test "${DEBUG}"; then
23 AC_DEFINE(debug, 1, [Code compiled in debug mode])
24 msg="$msg, debug mode"
25 fi
26 AC_SUBST(debug)
27
28 # who am i
29 AC_CANONICAL_HOST
30
31 dnl Checks for C compiler
32 AC_PROG_CC([icc xlc gcc cc])
33
34 dnl Checks for C++ compiler
35 AC_PROG_CXX([icpc icc xlc++ xlC CC g++ c++])
36
37 dnl If we are not running g++ then we might need some other flags
38 dnl to get the templates compiled correctly
39 OOPSE_TEMPLATE_FLAGS=""
40 if test $ac_cv_prog_gxx = no; then
41 AC_MSG_CHECKING([checking whether ${CXX} accepts -ptused -no_prelink])
42 echo 'void f(){}' > conftest.cc
43 if test -z "`${CXX} -ptused -no_prelink -c conftest.cc 2>&1`"; then
44 AC_MSG_RESULT(yes)
45 OOPSE_TEMPLATE_FLAGS="-ptused -no_prelink"
46 else
47 AC_MSG_RESULT(no)
48 fi
49 rm -f conftest*
50 AC_MSG_CHECKING([checking whether ${CXX} accepts -instances=static])
51 echo 'void f(){}' > conftest.cc
52 if test -z "`${CXX} -instances=static -c conftest.cc 2>&1`"; then
53 AC_MSG_RESULT(yes)
54 OOPSE_TEMPLATE_FLAGS="-instances=static"
55 else
56 AC_MSG_RESULT(no)
57 fi
58 rm -f conftest*
59 AC_MSG_CHECKING([checking whether ${CXX} accepts -pto])
60 echo 'void f(){}' > conftest.cc
61 if test -z "`${CXX} -pto -c conftest.cc 2>&1`"; then
62 AC_MSG_RESULT(yes)
63 OOPSE_TEMPLATE_FLAGS="-pto"
64 else
65 AC_MSG_RESULT(no)
66 fi
67 rm -f conftest*
68 AC_MSG_CHECKING([checking whether ${CXX} accepts -LANG:std])
69 echo 'void f(){}' > conftest.cc
70 if test -z "`${CXX} -LANG:std -c conftest.cc 2>&1`"; then
71 AC_MSG_RESULT(yes)
72
73
74 EXTRA_CC_FLAG=${EXTRA_CC_FLAG}" -LANG:std"
75 else
76 AC_MSG_RESULT(no)
77 fi
78 fi
79 AC_SUBST(OOPSE_TEMPLATE_FLAGS)
80 AC_SUBST(EXTRA_CC_FLAG)
81
82 dnl Fortran 90 compilation checks are next
83
84 AC_PROG_F90([ifort ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95])
85 dnl Check the flag for Fortran90 preprocessing
86 ACX_PROG_F90_PREPFLAG
87 dnl Check to see if a flag is required for preprocessing defines
88 ACX_PROG_F90_PREPDEFFLAG
89 AC_LANG_PUSH(Fortran 90)
90 AC_LANG_PREPROC(Fortran 90)
91 AC_F90_LIBRARY_LDFLAGS
92 dnl How does Fortran mangle function names
93 AC_F90_WRAPPERS
94 AC_SUBST(F90_FUNC)
95 AC_SUBST(F90_FUNC_)
96 dnl Fortran 90 module suffix
97 AC_CHECK_MODSUFFIX
98 dnl Fortran 90 module path specifier
99 AC_CHECK_MODDIRFLAG
100
101 dnl check for strong optimization options
102
103 case $debug in
104 1)
105 ;;
106 *)
107 ACX_PROG_CC_MAXOPT
108 ACX_PROG_CXX_MAXOPT
109 ACX_PROG_F90_MAXOPT
110 ;;
111 esac
112
113 AC_PROG_INSTALL
114 AC_PROG_LN_S
115 AC_PROG_MAKE_SET
116 AC_PROG_RANLIB
117 AC_PROG_YACC
118 AC_PROG_LEX
119 AC_CHECK_PROG(AR, ar, ar, NONE)
120 if test "$AR" = "NONE"; then
121 AC_MSG_ERROR(--> Can't find \`ar'!)
122 AC_CACHE_SAVE
123 exit 1
124 fi
125
126 ACX_MPI
127 dnl AC_MSG_CHECKING([for mpi-directory])
128 dnl AC_ARG_WITH(mpi,
129 dnl [ --with-mpi=MPIDIR give the path for MPI [/usr/local]],
130 dnl MPI_DIR="$withval", MPI_DIR="/usr/local")
131 dnl AC_MSG_RESULT([$MPI_DIR])
132 dnl AC_SUBST([mpi])
133
134 dnl AC_MSG_CHECKING([for mpi-lib-directory])
135 dnl AC_ARG_WITH(mpi_libdir,
136 dnl [ --with-mpi-libdir=dir give the path for MPI-libraries [MPI_DIR/lib]],
137 dnl MPI_LIBDIR="$withval", MPI_LIBDIR="$MPI_DIR/lib")
138 dnl AC_MSG_RESULT([$MPI_LIBDIR])
139 dnl AC_SUBST([MPI_LIBDIR])
140 dnl
141 dnl AC_MSG_CHECKING([for mpi-inc-directory])
142 dnl AC_ARG_WITH(mpi-inc,
143 dnl [ --with-mpi-inc=dir give the path for MPI-include-files [MPI_DIR/include]],
144 dnl MPI_INC="$withval", MPI_INC="$MPI_DIR/include")
145 dnl AC_MSG_RESULT([$MPI_INC])
146 dnl AC_SUBST([MPI_INC])
147 dnl
148 dnl AC_MSG_CHECKING([for mpi.h])
149 dnl HAVE_MPIDOTH_C="no"
150 dnl echo '#include <mpi.h>' > conftest.cc
151 dnl if test -z "`${CXX} -I${MPI_INC} -c conftest.cc 2>&1`"; then
152 dnl AC_MSG_RESULT(yes)
153 dnl HAVE_MPIDOTH_C="yes"
154 dnl else
155 dnl AC_MSG_RESULT(no! Check MPI include paths)
156 dnl fi
157 dnl rm -f conftest*
158 dnl
159 dnl AC_MSG_CHECKING([whether mpif.h is usable])
160 dnl HAVE_MPIFDOTH_F90="no"
161 dnl rm -f conftest*
162 dnl cat >conftest.f90 <<EOF
163 dnl program main
164 dnl include 'mpif.h'
165 dnl end
166 dnl EOF
167 dnl if $F90 -I$MPI_INC -c conftest.f90 > conftest.out 2>&1 ; then
168 dnl AC_MSG_RESULT(yes)
169 dnl MPI_F90INC="$MPI_INC"
170 dnl HAVE_MPIFDOTH_F90="yes"
171 dnl else
172 dnl if test -s conftest.out ; then cat conftest.out >> config.log ; fi
173 dnl AC_MSG_RESULT([no! Check MPI include paths])
174 dnl fi
175 dnl rm -f conftest*
176 dnl AC_SUBST([MPI_F90INC])
177 dnl
178 dnl AC_LANG_PUSH(C)
179 dnl ac_save_LDFLAGS=$LDFLAGS
180 dnl LDFLAGS="${LDFLAGS} -L${MPI_LIBDIR} "
181 dnl
182 dnl if test x = x"$MPI_LIB"; then
183 dnl AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"])
184 dnl fi
185 dnl if test x = x"$MPI_LIB"; then
186 dnl AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"])
187 dnl fi
188 dnl $as_unset ac_cv_lib_mpi_MPI_Init
189 dnl if test x = x"$MPI_LIB"; then
190 dnl AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [],
191 dnl "-llam")
192 dnl fi
193 dnl
194 dnl $as_unset ac_cv_lib_mpi_MPI_Init
195 dnl if test x = x"$MPI_LIB"; then
196 dnl AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"],
197 dnl [AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])],
198 dnl [-llam -lpthread])
199 dnl fi
200 dnl
201 dnl AC_MSG_RESULT(found $MPI_LIB)
202 dnl AC_SUBST(MPI_LIB)
203 dnl
204 dnl AC_MSG_CHECKING([for MPI Fortran library])
205 dnl MPI_F90LIB=""
206 dnl if test -f "$MPI_LIBDIR/libfmpich.a" ; then
207 dnl MPI_F90LIB="-lfmpich"
208 dnl elif test -f "$MPI_LIBDIR/liblamf77mpi.a" ; then
209 dnl MPI_F90LIB="-llamf77mpi"
210 dnl else
211 dnl # nothing special found, we'll assume that the C library is all we need
212 dnl MPI_F90LIB=" "
213 dnl fi
214 dnl AC_MSG_RESULT([found $MPI_F90LIB])
215 dnl AC_SUBST(MPI_F90LIB)
216 dnl
217 dnl dnl CHECK_MPI
218 dnl
219 dnl ACX_MPI
220
221 AM_PATH_SPRNG
222 CHECK_MKL
223
224
225 AC_EXEEXT
226 AC_OBJEXT
227 OBJEXT=".$OBJEXT"
228
229 OOPSE=oopse
230
231 dnl **** define home dir of oopse
232 if test "x${prefix}" = "xNONE"
233 then
234 OOPSE_HOME=${ac_default_prefix}/oopse
235 else
236 OOPSE_HOME=${prefix}/oopse
237 fi
238 AC_ARG_ENABLE(oopse-home,
239 [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
240 [OOPSE_HOME="${enableval}"])
241
242 case "x$INSTALL" in
243 x/*) ;;
244 *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
245 esac
246
247 MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
248
249 dnl **** Final list of subdirs
250 SUBDIRS="libBASS libmdtools src forceFields samples utils utils/sysbuilder staticProps third-party shapes"
251
252 dnl **** Define CFLAGS etc empty to prevent configure from setting them
253 CFLAGS=${CFLAGS-""}
254 CXXFLAGS=${CXXFLAGS-""}
255 CPPFLAGS=${CPPFLAGS-""}
256 FFLAGS=${FFLAGS-""}
257 F90FLAGS=${F90FLAGS-""}
258 LDFLAGS=${LDFLAGS-""}
259 DEBUG=${DEBUG-"-g"}
260
261 case $debug in
262 1)
263 FFLAGS="$DEBUG $FFLAGS"
264 F90FLAGS="$DEBUG $F90FLAGS"
265 ;;
266 *)
267 ;;
268 esac
269
270
271 AC_SUBST(EXEEXT)
272 AC_SUBST(OBJEXT)
273 AC_SUBST(BATEXT)
274 AC_SUBST(MKINSTALLDIRS)
275 AC_SUBST(OOPSE)
276 AC_SUBST(OOPSE_HOME)
277 AC_SUBST(SUBDIRS)
278 AC_SUBST(CFLAGS)
279 AC_SUBST(CXXFLAGS)
280 AC_SUBST(CPPFLAGS)
281 AC_SUBST(FFLAGS)
282 AC_SUBST(F90FLAGS)
283 AC_SUBST(LDFLAGS)
284 AC_SUBST(PREPFLAG)
285 AC_SUBST(PREPDEFFLAG)
286 AC_CONFIG_HEADER([libmdtools/config.h])
287 AC_CONFIG_FILES([Makefile
288 libBASS/Makefile libmdtools/Makefile src/Makefile utils/Makefile
289 utils/sysbuilder/Makefile forceFields/Makefile samples/Makefile
290 staticProps/Makefile
291 third-party/Makefile
292 samples/alkane/Makefile samples/argon/Makefile
293 samples/beadLipid/Makefile samples/lipid/Makefile
294 samples/metals/Makefile samples/water/Makefile
295 shapes/Makefile
296 ])
297
298 AC_OUTPUT