ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/ac-tools/configure.in
Revision: 811
Committed: Thu Dec 15 14:47:17 2005 UTC (19 years, 5 months ago) by gezelter
File size: 14542 byte(s)
Log Message:
Adding checks for various features used by ANTLR

File Contents

# Content
1 dnl **** Process this file with autoconf to produce a configure script.
2
3 AC_INIT(OOPSE, 2.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 builtin(include, ac-tools/AC_CXX_HAVE_STL.m4)
9 builtin(include, ac-tools/AC_CXX_NAMESPACES.m4)
10 builtin(include, ac-tools/AC_CXX_STD.m4)
11
12 AC_CONFIG_SRCDIR([src/applications/oopse/oopse.cpp])
13
14 AC_PREFIX_DEFAULT("/usr/local")
15
16 # set program name
17 PROGNAME="oopse"
18 AC_SUBST(PROGNAME)
19
20 # there are two ways to do debugging. One with the --enable-debug flag
21 # and one using the DEBUG environment variable
22
23 debug=0
24 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OOPSE in debug mode]), [debug=1])
25 if test "${DEBUG}"; then
26 AC_DEFINE(debug, 1, [Code compiled in debug mode])
27 msg="$msg, debug mode"
28 fi
29 AC_SUBST(debug)
30
31 # who am i
32 AC_CANONICAL_HOST
33
34
35
36 dnl Checks for C compiler
37 AC_PROG_CC([pathcc icc xlc gcc cc])
38
39 dnl Checks for C++ compiler
40 AC_PROG_CXX([pathCC icpc icc xlc++ xlC CC g++ c++])
41
42 dnl Checks for C preprocessor
43 AC_PROG_CPP
44
45 dnl Checks for grep and egrep
46 AC_PROG_EGREP
47
48 dnl If we are not running g++ then we might need some other flags
49 dnl to get the templates compiled correctly
50 OOPSE_TEMPLATE_FLAGS=""
51 if test $ac_cv_prog_gxx = no; then
52 AC_MSG_CHECKING([checking whether ${CXX} accepts -ptused -no_prelink])
53 echo 'void f(){}' > conftest.cc
54 if test -z "`${CXX} -ptused -no_prelink -c conftest.cc 2>&1`"; then
55 AC_MSG_RESULT(yes)
56 OOPSE_TEMPLATE_FLAGS="-ptused -no_prelink"
57 else
58 AC_MSG_RESULT(no)
59 fi
60 rm -f conftest*
61 AC_MSG_CHECKING([checking whether ${CXX} accepts -instances=static])
62 echo 'void f(){}' > conftest.cc
63 if test -z "`${CXX} -instances=static -c conftest.cc 2>&1`"; then
64 AC_MSG_RESULT(yes)
65 OOPSE_TEMPLATE_FLAGS="-instances=static"
66 else
67 AC_MSG_RESULT(no)
68 fi
69 rm -f conftest*
70 AC_MSG_CHECKING([checking whether ${CXX} accepts -pto])
71 echo 'void f(){}' > conftest.cc
72 if test -z "`${CXX} -pto -c conftest.cc 2>&1`"; then
73 AC_MSG_RESULT(yes)
74 OOPSE_TEMPLATE_FLAGS="-pto"
75 else
76 AC_MSG_RESULT(no)
77 fi
78 rm -f conftest*
79 AC_MSG_CHECKING([checking whether ${CXX} accepts -LANG:std])
80 echo 'void f(){}' > conftest.cc
81 if test -z "`${CXX} -LANG:std -c conftest.cc 2>&1`"; then
82 AC_MSG_RESULT(yes)
83
84
85 EXTRA_CC_FLAG=${EXTRA_CC_FLAG}" -LANG:std"
86 else
87 AC_MSG_RESULT(no)
88 fi
89 fi
90 AC_SUBST(OOPSE_TEMPLATE_FLAGS)
91 AC_SUBST(EXTRA_CC_FLAG)
92
93 dnl Fortran 90 compilation checks are next
94
95 AC_PROG_F90([pathf95 ifort ifc f90 xlf90 pgf90 epcf90 f95 xlf95 lf95 fort g95])
96 dnl Check the flag for Fortran90 preprocessing
97 ACX_PROG_F90_PREPFLAG
98 dnl Check to see if a flag is required for preprocessing defines
99 ACX_PROG_F90_PREPDEFFLAG
100 AC_LANG_PUSH(Fortran 90)
101 AC_LANG_PREPROC(Fortran 90)
102 AC_F90_LIBRARY_LDFLAGS
103 dnl How does Fortran mangle function names
104 AC_F90_WRAPPERS
105 AC_SUBST(F90_FUNC)
106 AC_SUBST(F90_FUNC_)
107 dnl Fortran 90 module suffix
108 AC_CHECK_MODSUFFIX
109 dnl Fortran 90 module path specifier
110 AC_CHECK_MODDIRFLAG
111 AC_F90_MODULE_NAMES
112 pat=`echo $ac_cv_f90_module_names | sed 's/.*\(%.*%\).*/\1/'`
113 F90_MODULE_NAMES=empty
114 case $pat in
115 %MODULE%)
116 F90_MODULE_NAMES=UPPER ;;
117 %Module%)
118 F90_MODULE_NAMES=Mixed ;;
119 %module%)
120 F90_MODULE_NAMES=lower ;;
121 *)
122 F90_MODULE_NAMES=unknown ;;
123 esac
124 AC_SUBST(F90_MODULE_NAMES)
125 AC_LANG_POP
126
127 AC_LANG_CPLUSPLUS
128 AC_HEADER_STDC
129 AC_CXX_NAMESPACES
130 AC_CXX_STD
131
132 dnl Checks for libraries.
133 AC_CHECK_LIB(m, asin, , exit)
134
135 AC_LANG_C
136 ACX_CHECK_ZLIB
137 dnl Checks for header files.
138 AC_CHECK_HEADERS([stdlib.h string.h sys/param.h unistd.h sys/time.h stdio.h conio.h strstream.h iostream.h fstream.h math.h time.h sys/pstat.h sys/sysmp.h sys/sysinfo.h sys/table.h sys/sysctl.h sys/sytemcfg.h machine/hal_sysinfo.h])
139 AC_LANG_CPLUSPLUS
140 AC_CHECK_HEADERS([ctype.h iostream fstream sstream strstream])
141 AC_LANG_C
142 AC_CHECK_FUNCS([rint snprintf sranddev strcasecmp strncasecmp stricmp strnicmp pstat_getstatic sysmp getsysinfo sysctl table])
143 # special check for _system_configuration because AIX <4.3.2 do not
144 # contain the `physmem' member.
145 AC_MSG_CHECKING([for external symbol _system_configuration])
146 AC_TRY_COMPILE([#include <sys/systemcfg.h>],
147 [double x = _system_configuration.physmem;],
148 [AC_MSG_RESULT([yes])
149 AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
150 [Define if you have the _system_configuration variable.])],
151 [AC_MSG_RESULT([no])])
152 AC_HEADER_TIME
153
154 dnl Checks for typedefs, structures, and compiler characteristics.
155 AC_CHECK_TYPES(clock_t)
156 AC_C_CONST
157 AC_C_INLINE
158
159
160 dnl check for system getopt
161 adl_FUNC_GETOPT_LONG
162
163 dnl check for strong optimization options
164
165 case $debug in
166 1)
167 ;;
168 *)
169 ACX_PROG_CC_MAXOPT
170 ACX_PROG_CXX_MAXOPT
171 ACX_PROG_F90_MAXOPT
172 ;;
173 esac
174
175 AC_PROG_INSTALL
176 AC_PROG_LN_S
177 AC_PROG_MAKE_SET
178 AC_PROG_RANLIB
179 AC_PROG_YACC
180 AC_PROG_LEX
181 AX_SYS_PERLSHARPBANG
182 AC_CHECK_PROG(AR, ar, ar, NONE)
183 if test "$AR" = "NONE"; then
184 AC_MSG_ERROR(--> Can't find \`ar'!)
185 AC_CACHE_SAVE
186 exit 1
187 fi
188
189 AC_PATH_PROG(PS, ps)
190 AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [
191 if $PS ax -o rss > /dev/null 2>&1; then
192 ac_cv_prog_ps_ax=yes
193 else
194 ac_cv_prog_ps_ax=no
195 fi
196 if $PS -ef -o rss > /dev/null 2>&1; then
197 ac_cv_prog_ps_ef=yes
198 else
199 ac_cv_prog_ps_ef=no
200 fi
201 if test "$ac_cv_prog_ps_ax" = yes; then
202 ac_cv_prog_ps_syntax=BSD
203 else
204 if test "$ac_cv_prog_ps_ef" = yes; then
205 ac_cv_prog_ps_syntax=POSIX
206 else
207 AC_MSG_ERROR(Could not determine ps syntax)
208 fi
209 fi
210 ])
211
212 AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program])
213 AC_DEFINE([OBAPI], [], [Used to export symbols for DLL / shared library builds])
214
215
216 if test "$ac_cv_prog_ps_syntax" = BSD; then
217 AC_DEFINE(PSTYPE_IS_BSD, 1, [ps uses BSD-style arguments])
218 else
219 if test "$ac_cv_prog_ps_syntax" = POSIX; then
220 AC_DEFINE(PSTYPE_IS_POSIX, 1, [ps uses POSIX-style arguments])
221 else
222 AC_MSG_ERROR(Unknown ps syntax type!)
223 fi
224 fi
225
226 AC_ARG_WITH(mpi,
227 [AC_HELP_STRING([--with-mpi=<prefix>],
228 [compile with MPI installed in <prefix> [default=no]])],
229 with_mpi=$withval,
230 with_mpi="no")
231
232 case "x$with_mpi" in
233 xyes | "x") USE_MPI=yes;;
234 xno) USE_MPI=no ;;
235 *) MPI="$with_mpi"; USE_MPI=yes ;;
236 esac
237 if test "$USE_MPI" = "yes" -a -z "$with_mpi"; then
238 MPI="/usr/local"
239 fi
240 if test "$USE_MPI" = "yes"; then
241 ACX_MPI
242 fi
243 AC_SUBST(USE_MPI)
244
245 dnl AC_ARG_WITH(sprng,
246 dnl [AC_HELP_STRING([--with-sprng=<prefix>],
247 dnl [compile with SPRNG installed in <prefix> [default=/usr/local]])],
248 dnl with_sprng=$withval,
249 dnl with_sprng="/usr/local")
250 dnl
251 dnl case "x$with_sprng" in
252 dnl xyes | "x") USE_SPRNG=yes;;
253 dnl xno) USE_SPRNG=no ;;
254 dnl *) SPRNG="$with_sprng"; USE_SPRNG=yes ;;
255 dnl esac
256 dnl if test "$USE_SPRNG" = "yes" -a -z "$with_sprng"; then
257 dnl SPRNG="/usr/local"
258 dnl fi
259 dnl if test "$USE_SPRNG" = "yes"; then
260 dnl ACX_SPRNG
261 dnl fi
262 dnl AC_SUBST(USE_SPRNG)
263
264 dnl ########################################
265 dnl # Check for CGAL headers and libraries #
266 dnl ########################################
267
268 USE_CGAL=no
269 cgal_makefile=auto
270 AC_ARG_WITH(cgal-makefile,[ --with-cgal-makefile=FILE CGAL makefile that should be used], cgal_makefile="$withval")
271
272 if test "x$cgal_makefile" != xno; then
273
274 if test "x$cgal_makefile" = xauto -a "x$CGAL_MAKEFILE" != x; then
275 cgal_makefile="$CGAL_MAKEFILE"
276 fi
277
278 AC_MSG_CHECKING(for cgal_makefile: $cgal_makefile)
279
280 if test -f "$cgal_makefile"; then
281
282 cat >config.tmp.Makefile <<EOF
283 include $cgal_makefile
284 default:
285 @echo CGAL_OS_COMPILER=\"\${CGAL_OS_COMPILER}\" >config.tmp.cgalvariables
286 @echo CGAL_INCLDIR=\"\${CGAL_INCL_DIR}\" >>config.tmp.cgalvariables
287 @echo CGAL_INCLCONFDIR=\"\${CGAL_INCL_CONF_DIR}\" >>config.tmp.cgalvariables
288 @echo CGAL_LIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
289 @echo CGAL_RLIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
290 @echo CGAL_CXXFLAGS=\"\${CGAL_CXXFLAGS}\" >>config.tmp.cgalvariables
291 @echo GMP_INCLDIR=\"\${GMP_INCL_DIR}\" >>config.tmp.cgalvariables
292 @echo GMP_LIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
293 @echo GMP_RLIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
294 @echo LEDA_INCLDIR=\"\${LEDA_INCL_DIR}\" >>config.tmp.cgalvariables
295 @echo LEDA_LIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
296 @echo LEDA_RLIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
297 EOF
298
299 make -s -f config.tmp.Makefile
300 . config.tmp.cgalvariables
301
302 rm -f config.tmp.Makefile config.tmp.cgalvariables
303
304 if test "x$CGAL_INCLDIR" = "x"; then
305 CGAL_INCLDIR=""
306 fi
307
308 if test "x$CGAL_LIBDIR" = "x"; then
309 CGAL_LIBDIR=""
310 fi
311
312 if test "x$CGAL_RLIBDIR" = "x"; then
313 CGAL_RLIBDIR=""
314 fi
315
316 if test "x$LEDA_INCLDIR" = "x"; then
317 LEDA_INCLDIR=""
318 fi
319
320 if test "x$LEDA_LIBDIR" = "x"; then
321 LEDA_LIBDIR=""
322 fi
323
324 if test "x$LEDA_RLIBDIR" = "x"; then
325 LEDA_RLIBDIR=""
326 fi
327
328 if test "x$GMP_INCLDIR" = "x"; then
329 GMP_INCLDIR=""
330 fi
331
332 if test "x$GMP_LIBDIR" = "x"; then
333 GMP_LIBDIR=""
334 fi
335
336 if test "x$GMP_RLIBDIR" = "x"; then
337 GMP_RLIBDIR=""
338 fi
339
340 AC_MSG_RESULT(CGAL_OS_COMPILER= $CGAL_OS_COMPILER)
341 AC_MSG_RESULT(CGAL_INCLDIR= $CGAL_INCLDIR)
342 AC_MSG_RESULT(CGAL_INCLCONFDIR= $CGAL_INCLCONFDIR)
343 AC_MSG_RESULT(CGAL_LIBDIR= $CGAL_LIBDIR)
344 AC_MSG_RESULT(CGAL_CXXFLAGS= $CGAL_CXXFLAGS)
345 AC_MSG_RESULT(LEDA_INCLDIR= $LEDA_INCLDIR)
346 AC_MSG_RESULT(LEDA_LIBDIR= $LEDA_LIBDIR)
347 AC_MSG_RESULT(GMP_INCLDIR= $GMP_INCLDIR)
348 AC_MSG_RESULT(GMP_LIBDIR= $GMP_LIBDIR)
349
350 AC_LANG_PUSH(C++)
351 save_CXXFLAGS="$CXXFLAGS"
352 CXXFLAGS="$CXXFLAGS -I$CGAL_INCLDIR -I$CGAL_INCLCONFDIR"
353 AC_CHECK_HEADER(CGAL/Cartesian.h, cgal=yes, cgal=no)
354 CXXFLAGS="$save_CXXFLAGS"
355
356 if test "x$cgal" = xyes; then
357 AC_MSG_CHECKING([for CGAL version])
358 LOCATION=${CGAL_INCLDIR}
359 LOCATION=${LOCATION:-/usr/include}
360 if test -f $LOCATION/CGAL/version.h; then
361 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/version.h | sed 's/[^0-9\.]*//g'`
362 else
363 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/config.h | sed 's/[^0-9\.]*//g'`
364 fi
365 changequote({, })dnl
366 if echo $CGAL_VERSION | grep -q "^[3456789]"; then
367 changequote([, ])dnl
368 AC_MSG_RESULT([($CGAL_VERSION) yes])
369 else
370 AC_MSG_RESULT([($CGAL_VERSION) no])
371 cgal=no
372 fi
373 fi
374
375 if test "x$cgal" = xyes; then
376 CGAL_LIBS="-lCGAL"
377 AC_MSG_CHECKING([whether CGAL uses LEDA])
378 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_LEDA; then
379 CGAL_USES_LEDA=yes
380 AC_MSG_RESULT([yes])
381 CGAL_DEFINES="-DCGAL_USE_LEDA -DLEDA_PREFIX"
382 else
383 AC_MSG_RESULT([no])
384 CGAL_USES_LEDA=no
385 fi
386
387 AC_MSG_CHECKING([whether CGAL uses GMP])
388 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_GMP; then
389 CGAL_USES_GMP=yes
390 AC_MSG_RESULT([yes])
391 CGAL_DEFINES="-DCGAL_USE_GMP $CGAL_DEFINES"
392 else
393 AC_MSG_RESULT([no])
394 CGAL_USES_GMP=no
395 fi
396
397 CGAL_LIBS="$CGAL_LIBS -lm"
398
399 CGAL_CXXFLAGS="-ftemplate-depth-50"
400
401 AC_MSG_RESULT(CGAL_USES_LEDA= $CGAL_USES_LEDA)
402 AC_MSG_RESULT(CGAL_USES_GMP = $CGAL_USES_GMP)
403 AC_MSG_RESULT(CGAL_INCLDIR = $CGAL_INCLDIR)
404 AC_MSG_RESULT(CGAL_LIBDIR = $CGAL_LIBDIR)
405 AC_MSG_RESULT(CGAL_DEFINES = $CGAL_DEFINES)
406 AC_MSG_RESULT(CGAL_CXXFLAGS = $CGAL_CXXFLAGS)
407 AC_MSG_RESULT(CGAL_LIBS = $CGAL_LIBS)
408 fi
409
410 if test "x$cgal" = xyes; then
411 save_LIBS="$LIBS"
412 LIBS="$LIBS -L$CGAL_LIBDIR"
413 if test "x$CGAL_USES_LEDA" = xyes; then
414 LIBS="-lL $LIBS -L$LEDA_LIBDIR"
415 fi
416 # if test "x$CGAL_USES_GMP" = xyes; then
417 # LIBS="-lgmp $LIBS $GMP_LIBDIR"
418 # fi
419 AC_CHECK_CXX_LIB(CGAL, ::CGAL::Cartesian<int>::Point_2, [#include <CGAL/Cartesian.h>], [::CGAL::Cartesian<int>::Point_2 P], [cgal=yes], [cgal=no], -I$CGAL_INCLDIR -I$CGAL_INCLCONFDIR)
420 LIBS="$save_LIBS"
421 fi
422
423 fi
424 AC_LANG_POP()
425
426 fi
427
428 if test "x$cgal" = xyes; then
429 USE_CGAL=yes
430 AC_DEFINE(HAVE_CGAL, 1, [Is defined if the CGAL library is available.])
431 AC_DEFINE_UNQUOTED(CGAL_VERSION, $CGAL_VERSION, [The CGAL version number.])
432 changequote({, })dnl
433 if ! echo $CGAL_VERSION | grep -q "^3.0"; then
434 changequote([, ])dnl
435 AC_MSG_WARN(*****************************************************)
436 AC_MSG_WARN(*** Warning: Your CGAL version is newer than the ***)
437 AC_MSG_WARN(*** supported versions. It may still work though. ***)
438 AC_MSG_WARN(*****************************************************)
439 fi
440 else
441 if test "x$cgal_makefile" != xno; then
442 AC_MSG_RESULT(No CGAL support. These are not the droids you want.)
443 fi
444 CGAL_INCLDIR=
445 CGAL_LIBDIR=
446 CGAL_RLIBDIR=
447 CGAL_DEFINES=
448 CGAL_CXXFLAGS=
449 CGAL_LIBS=
450 fi
451
452 AC_SUBST(USE_CGAL)
453 CGAL_INC_DIR="${CGAL_INCLDIR} ${CGAL_INCLCONFDIR}"
454 AC_SUBST(CGAL_INC_DIR)
455 CGAL_LIB_DIR=${CGAL_LIBDIR}
456 AC_SUBST(CGAL_LIB_DIR)
457 CGAL_RLIB_DIR=${CGAL_RLIBDIR}
458 AC_SUBST(CGAL_RLIB_DIR)
459 AC_SUBST(CGAL_DEFINES)
460 AC_SUBST(CGAL_CXXFLAGS)
461 AC_SUBST(CGAL_LIBS)
462
463 dnl CHECK_MKL
464
465 BB_ENABLE_DOXYGEN
466
467 AC_EXEEXT
468 AC_OBJEXT
469 OBJEXT=".$OBJEXT"
470
471 OOPSE=oopse
472
473 dnl **** define home dir of oopse
474 if test "x${prefix}" = "xNONE"
475 then
476 OOPSE_HOME=${ac_default_prefix}/oopse
477 else
478 OOPSE_HOME=${prefix}/oopse
479 fi
480 AC_ARG_ENABLE(oopse-home,
481 [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
482 [OOPSE_HOME="${enableval}"])
483
484 case "x$INSTALL" in
485 x/*) ;;
486 *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
487 esac
488
489 MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
490
491 dnl **** Define CFLAGS etc empty to prevent configure from setting them
492 CFLAGS=${CFLAGS-""}
493 CXXFLAGS=${CXXFLAGS-""}
494 CPPFLAGS=${CPPFLAGS-""}
495 FFLAGS=${FFLAGS-""}
496 F90FLAGS=${F90FLAGS-""}
497 LDFLAGS=${LDFLAGS-""}
498 DEBUG=${DEBUG-"-g"}
499
500 case $debug in
501 1)
502 FFLAGS="$DEBUG $FFLAGS"
503 F90FLAGS="$DEBUG $F90FLAGS"
504 ;;
505 *)
506 ;;
507 esac
508
509
510 AC_SUBST(EXEEXT)
511 AC_SUBST(OBJEXT)
512 AC_SUBST(BATEXT)
513 AC_SUBST(MKINSTALLDIRS)
514 AC_SUBST(OOPSE)
515 AC_SUBST(OOPSE_HOME)
516 AC_SUBST(SUBDIRS)
517 AC_SUBST(CFLAGS)
518 AC_SUBST(CXXFLAGS)
519 AC_SUBST(CPPFLAGS)
520 AC_SUBST(FFLAGS)
521 AC_SUBST(F90FLAGS)
522 AC_SUBST(LDFLAGS)
523 AC_SUBST(PREPFLAG)
524 AC_SUBST(PREPDEFFLAG)
525 AC_SUBST(F90_MODULE_NAMES)
526 AC_CONFIG_HEADER([src/config.h])
527 AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/applications/nanoRodBuilder/Makefile scripts/filepp], [chmod 0755 scripts/*])
528
529 AC_OUTPUT