ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/ac-tools/configure.in
Revision: 2961
Committed: Wed Jul 26 21:01:07 2006 UTC (17 years, 11 months ago) by gezelter
File size: 13804 byte(s)
Log Message:
added perl substitution for affineScale script

File Contents

# Content
1 dnl **** Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.59)
3 AC_INIT(OOPSE, 3.0, gezelter@nd.edu, oopse)
4 AC_CONFIG_AUX_DIR(ac-tools)
5 AC_CONFIG_SRCDIR([src/applications/oopse/oopse.cpp])
6 AC_CONFIG_HEADER([src/config.h])
7
8 builtin(include, ac-tools/OOPSE.m4)
9 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
13 # who am i
14 AC_CANONICAL_HOST
15
16 AC_PREFIX_DEFAULT("/usr/local")
17
18 # set program name
19 PROGNAME="oopse"
20 AC_SUBST(PROGNAME)
21
22 AC_EXEEXT
23 AC_OBJEXT
24 OBJEXT=".$OBJEXT"
25
26 OOPSE=oopse
27
28 dnl **** define home dir of oopse
29 if test "x${prefix}" = "xNONE"
30 then
31 OOPSE_HOME=${ac_default_prefix}/oopse
32 else
33 OOPSE_HOME=${prefix}/oopse
34 fi
35 AC_ARG_ENABLE(oopse-home,
36 [ --enable-oopse-home=DIR define oopse home dir [PREFIX/oopse]],
37 [OOPSE_HOME="${enableval}"])
38
39 # there are two ways to do debugging. One with the --enable-debug flag
40 # and one using the DEBUG environment variable
41
42 debug=0
43 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Compile OOPSE in debug mode]), [debug=1])
44 if test "${DEBUG}"; then
45 AC_DEFINE(debug, 1, [Code compiled in debug mode])
46 msg="$msg, debug mode"
47 fi
48 AC_SUBST(debug)
49
50 AC_ARG_ENABLE(single, [AC_HELP_STRING([--enable-single],[compile OOPSE in single precision])], ok=$enableval, ok=no)
51 AC_ARG_ENABLE(float, [AC_HELP_STRING([--enable-float],[synonym for --enable-single])], ok=$enableval)
52 if test "$ok" = "yes"; then
53 AC_DEFINE(SINGLE_PRECISION,1,[Define to compile in single precision.])
54 USE_SINGLE_PRECISION=yes
55 AC_SUBST(USE_SINGLE_PRECISION)
56 fi
57
58 # Checks for programs.
59 AC_PROG_CXX([mpicxx icpc pathCC pgCC c++ xlc++ xlC g++ CC])
60 AC_PROG_CC([mpicc icc pathcc pgcc cc xlc gcc])
61 AC_PROG_FC([mpif90 ifort ifc pathf95 pgf95 xlf95 lf95 epcf90 pathf90 xlf90 f95 f90 gfortran g95 fort], 95)
62 AC_PROG_CPP
63 AC_PROG_EGREP
64 AC_PROG_LN_S
65 AC_PROG_MAKE_SET
66 AC_PROG_RANLIB
67 AX_SYS_PERLSHARPBANG
68 AC_PROG_INSTALL
69 case "x$INSTALL" in
70 x/*) ;;
71 *) INSTALL=`pwd`/ac-tools/"shtool install -c" ;
72 esac
73 MKINSTALLDIRS=`pwd`/ac-tools/"shtool mkdir -p -f"
74 AC_CHECK_PROG(AR, ar, ar, NONE)
75 if test "$AR" = "NONE"; then
76 AC_CACHE_SAVE
77 exit 1
78 fi
79 AC_PATH_PROG(PS, ps)
80 AC_CACHE_CHECK([for POSIX or BSD ps syntax], ac_cv_prog_ps_syntax, [
81 if $PS ax -o rss > /dev/null 2>&1; then
82 ac_cv_prog_ps_ax=yes
83 else
84 ac_cv_prog_ps_ax=no
85 fi
86 if $PS -ef -o rss > /dev/null 2>&1; then
87 ac_cv_prog_ps_ef=yes
88 else
89 ac_cv_prog_ps_ef=no
90 fi
91 if test "$ac_cv_prog_ps_ax" = yes; then
92 ac_cv_prog_ps_syntax=BSD
93 else
94 if test "$ac_cv_prog_ps_ef" = yes; then
95 ac_cv_prog_ps_syntax=POSIX
96 else
97 AC_MSG_ERROR(Could not determine ps syntax)
98 fi
99 fi
100 ])
101 AC_DEFINE_UNQUOTED(PSCOMMAND, $PS, [Path to ps program])
102 if test "$ac_cv_prog_ps_syntax" = BSD; then
103 AC_DEFINE(PSTYPE_IS_BSD, 1, [ps uses BSD-style arguments])
104 else
105 if test "$ac_cv_prog_ps_syntax" = POSIX; then
106 AC_DEFINE(PSTYPE_IS_POSIX, 1, [ps uses POSIX-style arguments])
107 else
108 AC_MSG_ERROR(Unknown ps syntax type!)
109 fi
110 fi
111
112 AC_LANG_PUSH(Fortran)
113 AC_FC_SRCEXT(F90)
114 dnl Check the flag for Fortran90 preprocessing
115 ACX_PROG_F90_PREPFLAG
116 dnl Check to see if a flag is required for preprocessing defines
117 ACX_PROG_F90_PREPDEFFLAG
118 AC_FC_WRAPPERS
119 AC_SUBST(FC_FUNC)
120 AC_SUBST(FC_FUNC_)
121 AC_FC_LIBRARY_LDFLAGS
122 dnl Fortran 90 module suffix
123 AC_CHECK_MODSUFFIX
124 dnl Fortran 90 module path specifier
125 AC_CHECK_MODDIRFLAG
126 AC_F90_MODULE_NAMES
127 pat=`echo $ac_cv_f90_module_names | sed 's/.*\(%.*%\).*/\1/'`
128 F90_MODULE_NAMES=empty
129 case $pat in
130 %MODULE%)
131 F90_MODULE_NAMES=UPPER ;;
132 %Module%)
133 F90_MODULE_NAMES=Mixed ;;
134 %module%)
135 F90_MODULE_NAMES=lower ;;
136 *)
137 F90_MODULE_NAMES=unknown ;;
138 esac
139 AC_SUBST(F90_MODULE_NAMES)
140 AC_LANG_POP
141
142 AC_LANG_C
143
144 dnl Checks for libraries.
145 AC_CHECK_LIB(m, asin, , exit)
146 ACX_CHECK_ZLIB
147 ACX_CHECK_FFTW
148
149
150 # Checks for header files.
151 AC_HEADER_STDC
152 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])
153
154 # Checks for typedefs, structures, and compiler characteristics.
155 AC_HEADER_STDBOOL
156 AC_C_CONST
157 AC_C_INLINE
158 AC_C_RESTRICT
159 AC_TYPE_SIZE_T
160 AC_HEADER_TIME
161 AC_CHECK_TYPES(clock_t)
162 AC_C_CONST
163 AC_C_INLINE
164
165 # Checks for library functions.
166 AC_FUNC_MALLOC
167 AC_FUNC_MEMCMP
168 AC_FUNC_REALLOC
169 AC_FUNC_SELECT_ARGTYPES
170 AC_FUNC_STRFTIME
171 AC_FUNC_STRTOD
172 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])
173
174 # special check for _system_configuration because AIX <4.3.2 do not
175 # contain the `physmem' member.
176 AC_MSG_CHECKING([for external symbol _system_configuration])
177 AC_TRY_COMPILE([#include <sys/systemcfg.h>],
178 [double x = _system_configuration.physmem;],
179 [AC_MSG_RESULT([yes])
180 AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
181 [Define if you have the _system_configuration variable.])],
182 [AC_MSG_RESULT([no])])
183
184 dnl check for system getopt
185 adl_FUNC_GETOPT_LONG
186
187 AC_LANG_CPLUSPLUS
188 AC_CXX_NAMESPACES
189 AC_CXX_STD
190 AC_CHECK_HEADERS([ctype.h iostream fstream sstream strstream])
191 # AC_CPP_FUNC
192 # ------------------ #
193 # Checks to see if ANSI C99 CPP variable __func__ works.
194 # If not, perhaps __FUNCTION__ works instead.
195 # If not, we'll just define __func__ to "".
196 AC_DEFUN([AC_CPP_FUNC],
197 [AC_REQUIRE([AC_PROG_CC_STDC])dnl
198 AC_CACHE_CHECK([for an ANSI C99-conforming __func__], ac_cv_cpp_func,
199 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
200 [[const char *foo = __func__;]])],
201 [ac_cv_cpp_func=yes],
202 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
203 [[const char *foo = __FUNCTION__;]])],
204 [ac_cv_cpp_func=__FUNCTION__],
205 [ac_cv_cpp_func=no])])])
206 if test $ac_cv_cpp_func = __FUNCTION__; then
207 AC_DEFINE(__func__,__FUNCTION__,
208 [Define to __FUNCTION__ or "" if `__func__' does not conform to
209 ANSI C.])
210 elif test $ac_cv_cpp_func = no; then
211 AC_DEFINE(__func__,"",
212 [Define to __FUNCTION__ or "" if `__func__' does not conform to
213 ANSI C.])
214 fi
215 ])# AC_CPP_FUNC
216
217 AC_CPP_FUNC
218 AC_SUBST(__func__)
219
220
221 dnl check for strong optimization options
222
223 case $debug in
224 1)
225 ;;
226 *)
227 ACX_PROG_FC_MAXOPT
228 ACX_PROG_CC_MAXOPT
229 ACX_PROG_CXX_MAXOPT
230 ;;
231 esac
232
233 dnl OpenBabel needs this:
234 AC_DEFINE([OBAPI], [], [Used to export symbols for DLL / shared library builds])
235
236
237 AC_ARG_WITH(mpi,
238 [AC_HELP_STRING([--with-mpi=<prefix>],
239 [compile with MPI installed in <prefix> [default=no]])],
240 with_mpi=$withval,
241 with_mpi="no")
242
243 case "x$with_mpi" in
244 xyes | "x") USE_MPI=yes;;
245 xno) USE_MPI=no ;;
246 *) MPI="$with_mpi"; USE_MPI=yes ;;
247 esac
248 if test "$USE_MPI" = "yes" -a -z "$with_mpi"; then
249 MPI="/usr/local"
250 fi
251 if test "$USE_MPI" = "yes"; then
252 ACX_MPI
253 fi
254 AC_SUBST(USE_MPI)
255
256 dnl ########################################
257 dnl # Check for CGAL headers and libraries #
258 dnl ########################################
259
260 USE_CGAL=no
261 cgal_makefile=auto
262 AC_ARG_WITH(cgal-makefile,[ --with-cgal-makefile=FILE CGAL makefile that should be used], cgal_makefile="$withval")
263
264 if test "x$cgal_makefile" != xno; then
265
266 if test "x$cgal_makefile" = xauto -a "x$CGAL_MAKEFILE" != x; then
267 cgal_makefile="$CGAL_MAKEFILE"
268 fi
269
270 AC_MSG_CHECKING(for cgal_makefile: $cgal_makefile)
271
272 if test -f "$cgal_makefile"; then
273
274 cat >config.tmp.Makefile <<EOF
275 include $cgal_makefile
276 default:
277 @echo CGAL_OS_COMPILER=\"\${CGAL_OS_COMPILER}\" >config.tmp.cgalvariables
278 @echo CGAL_INCLDIR=\"\${CGAL_INCL_DIR}\" >>config.tmp.cgalvariables
279 @echo CGAL_INCLCONFDIR=\"\${CGAL_INCL_CONF_DIR}\" >>config.tmp.cgalvariables
280 @echo CGAL_LIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
281 @echo CGAL_RLIBDIR=\"\${CGAL_LIB_DIR}/\${CGAL_OS_COMPILER}\" >>config.tmp.cgalvariables
282 @echo CGAL_CXXFLAGS=\"\${CGAL_CXXFLAGS}\" >>config.tmp.cgalvariables
283 @echo GMP_INCLDIR=\"\${GMP_INCL_DIR}\" >>config.tmp.cgalvariables
284 @echo GMP_LIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
285 @echo GMP_RLIBDIR=\"\${GMP_LIB_DIR}\" >>config.tmp.cgalvariables
286 @echo LEDA_INCLDIR=\"\${LEDA_INCL_DIR}\" >>config.tmp.cgalvariables
287 @echo LEDA_LIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
288 @echo LEDA_RLIBDIR=\"\${LEDA_LIB_DIR}\" >>config.tmp.cgalvariables
289 EOF
290
291 make -s -f config.tmp.Makefile
292 . config.tmp.cgalvariables
293
294 rm -f config.tmp.Makefile config.tmp.cgalvariables
295
296 if test "x$CGAL_INCLDIR" = "x"; then
297 CGAL_INCLDIR=""
298 fi
299
300 if test "x$CGAL_LIBDIR" = "x"; then
301 CGAL_LIBDIR=""
302 fi
303
304 if test "x$CGAL_RLIBDIR" = "x"; then
305 CGAL_RLIBDIR=""
306 fi
307
308 if test "x$LEDA_INCLDIR" = "x"; then
309 LEDA_INCLDIR=""
310 fi
311
312 if test "x$LEDA_LIBDIR" = "x"; then
313 LEDA_LIBDIR=""
314 fi
315
316 if test "x$LEDA_RLIBDIR" = "x"; then
317 LEDA_RLIBDIR=""
318 fi
319
320 if test "x$GMP_INCLDIR" = "x"; then
321 GMP_INCLDIR=""
322 fi
323
324 if test "x$GMP_LIBDIR" = "x"; then
325 GMP_LIBDIR=""
326 fi
327
328 if test "x$GMP_RLIBDIR" = "x"; then
329 GMP_RLIBDIR=""
330 fi
331
332 AC_MSG_RESULT(CGAL_OS_COMPILER= $CGAL_OS_COMPILER)
333 AC_MSG_RESULT(CGAL_INCLDIR= $CGAL_INCLDIR)
334 AC_MSG_RESULT(CGAL_INCLCONFDIR= $CGAL_INCLCONFDIR)
335 AC_MSG_RESULT(CGAL_LIBDIR= $CGAL_LIBDIR)
336 AC_MSG_RESULT(CGAL_CXXFLAGS= $CGAL_CXXFLAGS)
337 AC_MSG_RESULT(LEDA_INCLDIR= $LEDA_INCLDIR)
338 AC_MSG_RESULT(LEDA_LIBDIR= $LEDA_LIBDIR)
339 AC_MSG_RESULT(GMP_INCLDIR= $GMP_INCLDIR)
340 AC_MSG_RESULT(GMP_LIBDIR= $GMP_LIBDIR)
341
342 AC_LANG_PUSH(C++)
343 save_CXXFLAGS="$CXXFLAGS"
344 CXXFLAGS="$CXXFLAGS -I$CGAL_INCLDIR -I$CGAL_INCLCONFDIR"
345 AC_CHECK_HEADER(CGAL/Cartesian.h, cgal=yes, cgal=no)
346 CXXFLAGS="$save_CXXFLAGS"
347
348 if test "x$cgal" = xyes; then
349 AC_MSG_CHECKING([for CGAL version])
350 LOCATION=${CGAL_INCLDIR}
351 LOCATION=${LOCATION:-/usr/include}
352 if test -f $LOCATION/CGAL/version.h; then
353 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/version.h | sed 's/[^0-9\.]*//g'`
354 else
355 CGAL_VERSION=`grep '#define.*\<CGAL_VERSION\>.*' $LOCATION/CGAL/config.h | sed 's/[^0-9\.]*//g'`
356 fi
357 changequote({, })dnl
358 if echo $CGAL_VERSION | grep -q "^[3456789]"; then
359 changequote([, ])dnl
360 AC_MSG_RESULT([($CGAL_VERSION) yes])
361 else
362 AC_MSG_RESULT([($CGAL_VERSION) no])
363 cgal=no
364 fi
365 fi
366
367 if test "x$cgal" = xyes; then
368 CGAL_LIBS="-lCGAL"
369 AC_MSG_CHECKING([whether CGAL uses LEDA])
370 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_LEDA; then
371 CGAL_USES_LEDA=yes
372 AC_MSG_RESULT([yes])
373 CGAL_DEFINES="-DCGAL_USE_LEDA -DLEDA_PREFIX"
374 else
375 AC_MSG_RESULT([no])
376 CGAL_USES_LEDA=no
377 fi
378
379 AC_MSG_CHECKING([whether CGAL uses GMP])
380 if echo $CGAL_CXXFLAGS | grep -q -- -DCGAL_USE_GMP; then
381 CGAL_USES_GMP=yes
382 AC_MSG_RESULT([yes])
383 CGAL_DEFINES="-DCGAL_USE_GMP $CGAL_DEFINES"
384 else
385 AC_MSG_RESULT([no])
386 CGAL_USES_GMP=no
387 fi
388
389 CGAL_LIBS="$CGAL_LIBS -lm"
390
391 CGAL_CXXFLAGS="-ftemplate-depth-50"
392
393 AC_MSG_RESULT(CGAL_USES_LEDA= $CGAL_USES_LEDA)
394 AC_MSG_RESULT(CGAL_USES_GMP = $CGAL_USES_GMP)
395 AC_MSG_RESULT(CGAL_INCLDIR = $CGAL_INCLDIR)
396 AC_MSG_RESULT(CGAL_LIBDIR = $CGAL_LIBDIR)
397 AC_MSG_RESULT(CGAL_DEFINES = $CGAL_DEFINES)
398 AC_MSG_RESULT(CGAL_CXXFLAGS = $CGAL_CXXFLAGS)
399 AC_MSG_RESULT(CGAL_LIBS = $CGAL_LIBS)
400 fi
401
402 if test "x$cgal" = xyes; then
403 save_LIBS="$LIBS"
404 LIBS="$LIBS -L$CGAL_LIBDIR"
405 if test "x$CGAL_USES_LEDA" = xyes; then
406 LIBS="-lL $LIBS -L$LEDA_LIBDIR"
407 fi
408 # if test "x$CGAL_USES_GMP" = xyes; then
409 # LIBS="-lgmp $LIBS $GMP_LIBDIR"
410 # fi
411 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)
412 LIBS="$save_LIBS"
413 fi
414
415 fi
416 AC_LANG_POP()
417
418 fi
419
420 if test "x$cgal" = xyes; then
421 USE_CGAL=yes
422 AC_DEFINE(HAVE_CGAL, 1, [Is defined if the CGAL library is available.])
423 AC_DEFINE_UNQUOTED(CGAL_VERSION, $CGAL_VERSION, [The CGAL version number.])
424 changequote({, })dnl
425 if ! echo $CGAL_VERSION | grep -q "^3.0"; then
426 changequote([, ])dnl
427 AC_MSG_WARN(*****************************************************)
428 AC_MSG_WARN(*** Warning: Your CGAL version is newer than the ***)
429 AC_MSG_WARN(*** supported versions. It may still work though. ***)
430 AC_MSG_WARN(*****************************************************)
431 fi
432 else
433 if test "x$cgal_makefile" != xno; then
434 AC_MSG_RESULT(No CGAL support. These are not the droids you want.)
435 fi
436 CGAL_INCLDIR=
437 CGAL_LIBDIR=
438 CGAL_RLIBDIR=
439 CGAL_DEFINES=
440 CGAL_CXXFLAGS=
441 CGAL_LIBS=
442 fi
443
444 AC_SUBST(USE_CGAL)
445 CGAL_INC_DIR="${CGAL_INCLDIR} ${CGAL_INCLCONFDIR}"
446 AC_SUBST(CGAL_INC_DIR)
447 CGAL_LIB_DIR=${CGAL_LIBDIR}
448 AC_SUBST(CGAL_LIB_DIR)
449 CGAL_RLIB_DIR=${CGAL_RLIBDIR}
450 AC_SUBST(CGAL_RLIB_DIR)
451 AC_SUBST(CGAL_DEFINES)
452 AC_SUBST(CGAL_CXXFLAGS)
453 AC_SUBST(CGAL_LIBS)
454
455 BB_ENABLE_DOXYGEN
456
457 AC_SUBST(EXEEXT)
458 AC_SUBST(OBJEXT)
459 AC_SUBST(BATEXT)
460 AC_SUBST(MKINSTALLDIRS)
461 AC_SUBST(OOPSE)
462 AC_SUBST(OOPSE_HOME)
463 AC_SUBST(SUBDIRS)
464 AC_SUBST(CFLAGS)
465 AC_SUBST(CXXFLAGS)
466 AC_SUBST(CPPFLAGS)
467 AC_SUBST(FCFLAGS)
468 AC_SUBST(LDFLAGS)
469 AC_SUBST(PREPDEFFLAG)
470 AC_SUBST(F90_MODULE_NAMES)
471 AC_CONFIG_FILES([make/Makefile src/utils/Makefile src/applications/nanoRodBuilder/Makefile src/applications/utilities/affineScale scripts/filepp], [chmod 0755 scripts/* src/applications/utilities/affineScale])
472
473 AC_OUTPUT