ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/ac-tools/configure.in
Revision: 1225
Committed: Fri Feb 8 21:33:46 2008 UTC (17 years, 2 months ago) by gezelter
File size: 8981 byte(s)
Log Message:
updating configure process

File Contents

# User Rev Content
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