ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/ac-tools/configure.in
Revision: 1182
Committed: Fri May 21 14:23:20 2004 UTC (20 years, 1 month ago) by gezelter
File size: 7389 byte(s)
Log Message:
Changes for SHAPES potential

File Contents

# User Rev Content
1 mmeineke 377 dnl **** Process this file with autoconf to produce a configure script.
2    
3 gezelter 747 AC_INIT(OOPSE, 1.0, gezelter@nd.edu, oopse)
4 mmeineke 377 AC_CONFIG_AUX_DIR(ac-tools)
5    
6 gezelter 747 builtin(include, ac-tools/fortran90.m4)
7 mmeineke 377 builtin(include, ac-tools/aclocal.m4)
8    
9 gezelter 747 AC_CONFIG_SRCDIR([src/oopse.cpp])
10 mmeineke 377
11 gezelter 747 AC_PREFIX_DEFAULT("/usr/local")
12 mmeineke 377
13 gezelter 747 # set program name
14     PROGNAME="oopse"
15     AC_SUBST(PROGNAME)
16    
17 gezelter 822 # 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 gezelter 747 if test "${DEBUG}"; then
23 gezelter 822 AC_DEFINE(debug, 1, [Code compiled in debug mode])
24 gezelter 747 msg="$msg, debug mode"
25 mmeineke 377 fi
26 gezelter 822 AC_SUBST(debug)
27 mmeineke 377
28 gezelter 747 # who am i
29     AC_CANONICAL_HOST
30 mmeineke 377
31 gezelter 840 dnl Checks for C compiler
32 gezelter 747 AC_PROG_CC([icc xlc gcc cc])
33 gezelter 840
34     dnl Checks for C++ compiler
35 gezelter 816 AC_PROG_CXX([icpc icc xlC CC g++ c++])
36 gezelter 942
37 gezelter 840 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 chuckv 896
73    
74 gezelter 840 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 gezelter 942 AC_PROG_F90([ifort ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95])
85 gezelter 840 dnl Check the flag for Fortran90 preprocessing
86 gezelter 942 ACX_PROG_F90_PREPFLAG
87 gezelter 840 dnl Check to see if a flag is required for preprocessing defines
88 gezelter 747 ACX_PROG_F90_PREPDEFFLAG
89 gezelter 840 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 gezelter 822
101 gezelter 840 dnl check for strong optimization options
102    
103 gezelter 822 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 gezelter 747 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 mmeineke 377
126 gezelter 747 AC_MSG_CHECKING([for mpi-directory])
127 gezelter 942 AC_ARG_WITH(mpi,
128     [ --with-mpi=MPIDIR give the path for MPI [/usr/local]],
129 gezelter 747 MPI_DIR="$withval", MPI_DIR="/usr/local")
130     AC_MSG_RESULT([$MPI_DIR])
131 gezelter 942 AC_SUBST([mpi])
132 mmeineke 377
133 gezelter 747 AC_MSG_CHECKING([for mpi-lib-directory])
134 gezelter 786 AC_ARG_WITH(mpi_libdir,
135     [ --with-mpi-libdir=dir give the path for MPI-libraries [MPI_DIR/lib]],
136 gezelter 747 MPI_LIBDIR="$withval", MPI_LIBDIR="$MPI_DIR/lib")
137     AC_MSG_RESULT([$MPI_LIBDIR])
138     AC_SUBST([MPI_LIBDIR])
139 mmeineke 377
140 gezelter 747 AC_MSG_CHECKING([for mpi-inc-directory])
141 gezelter 944 AC_ARG_WITH(mpi-inc,
142     [ --with-mpi-inc=dir give the path for MPI-include-files [MPI_DIR/include]],
143 gezelter 747 MPI_INC="$withval", MPI_INC="$MPI_DIR/include")
144     AC_MSG_RESULT([$MPI_INC])
145     AC_SUBST([MPI_INC])
146 mmeineke 377
147 gezelter 944 AC_MSG_CHECKING([for mpi.h])
148     HAVE_MPIDOTH_C="no"
149     echo '#include <mpi.h>' > conftest.cc
150     if test -z "`${CXX} -I${MPI_INC} -c conftest.cc 2>&1`"; then
151     AC_MSG_RESULT(yes)
152     HAVE_MPIDOTH_C="yes"
153     else
154     AC_MSG_RESULT(no! Check MPI include paths)
155     fi
156     rm -f conftest*
157 mmeineke 377
158 gezelter 944 AC_MSG_CHECKING([whether mpif.h is usable])
159     HAVE_MPIFDOTH_F90="no"
160     rm -f conftest*
161     cat >conftest.f90 <<EOF
162     program main
163     include 'mpif.h'
164     end
165     EOF
166     if $F90 -I$MPI_INC -c conftest.f90 > conftest.out 2>&1 ; then
167     AC_MSG_RESULT(yes)
168     MPI_F90INC="$MPI_INC"
169     HAVE_MPIFDOTH_F90="yes"
170     else
171     if test -s conftest.out ; then cat conftest.out >> config.log ; fi
172     AC_MSG_RESULT([no! Check MPI include paths])
173     fi
174     rm -f conftest*
175     AC_SUBST([MPI_F90INC])
176 mmeineke 377
177 gezelter 944 AC_LANG_PUSH(C)
178     ac_save_LDFLAGS=$LDFLAGS
179     LDFLAGS="${LDFLAGS} -L${MPI_LIBDIR} "
180    
181     if test x = x"$MPI_LIB"; then
182     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"])
183     fi
184     if test x = x"$MPI_LIB"; then
185     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"])
186     fi
187     $as_unset ac_cv_lib_mpi_MPI_Init
188     if test x = x"$MPI_LIB"; then
189     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [],
190     "-llam")
191     fi
192    
193     $as_unset ac_cv_lib_mpi_MPI_Init
194     if test x = x"$MPI_LIB"; then
195     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"],
196     [AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])],
197     [-llam -lpthread])
198     fi
199    
200     AC_MSG_RESULT(found $MPI_LIB)
201 gezelter 747 AC_SUBST(MPI_LIB)
202 mmeineke 377
203 gezelter 944 AC_MSG_CHECKING([for MPI Fortran library])
204     MPI_F90LIB=""
205     if test -f "$MPI_LIBDIR/libfmpich.a" ; then
206     MPI_F90LIB="-lfmpich"
207     elif test -f "$MPI_LIBDIR/liblamf77mpi.a" ; then
208     MPI_F90LIB="-llamf77mpi"
209     else
210     # nothing special found, we'll assume that the C library is all we need
211     MPI_F90LIB=" "
212     fi
213     AC_MSG_RESULT([found $MPI_F90LIB])
214     AC_SUBST(MPI_F90LIB)
215    
216     dnl CHECK_MPI
217    
218 gezelter 942 dnl I don't think this works right now:
219     dnl ACX_MPI
220 mmeineke 377
221 gezelter 747 AM_PATH_SPRNG
222     CHECK_MKL
223 gezelter 826
224 mmeineke 377
225     AC_EXEEXT
226     AC_OBJEXT
227     OBJEXT=".$OBJEXT"
228    
229 gezelter 747 OOPSE=oopse
230 mmeineke 377
231 gezelter 747 dnl **** define home dir of oopse
232     if test "x${prefix}" = "xNONE"
233     then
234     OOPSE_HOME=${ac_default_prefix}/oopse
235 mmeineke 377 else
236 gezelter 747 OOPSE_HOME=${prefix}/oopse
237 mmeineke 377 fi
238 gezelter 747 AC_ARG_ENABLE(oopse-home,
239     [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
240     [OOPSE_HOME="${enableval}"])
241 mmeineke 377
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 gezelter 1182 SUBDIRS="libBASS libmdtools src forceFields samples utils utils/sysbuilder staticProps third-party shapes"
251 mmeineke 377
252 gezelter 747 dnl **** Define CFLAGS etc empty to prevent configure from setting them
253 mmeineke 794 CFLAGS=${CFLAGS-""}
254     CXXFLAGS=${CXXFLAGS-""}
255     CPPFLAGS=${CPPFLAGS-""}
256     FFLAGS=${FFLAGS-""}
257     F90FLAGS=${F90FLAGS-""}
258     LDFLAGS=${LDFLAGS-""}
259     DEBUG=${DEBUG-"-g"}
260 gezelter 747
261     case $debug in
262 gezelter 822 1)
263 gezelter 747 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 mmeineke 809 staticProps/Makefile
291 chuckv 894 third-party/Makefile
292 gezelter 747 samples/alkane/Makefile samples/argon/Makefile
293     samples/beadLipid/Makefile samples/lipid/Makefile
294     samples/metals/Makefile samples/water/Makefile
295 gezelter 1182 shapes/Makefile
296 gezelter 747 ])
297    
298     AC_OUTPUT