ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/ac-tools/configure.in
Revision: 2190
Committed: Wed Apr 13 22:30:22 2005 UTC (19 years, 2 months ago) by gezelter
File size: 13704 byte(s)
Log Message:
added CGAL checks

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_PUSH(C)
119 AC_CHECK_HEADERS(unistd.h sys/pstat.h sys/sysmp.h sys/sysinfo.h sys/table.h sys/param.h sys/sysctl.h sys/sytemcfg.h machine/hal_sysinfo.h)
120 AC_CHECK_FUNCS(pstat_getstatic sysmp getsysinfo sysctl table)
121 # special check for _system_configuration because AIX <4.3.2 do not
122 # contain the `physmem' member.
123 AC_MSG_CHECKING([for external symbol _system_configuration])
124 AC_TRY_COMPILE([#include <sys/systemcfg.h>],
125 [double x = _system_configuration.physmem;],
126 [AC_MSG_RESULT([yes])
127 AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
128 [Define if you have the _system_configuration variable.])],
129 [AC_MSG_RESULT([no])])
130
131 dnl check for system getopt
132 adl_FUNC_GETOPT_LONG
133
134 dnl check for strong optimization options
135
136 case $debug in
137 1)
138 ;;
139 *)
140 ACX_PROG_CC_MAXOPT
141 ACX_PROG_CXX_MAXOPT
142 ACX_PROG_F90_MAXOPT
143 ;;
144 esac
145
146 AC_PROG_INSTALL
147 AC_PROG_LN_S
148 AC_PROG_MAKE_SET
149 AC_PROG_RANLIB
150 AC_PROG_YACC
151 AC_PROG_LEX
152 AC_CHECK_PROG(AR, ar, ar, NONE)
153 if test "$AR" = "NONE"; then
154 AC_MSG_ERROR(--> Can't find \`ar'!)
155 AC_CACHE_SAVE
156 exit 1
157 fi
158
159 AC_PATH_PROG(PS, ps)
160 AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [
161 if $PS ax -o rss > /dev/null 2>&1; then
162 ac_cv_prog_ps_ax=yes
163 else
164 ac_cv_prog_ps_ax=no
165 fi
166 if $PS -ef -o rss > /dev/null 2>&1; then
167 ac_cv_prog_ps_ef=yes
168 else
169 ac_cv_prog_ps_ef=no
170 fi
171 if test "$ac_cv_prog_ps_ax" = yes; then
172 ac_cv_prog_ps_syntax=BSD
173 else
174 if test "$ac_cv_prog_ps_ef" = yes; then
175 ac_cv_prog_ps_syntax=POSIX
176 else
177 AC_MSG_ERROR(Could not determine ps syntax)
178 fi
179 fi
180 ])
181
182 AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program])
183
184 if test "$ac_cv_prog_ps_syntax" = BSD; then
185 AC_DEFINE(PSTYPE_IS_BSD, 1)
186 else
187 if test "$ac_cv_prog_ps_syntax" = POSIX; then
188 AC_DEFINE(PSTYPE_IS_POSIX, 1)
189 else
190 AC_MSG_ERROR(Unknown ps syntax type!)
191 fi
192 fi
193
194 AC_ARG_WITH(mpi,
195 [AC_HELP_STRING([--with-mpi=<prefix>],
196 [compile with MPI installed in <prefix> [default=no]])],
197 with_mpi=$withval,
198 with_mpi="no")
199
200 case "x$with_mpi" in
201 xyes | "x") USE_MPI=yes;;
202 xno) USE_MPI=no ;;
203 *) MPI="$with_mpi"; USE_MPI=yes ;;
204 esac
205 if test "$USE_MPI" = "yes" -a -z "$with_mpi"; then
206 MPI="/usr/local"
207 fi
208 if test "$USE_MPI" = "yes"; then
209 ACX_MPI
210 fi
211 AC_SUBST(USE_MPI)
212
213 dnl AC_ARG_WITH(sprng,
214 dnl [AC_HELP_STRING([--with-sprng=<prefix>],
215 dnl [compile with SPRNG installed in <prefix> [default=/usr/local]])],
216 dnl with_sprng=$withval,
217 dnl with_sprng="/usr/local")
218 dnl
219 dnl case "x$with_sprng" in
220 dnl xyes | "x") USE_SPRNG=yes;;
221 dnl xno) USE_SPRNG=no ;;
222 dnl *) SPRNG="$with_sprng"; USE_SPRNG=yes ;;
223 dnl esac
224 dnl if test "$USE_SPRNG" = "yes" -a -z "$with_sprng"; then
225 dnl SPRNG="/usr/local"
226 dnl fi
227 dnl if test "$USE_SPRNG" = "yes"; then
228 dnl ACX_SPRNG
229 dnl fi
230 dnl AC_SUBST(USE_SPRNG)
231
232 dnl ########################################
233 dnl # Check for CGAL headers and libraries #
234 dnl ########################################
235
236 USE_CGAL=no
237 cgal_makefile=auto
238 AC_ARG_WITH(cgal-makefile,[ --with-cgal-makefile=FILE CGAL makefile that should be used], cgal_makefile="$withval")
239
240 if test "x$cgal_makefile" != xno; then
241
242 if test "x$cgal_makefile" = xauto -a "x$CGAL_MAKEFILE" != x; then
243 cgal_makefile="$CGAL_MAKEFILE"
244 fi
245
246 echo "cgal_makefile $cgal_makefile"
247
248 if test -f "$cgal_makefile"; then
249
250 cat >config.tmp.Makefile <<EOF
251 include $cgal_makefile
252 default:
253 @echo CGAL_OS_COMPILER=\"\${CGAL_OS_COMPILER}\" >config.tmp.cgalvariables
254 @echo CGAL_INCLDIR=\"\${CGAL_INCL_DIR}\" >>config.tmp.cgalvariables
255 @echo CGAL_INCLCONFDIR=\"\${CGAL_INCL_CONF_DIR}\" >>config.tmp.cgalvariables
256 @echo CGAL_LIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
257 @echo CGAL_RLIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
258 @echo CGAL_CXXFLAGS=\"\${CGAL_CXXFLAGS}\" >>config.tmp.cgalvariables
259 @echo GMP_INCLDIR=\"\${GMP_INCL_DIR}\" >>config.tmp.cgalvariables
260 @echo GMP_LIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
261 @echo GMP_RLIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
262 @echo LEDA_INCLDIR=\"\${LEDA_INCL_DIR}\" >>config.tmp.cgalvariables
263 @echo LEDA_LIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
264 @echo LEDA_RLIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
265 EOF
266
267 make -s -f config.tmp.Makefile
268 . config.tmp.cgalvariables
269
270 rm -f config.tmp.Makefile config.tmp.cgalvariables
271
272 if test "x$CGAL_INCLDIR" = "x"; then
273 CGAL_INCLDIR=""
274 fi
275
276 if test "x$CGAL_LIBDIR" = "x"; then
277 CGAL_LIBDIR=""
278 fi
279
280 if test "x$CGAL_RLIBDIR" = "x"; then
281 CGAL_RLIBDIR=""
282 fi
283
284 if test "x$LEDA_INCLDIR" = "x"; then
285 LEDA_INCLDIR=""
286 fi
287
288 if test "x$LEDA_LIBDIR" = "x"; then
289 LEDA_LIBDIR=""
290 fi
291
292 if test "x$LEDA_RLIBDIR" = "x"; then
293 LEDA_RLIBDIR=""
294 fi
295
296 if test "x$GMP_INCLDIR" = "x"; then
297 GMP_INCLDIR=""
298 fi
299
300 if test "x$GMP_LIBDIR" = "x"; then
301 GMP_LIBDIR=""
302 fi
303
304 if test "x$GMP_RLIBDIR" = "x"; then
305 GMP_RLIBDIR=""
306 fi
307
308 echo "CGAL_OS_COMPILER $CGAL_OS_COMPILER"
309 echo "CGAL_INCLDIR $CGAL_INCLDIR"
310 echo "CGAL_INCLCONFDIR $CGAL_INCLCONFDIR"
311 echo "CGAL_LIBDIR $CGAL_LIBDIR"
312 echo "CGAL_CXXFLAGS $CGAL_CXXFLAGS"
313 echo "LEDA_INCLDIR $LEDA_INCLDIR"
314 echo "LEDA_LIBDIR $LEDA_LIBDIR"
315 echo "GMP_INCLDIR $GMP_INCLDIR"
316 echo "GMP_LIBDIR $GMP_LIBDIR"
317
318 AC_LANG_PUSH(C++)
319 save_CXXFLAGS="$CXXFLAGS"
320 CXXFLAGS="$CXXFLAGS -I$CGAL_INCLDIR -I$CGAL_INCLCONFDIR"
321 AC_CHECK_HEADER(CGAL/Cartesian.h, cgal=yes, cgal=no)
322 CXXFLAGS="$save_CXXFLAGS"
323
324 if test "x$cgal" = xyes; then
325 AC_MSG_CHECKING([for CGAL version])
326 LOCATION=${CGAL_INCLDIR}
327 LOCATION=${LOCATION:-/usr/include}
328 if test -f $LOCATION/CGAL/version.h; then
329 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/version.h | sed 's/[^0-9\.]*//g'`
330 else
331 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/config.h | sed 's/[^0-9\.]*//g'`
332 fi
333 changequote({, })dnl
334 if echo $CGAL_VERSION | grep -q "^[3456789]"; then
335 changequote([, ])dnl
336 AC_MSG_RESULT([($CGAL_VERSION) yes])
337 else
338 AC_MSG_RESULT([($CGAL_VERSION) no])
339 cgal=no
340 fi
341 fi
342
343 if test "x$cgal" = xyes; then
344 CGAL_LIBS="-lCGAL"
345 AC_MSG_CHECKING([whether CGAL uses LEDA])
346 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_LEDA; then
347 CGAL_USES_LEDA=yes
348 AC_MSG_RESULT([yes])
349 CGAL_DEFINES="-DCGAL_USE_LEDA -DLEDA_PREFIX"
350 else
351 AC_MSG_RESULT([no])
352 CGAL_USES_LEDA=no
353 fi
354
355 AC_MSG_CHECKING([whether CGAL uses GMP])
356 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_GMP; then
357 CGAL_USES_GMP=yes
358 AC_MSG_RESULT([yes])
359 CGAL_DEFINES="-DCGAL_USE_GMP $CGAL_DEFINES"
360 else
361 AC_MSG_RESULT([no])
362 CGAL_USES_GMP=no
363 fi
364
365 CGAL_LIBS="$CGAL_LIBS -lm"
366
367 CGAL_CXXFLAGS="-ftemplate-depth-50"
368
369 echo "CGAL_USES_LEDA $CGAL_USES_LEDA"
370 echo "CGAL_USES_GMP $CGAL_USES_GMP"
371 echo "CGAL_INCLDIR $CGAL_INCLDIR"
372 echo "CGAL_LIBDIR $CGAL_LIBDIR"
373 echo "CGAL_DEFINES $CGAL_DEFINES"
374 echo "CGAL_CXXFLAGS $CGAL_CXXFLAGS"
375 echo "CGAL_LIBS $CGAL_LIBS"
376 fi
377
378 if test "x$cgal" = xyes; then
379 save_LIBS="$LIBS"
380 LIBS="$LIBS -L$CGAL_LIBDIR"
381 if test "x$CGAL_USES_LEDA" = xyes; then
382 LIBS="-lL $LIBS -L$LEDA_LIBDIR"
383 fi
384 # if test "x$CGAL_USES_GMP" = xyes; then
385 # LIBS="-lgmp $LIBS $GMP_LIBDIR"
386 # fi
387 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)
388 LIBS="$save_LIBS"
389 fi
390
391 fi
392 AC_LANG_POP()
393
394 fi
395
396 if test "x$cgal" = xyes; then
397 USE_CGAL=yes
398 AC_DEFINE(HAVE_CGAL, 1, [Is defined if the CGAL library is available.])
399 AC_DEFINE_UNQUOTED(CGAL_VERSION, $CGAL_VERSION, [The CGAL version number.])
400 changequote({, })dnl
401 if ! echo $CGAL_VERSION | grep -q "^3.0"; then
402 changequote([, ])dnl
403 AC_MSG_WARN(*****************************************************)
404 AC_MSG_WARN(*** Warning: Your CGAL version is newer than the ***)
405 AC_MSG_WARN(*** supported versions. It may still work though. ***)
406 AC_MSG_WARN(*****************************************************)
407 fi
408 else
409 if test "x$cgal_makefile" != xno; then
410 AC_MSG_WARN(*********************************************************)
411 AC_MSG_WARN(*** Warning: CGAL was not found. ***)
412 AC_MSG_WARN(*** Run \"configure\" with the appropriate options. ***)
413 AC_MSG_WARN(*** CGAL support will be disabled. ***)
414 AC_MSG_WARN(*********************************************************)
415 fi
416 CGAL_INCLDIR=
417 CGAL_LIBDIR=
418 CGAL_RLIBDIR=
419 CGAL_DEFINES=
420 CGAL_CXXFLAGS=
421 CGAL_LIBS=
422 fi
423
424 AC_SUBST(USE_CGAL)
425 CGAL_INC_DIR="${CGAL_INCLDIR} ${CGAL_INCLCONFDIR}"
426 AC_SUBST(CGAL_INC_DIR)
427 CGAL_LIB_DIR=${CGAL_LIBDIR}
428 AC_SUBST(CGAL_LIB_DIR)
429 CGAL_RLIB_DIR=${CGAL_RLIBDIR}
430 AC_SUBST(CGAL_RLIB_DIR)
431 AC_SUBST(CGAL_DEFINES)
432 AC_SUBST(CGAL_CXXFLAGS)
433 AC_SUBST(CGAL_LIBS)
434
435 dnl CHECK_MKL
436
437 BB_ENABLE_DOXYGEN
438
439 AC_EXEEXT
440 AC_OBJEXT
441 OBJEXT=".$OBJEXT"
442
443 OOPSE=oopse
444
445 dnl **** define home dir of oopse
446 if test "x${prefix}" = "xNONE"
447 then
448 OOPSE_HOME=${ac_default_prefix}/oopse
449 else
450 OOPSE_HOME=${prefix}/oopse
451 fi
452 AC_ARG_ENABLE(oopse-home,
453 [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
454 [OOPSE_HOME="${enableval}"])
455
456 case "x$INSTALL" in
457 x/*) ;;
458 *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
459 esac
460
461 MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
462
463 dnl **** Define CFLAGS etc empty to prevent configure from setting them
464 CFLAGS=${CFLAGS-""}
465 CXXFLAGS=${CXXFLAGS-""}
466 CPPFLAGS=${CPPFLAGS-""}
467 FFLAGS=${FFLAGS-""}
468 F90FLAGS=${F90FLAGS-""}
469 LDFLAGS=${LDFLAGS-""}
470 DEBUG=${DEBUG-"-g"}
471
472 case $debug in
473 1)
474 FFLAGS="$DEBUG $FFLAGS"
475 F90FLAGS="$DEBUG $F90FLAGS"
476 ;;
477 *)
478 ;;
479 esac
480
481
482 AC_SUBST(EXEEXT)
483 AC_SUBST(OBJEXT)
484 AC_SUBST(BATEXT)
485 AC_SUBST(MKINSTALLDIRS)
486 AC_SUBST(OOPSE)
487 AC_SUBST(OOPSE_HOME)
488 AC_SUBST(SUBDIRS)
489 AC_SUBST(CFLAGS)
490 AC_SUBST(CXXFLAGS)
491 AC_SUBST(CPPFLAGS)
492 AC_SUBST(FFLAGS)
493 AC_SUBST(F90FLAGS)
494 AC_SUBST(LDFLAGS)
495 AC_SUBST(PREPFLAG)
496 AC_SUBST(PREPDEFFLAG)
497 AC_SUBST(F90_MODULE_NAMES)
498 AC_CONFIG_HEADER([src/config.h])
499 AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/applications/nanoRodBuilder/Makefile])
500
501 AC_OUTPUT