ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/ac-tools/configure.in
Revision: 840
Committed: Wed Oct 29 14:29:12 2003 UTC (20 years, 8 months ago) by gezelter
File size: 6786 byte(s)
Log Message:
C++ compatibility for templates

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    
10 gezelter 747 AC_CONFIG_SRCDIR([src/oopse.cpp])
11 mmeineke 377
12 gezelter 747 AC_PREFIX_DEFAULT("/usr/local")
13 mmeineke 377
14 gezelter 747 # set program name
15     PROGNAME="oopse"
16     AC_SUBST(PROGNAME)
17    
18 gezelter 822 # there are two ways to do debugging. One with the --enable-debug flag
19     # and one using the DEBUG environment variable
20    
21     debug=0
22     AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OOPSE in debug mode]), [debug=1])
23 gezelter 747 if test "${DEBUG}"; then
24 gezelter 822 AC_DEFINE(debug, 1, [Code compiled in debug mode])
25 gezelter 747 msg="$msg, debug mode"
26 mmeineke 377 fi
27 gezelter 822 AC_SUBST(debug)
28 mmeineke 377
29 gezelter 747 # who am i
30     AC_CANONICAL_HOST
31 mmeineke 377
32 gezelter 840 dnl Checks for C compiler
33 gezelter 747 AC_PROG_CC([icc xlc gcc cc])
34 gezelter 840
35     dnl Checks for C++ compiler
36 gezelter 816 AC_PROG_CXX([icpc icc xlC CC g++ c++])
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     EXTRA_CC_FLAG=${EXTRA_CC_FLAG}" -LANG:std"
73     else
74     AC_MSG_RESULT(no)
75     fi
76     fi
77     AC_SUBST(OOPSE_TEMPLATE_FLAGS)
78     AC_SUBST(EXTRA_CC_FLAG)
79    
80     dnl Fortran 90 compilation checks are next
81    
82 gezelter 747 AC_PROG_F90([ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95])
83 gezelter 840 dnl Check the flag for Fortran90 preprocessing
84 gezelter 747 ACX_PROG_F90_PREPFLAG
85 gezelter 840 dnl Check to see if a flag is required for preprocessing defines
86 gezelter 747 ACX_PROG_F90_PREPDEFFLAG
87 gezelter 840 AC_LANG_PUSH(Fortran 90)
88     AC_LANG_PREPROC(Fortran 90)
89     AC_F90_LIBRARY_LDFLAGS
90     dnl How does Fortran mangle function names
91     AC_F90_WRAPPERS
92     AC_SUBST(F90_FUNC)
93     AC_SUBST(F90_FUNC_)
94     dnl Fortran 90 module suffix
95     AC_CHECK_MODSUFFIX
96     dnl Fortran 90 module path specifier
97     AC_CHECK_MODDIRFLAG
98 gezelter 822
99 gezelter 840 dnl check for strong optimization options
100    
101 gezelter 822 case $debug in
102     1)
103     ;;
104     *)
105     ACX_PROG_CC_MAXOPT
106     ACX_PROG_CXX_MAXOPT
107     ACX_PROG_F90_MAXOPT
108     ;;
109     esac
110    
111 gezelter 747 AC_PROG_INSTALL
112     AC_PROG_LN_S
113     AC_PROG_MAKE_SET
114     AC_PROG_RANLIB
115     AC_PROG_YACC
116     AC_PROG_LEX
117     AC_CHECK_PROG(AR, ar, ar, NONE)
118     if test "$AR" = "NONE"; then
119     AC_MSG_ERROR(--> Can't find \`ar'!)
120     AC_CACHE_SAVE
121     exit 1
122     fi
123 mmeineke 377
124 gezelter 747 AC_MSG_CHECKING([for mpi-directory])
125 gezelter 786 AC_ARG_WITH(mpi_dir,
126     [ --with-mpi_dir=MPIDIR give the path for MPI [/usr/local]],
127 gezelter 747 MPI_DIR="$withval", MPI_DIR="/usr/local")
128     AC_MSG_RESULT([$MPI_DIR])
129 gezelter 786 AC_SUBST([mpi_dir])
130 mmeineke 377
131 gezelter 747 AC_MSG_CHECKING([for mpi-lib-directory])
132 gezelter 786 AC_ARG_WITH(mpi_libdir,
133     [ --with-mpi-libdir=dir give the path for MPI-libraries [MPI_DIR/lib]],
134 gezelter 747 MPI_LIBDIR="$withval", MPI_LIBDIR="$MPI_DIR/lib")
135     AC_MSG_RESULT([$MPI_LIBDIR])
136     AC_SUBST([MPI_LIBDIR])
137 mmeineke 377
138 gezelter 747 AC_MSG_CHECKING([for mpi-inc-directory])
139 gezelter 786 AC_ARG_WITH(mpi_inc,
140     [ --with-mpi_inc=dir give the path for MPI-include-files [MPI_DIR/include]],
141 gezelter 747 MPI_INC="$withval", MPI_INC="$MPI_DIR/include")
142     AC_MSG_RESULT([$MPI_INC])
143     AC_SUBST([MPI_INC])
144 mmeineke 377
145    
146 gezelter 747 AC_MSG_CHECKING([for MPI library])
147     MPI_LIB=""
148     case "$host" in
149     *-ibm-aix*) dnl IBM/SP2 machines
150     dnl checking whether to use signal-based MPI
151 mmeineke 377
152 gezelter 747 AC_MSG_CHECKING([whether to use signal-based MPI library])
153     AC_MSG_RESULT([$PACX_SIGNAL])
154     if test "x$PACX_SIGNAL" = "xyes" ; then
155     if test -f "$MPI_LIBDIR/libmpi.a" ; then
156     MPI_LIB="-lmpi"
157     elif test -f "$MPI_LIBDIR/libmpi.so" ; then
158     MPI_LIB="-lmpi"
159     elif test -f "$MPI_LIBDIR/libmpich.a" ; then
160     MPI_LIB="-lmpich"
161     else
162     AC_MSG_ERROR([neither libmpi nor libmpich found; check path for MPI package first...])
163     fi
164     else
165     if test -f "$MPI_LIBDIR/libmpi_r.a" ; then
166     MPI_LIB="-lmpi_r"
167     else
168     AC_MSG_ERROR([libmpi_r not found; check path for MPI package...])
169     fi
170     fi
171     AC_MSG_RESULT(found $MPI_LIB)
172     ;;
173     *) dnl All other machines
174     if test -f "$MPI_LIBDIR/libmpi.a" ; then
175     MPI_LIB="-lmpi"
176     elif test -f "$MPI_LIBDIR/libmpi.so" ; then
177     MPI_LIB="-lmpi"
178     elif test -f "$MPI_LIBDIR/libmpich.a" ; then
179     MPI_LIB="-lmpich"
180     else
181     AC_MSG_ERROR([neither libmpi nor libmpich found; check path for MPI package first...])
182     fi
183     AC_MSG_RESULT(found $MPI_LIB)
184     ;;
185     esac
186     AC_SUBST(MPI_LIB)
187 mmeineke 377
188 gezelter 747 ACX_MPI
189 mmeineke 377
190 gezelter 747 AM_PATH_SPRNG
191     CHECK_MKL
192 gezelter 826
193 mmeineke 792 AC_CHECK_MPI_F90MOD
194 mmeineke 377
195     AC_EXEEXT
196     AC_OBJEXT
197     OBJEXT=".$OBJEXT"
198    
199 gezelter 747 OOPSE=oopse
200 mmeineke 377
201 gezelter 747 dnl **** define home dir of oopse
202     if test "x${prefix}" = "xNONE"
203     then
204     OOPSE_HOME=${ac_default_prefix}/oopse
205 mmeineke 377 else
206 gezelter 747 OOPSE_HOME=${prefix}/oopse
207 mmeineke 377 fi
208 gezelter 747 AC_ARG_ENABLE(oopse-home,
209     [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
210     [OOPSE_HOME="${enableval}"])
211 mmeineke 377
212     case "x$INSTALL" in
213     x/*) ;;
214     *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
215     esac
216    
217     MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
218    
219     dnl **** Final list of subdirs
220 mmeineke 809 SUBDIRS="libBASS libmdtools src forceFields samples utils utils/sysbuilder staticProps"
221 mmeineke 377
222 gezelter 747 dnl **** Define CFLAGS etc empty to prevent configure from setting them
223 mmeineke 794 CFLAGS=${CFLAGS-""}
224     CXXFLAGS=${CXXFLAGS-""}
225     CPPFLAGS=${CPPFLAGS-""}
226     FFLAGS=${FFLAGS-""}
227     F90FLAGS=${F90FLAGS-""}
228     LDFLAGS=${LDFLAGS-""}
229     DEBUG=${DEBUG-"-g"}
230 gezelter 747
231     case $debug in
232 gezelter 822 1)
233 gezelter 747 FFLAGS="$DEBUG $FFLAGS"
234     F90FLAGS="$DEBUG $F90FLAGS"
235     ;;
236     *)
237     ;;
238     esac
239    
240    
241     AC_SUBST(EXEEXT)
242     AC_SUBST(OBJEXT)
243     AC_SUBST(BATEXT)
244     AC_SUBST(MKINSTALLDIRS)
245     AC_SUBST(OOPSE)
246     AC_SUBST(OOPSE_HOME)
247     AC_SUBST(SUBDIRS)
248     AC_SUBST(CFLAGS)
249     AC_SUBST(CXXFLAGS)
250     AC_SUBST(CPPFLAGS)
251     AC_SUBST(FFLAGS)
252     AC_SUBST(F90FLAGS)
253     AC_SUBST(LDFLAGS)
254     AC_SUBST(PREPFLAG)
255     AC_SUBST(PREPDEFFLAG)
256     AC_CONFIG_HEADER([libmdtools/config.h])
257     AC_CONFIG_FILES([Makefile
258     libBASS/Makefile libmdtools/Makefile src/Makefile utils/Makefile
259     utils/sysbuilder/Makefile forceFields/Makefile samples/Makefile
260 mmeineke 809 staticProps/Makefile
261 gezelter 747 samples/alkane/Makefile samples/argon/Makefile
262     samples/beadLipid/Makefile samples/lipid/Makefile
263     samples/metals/Makefile samples/water/Makefile
264     ])
265    
266     AC_OUTPUT