ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/configure.in
Revision: 768
Committed: Tue Nov 29 22:54:21 2005 UTC (19 years, 7 months ago) by chuckv
Original Path: trunk/ac-tools/configure.in
File size: 14314 byte(s)
Log Message:
added checks for some functions to configure script

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