ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/OpenMD.m4
Revision: 1631
Committed: Wed Sep 14 21:43:22 2011 UTC (13 years, 7 months ago) by gezelter
File size: 32928 byte(s)
Log Message:
cleaning up the configure script

File Contents

# Content
1 dnl We need a function similar to AC_CHECK_LIB to check for C++ libraries.
2 dnl AC_CHECK_CXX_LIB provides a similar interface like AC_CHECK_LIB
3 dnl and uses AC_TRY_LINK.
4 dnl
5 dnl $1 library name (without "-l")
6 dnl $2 object name to check for
7 dnl $3 neccessary include directive(s)
8 dnl $4 command to create object $2
9 dnl $5 yes-action
10 dnl $6 no-action
11 dnl $7 include dir for $3 (with -I)
12 dnl $8 additional libraries to link with
13
14 AC_DEFUN(AC_CHECK_CXX_LIB, AC_MSG_CHECKING([for $2 in -l$1])
15 save_CXXFLAGS_CHECK_CXX_LIB="$CXXFLAGS"
16 CXXFLAGS="$CXXFLAGS $7"
17 save_LIBS_CHECK_CXX_LIB="$LIBS"
18 LIBS="-l$1 $8 $LIBS"
19 [AC_TRY_LINK([$3], [$4], [AC_MSG_RESULT([yes])
20 $5], [AC_MSG_RESULT([no])
21 $6])]
22 CXXFLAGS="$save_CXXFLAGS_CHECK_CXX_LIB"
23 LIBS="$save_LIBS_CHECK_CXX_LIB")dnl
24
25 dnl
26 dnl AC_CHECK_MODSUFFIX
27 dnl
28 AC_DEFUN([AC_CHECK_MODSUFFIX],[
29
30 AC_MSG_CHECKING(for module suffix)
31 rm -f conftest*
32 # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
33 rm -f work*
34 cat >conftest.$ac_ext <<EOF
35 module conftest
36 integer n
37 parameter (n=1)
38 end module conftest
39 EOF
40 # SGI and absoft compilers generates module name in upper case!
41 testname="conftest"
42 modcase="lower"
43 if (eval $ac_compile) 2>/dev/null ; then
44 MOD=`ls conftest* | grep -v conftest.$ac_ext | grep -v conftest.o`
45 MOD=`echo "$MOD" | sed -e 's/conftest\.//g'`
46 if test -z "$MOD" ; then
47 MOD=`ls CONFTEST* 2>/dev/null \
48 | grep -v CONFTEST.$ac_ext | grep -v CONFTEST.o`
49 MOD=`echo "$MOD" | sed -e 's/CONFTEST\.//g'`
50 if test -n "$MOD" ; then
51 testname="CONFTEST"
52 modcase="upper"
53 fi
54 fi
55 if test -z "$MOD" ; then
56 AC_MSG_RESULT(unknown)
57 # Use mod if we can't figure it out
58 MOD="mod"
59 else
60 AC_MSG_RESULT($MOD)
61 fi
62 if test -s work.pcl ; then
63 AC_MSG_WARN([Compiler generates auxillery files!])
64 fi
65 else
66 AC_MSG_RESULT(unknown)
67 fi
68 AC_SUBST(MOD)
69
70 ])
71
72 AC_DEFUN(ACX_CHECK_CC_FLAGS,
73 [
74 AC_REQUIRE([AC_PROG_CC])
75 AC_CACHE_CHECK(whether ${CC} accepts $1, ac_cv_$2,
76 [echo 'void f(){}' > conftest.c
77 if test -z "`${CC} $1 -c conftest.c 2>&1`"; then
78 ac_cv_$2=yes
79 else
80 ac_cv_$2=no
81 fi
82 rm -f conftest*
83 ])
84 if test "$ac_cv_$2" = yes; then
85 :
86 $3
87 else
88 :
89 $4
90 fi
91 ])
92
93 AC_DEFUN(ACX_CHECK_CXX_FLAGS,
94 [
95 AC_REQUIRE([AC_PROG_CXX])
96 AC_CACHE_CHECK(whether ${CXX} accepts $1, ac_cv_$2,
97 [echo 'void f(){}' > conftest.cpp
98 if test -z "`${CXX} $1 -c conftest.cpp 2>&1`"; then
99 ac_cv_$2=yes
100 else
101 ac_cv_$2=no
102 fi
103 rm -f conftest*
104 ])
105 if test "$ac_cv_$2" = yes; then
106 :
107 $3
108 else
109 :
110 $4
111 fi
112 ])
113
114 AC_DEFUN(ACX_PROG_GCC_VERSION,
115 [
116 AC_REQUIRE([AC_PROG_CC])
117 AC_CACHE_CHECK(whether we are using gcc $1.$2 or later, ac_cv_prog_gcc_$1_$2,
118 [
119 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
120 cat > conftest.c <<EOF
121 #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
122 # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
123 yes;
124 # endif
125 #endif
126 EOF
127 if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
128 ac_cv_prog_gcc_$1_$2=yes
129 else
130 ac_cv_prog_gcc_$1_$2=no
131 fi
132 ])
133 if test "$ac_cv_prog_gcc_$1_$2" = yes; then
134 :
135 $3
136 else
137 :
138 $4
139 fi
140 ])
141
142 AC_DEFUN(ACX_PROG_GXX_VERSION,
143 [
144 AC_REQUIRE([AC_PROG_CXX])
145 AC_CACHE_CHECK(whether we are using g++ $1.$2 or later, ac_cv_prog_gxx_$1_$2,
146 [
147 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
148 cat > conftest.cpp <<EOF
149 #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
150 # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
151 yes;
152 # endif
153 #endif
154 EOF
155 if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
156 ac_cv_prog_gxx_$1_$2=yes
157 else
158 ac_cv_prog_gxx_$1_$2=no
159 fi
160 ])
161 if test "$ac_cv_prog_gxx_$1_$2" = yes; then
162 :
163 $3
164 else
165 :
166 $4
167 fi
168 ])
169
170 AC_DEFUN(ACX_PROG_REALLY_GCC,
171 [
172 AC_REQUIRE([AC_PROG_CC])
173 AC_CACHE_CHECK(whether we are *really* using GNU cc, ac_cv_prog_really_gcc,
174 [
175 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
176 cat > conftest.c <<EOF
177 #ifdef __GNUC__
178 #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
179 no;
180 #else
181 yes;
182 #endif
183 #endif
184 EOF
185 if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
186 ac_cv_prog_really_gcc=yes
187 else
188 ac_cv_prog_really_gcc=no
189 fi
190 ])
191 if test "$ac_cv_prog_really_gcc" = yes; then
192 :
193 $1
194 else
195 :
196 $2
197 fi
198 ])
199
200 AC_DEFUN(ACX_PROG_REALLY_GXX,
201 [
202 AC_REQUIRE([AC_PROG_CXX])
203 AC_CACHE_CHECK(whether we are *really* using GNU c++, ac_cv_prog_really_gxx,
204 [
205 dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
206 cat > conftest.cpp <<EOF
207 #ifdef __GNUC__
208 #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
209 no;
210 #else
211 yes;
212 #endif
213 #endif
214 EOF
215 if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
216 ac_cv_prog_really_gxx=yes
217 else
218 ac_cv_prog_really_gxx=no
219 fi
220 ])
221 if test "$ac_cv_prog_really_gxx" = yes; then
222 :
223 $1
224 else
225 :
226 $2
227 fi
228 ])
229
230
231 AC_DEFUN(ACX_PROG_CC_MAXOPT,
232 [
233 AC_REQUIRE([AC_PROG_CC])
234 AC_REQUIRE([AC_CANONICAL_HOST])
235
236 ACX_PROG_REALLY_GCC
237
238 # Try to determine "good" native compiler flags if none specified on command
239 # line
240 if test "$ac_test_CFLAGS" != "set"; then
241 CFLAGS=""
242 case "${host_cpu}-${host_os}" in
243
244 *linux*) if test "$CC" = icc; then
245 CFLAGS="-O2"
246 fi;;
247 sparc-solaris2*) if test "$CC" = cc; then
248 CFLAGS="-O -dalign"
249 fi;;
250
251 alpha*-osf*) if test "$CC" = cc; then
252 CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host -arch host -std1"
253 fi;;
254
255 hppa*-hpux*) if test "$CC" = cc; then
256 CFLAGS="-Ae +O3 +Oall"
257 fi;;
258
259 rs6000*-aix*) if test "$CC" = cc -o "$CC" = xlc; then
260 CFLAGS="-O3 -qtune=auto -qansialias -w"
261 fi;;
262 powerpc*-aix*)
263 if test "$CC" = cc -o "$CC" = xlc; then
264 CFLAGS="-O3 -qtune=auto -qansialias -w"
265 echo "*******************************************************"
266 echo "* You have AIX on an unknown powerpc system. It is *"
267 echo "* recommended that you use *"
268 echo "* *"
269 echo "* CFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
270 echo "* ^^^ *"
271 echo "* where xxx is 601, 603, 604, or whatever kind of *"
272 echo "* PowerPC CPU you have. For more info, man cc. *"
273 echo "*******************************************************"
274 fi;;
275 *darwin*)
276 if test "$CC" = xlc; then
277 CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
278 fi
279 if test "$CC" = icc; then
280 CFLAGS="-O2"
281 fi
282 if test $ac_cv_prog_really_gcc = yes; then
283 CFLAGS="-Os"
284 fi;;
285 esac
286
287 # use default flags for gcc on all systems
288 if test $ac_cv_prog_really_gcc = yes -a -z "$CFLAGS"; then
289 CFLAGS="-O2"
290 fi
291
292 if test -z "$CFLAGS"; then
293 echo ""
294 echo "********************************************************"
295 echo "* WARNING: Don't know the best CFLAGS for this system *"
296 echo "* Use make CFLAGS=..., or edit the top level Makefile *"
297 echo "* (otherwise, a default of CFLAGS=-O will be used) *"
298 echo "********************************************************"
299 echo ""
300 CFLAGS="-O"
301 fi
302
303 ACX_CHECK_CC_FLAGS(${CFLAGS}, ac_cv_guessed_cflags, , [
304 echo ""
305 echo "********************************************************"
306 echo "* WARNING: The guessed CFLAGS don't seem to work with *"
307 echo "* your compiler. *"
308 echo "* Use make CFLAGS=..., or edit the top level Makefile *"
309 echo "********************************************************"
310 echo ""
311 CFLAGS=""
312 ])
313
314 fi
315 ])
316
317 AC_DEFUN(ACX_PROG_CXX_MAXOPT,
318 [
319 AC_REQUIRE([AC_PROG_CXX])
320 AC_REQUIRE([AC_CANONICAL_HOST])
321
322 ACX_PROG_REALLY_GXX
323
324 # Try to determine "good" native compiler flags if none specified on command
325 # line
326 if test "$ac_test_CXXFLAGS" != "set"; then
327 CXXFLAGS=""
328 case "${host_cpu}-${host_os}" in
329
330 *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
331 CXXFLAGS="-O2"
332 fi;;
333 sparc-solaris2*) if test "$CXX" = CC; then
334 CXXFLAGS="-features=extensions -O -dalign"
335 fi;;
336 rs6000*-aix*) if test "$CXX" = xlC; then
337 CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
338 fi;;
339 powerpc*-aix*)
340 if test "$CXX" = xlC; then
341 CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
342 echo "*******************************************************"
343 echo "* You have AIX on an unknown powerpc system. It is *"
344 echo "* recommended that you use *"
345 echo "* *"
346 echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
347 echo "* ^^^ *"
348 echo "* where xxx is 601, 603, 604, or whatever kind of *"
349 echo "* PowerPC CPU you have. For more info, man cc. *"
350 echo "*******************************************************"
351 fi;;
352 *darwin*)
353 if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
354 CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
355 fi
356 if test "$CXX" = icpc; then
357 CXXFLAGS="-O2"
358 fi
359 if test $ac_cv_prog_really_gxx = yes; then
360 CXXFLAGS="-Os"
361 fi;;
362 esac
363
364 # use default flags for gcc on all systems
365 if test $ac_cv_prog_really_gxx = yes -a -z "$CXXFLAGS"; then
366 CXXFLAGS="-O2"
367 fi
368
369 if test -z "$CXXFLAGS"; then
370 echo ""
371 echo "**********************************************************"
372 echo "* WARNING: Don't know the best CXXFLAGS for this system *"
373 echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
374 echo "* (otherwise, a default of CXXFLAGS=-O will be used) *"
375 echo "**********************************************************"
376 echo ""
377 CXXFLAGS="-O"
378 fi
379
380 ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, ac_cv_guessed_cxxflags, , [
381 echo ""
382 echo "**********************************************************"
383 echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
384 echo "* your compiler. *"
385 echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
386 echo "**********************************************************"
387 echo ""
388 CXXFLAGS=""
389 ])
390
391 fi
392 ])
393
394 AC_DEFUN([ACX_CONFIG_HOME], [
395 myDir=${0%/*}
396 if [ "$myDir" = "$0" ]; then
397 # Ran from local directory
398 myDir=$PWD
399 fi
400 # Resolve symlinks.
401 myProgram="$0"
402 while [ -L "$myProgram" ]; do
403 ls=`/bin/ls -ld "$myProgram"`
404 link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
405 if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
406 myProgram="$link"
407 else
408 myProgram="`AS_DIRNAME([$myProgram])`/$link"
409 fi
410 done
411 myDir=`AS_DIRNAME([$myProgram])`
412 fi
413 CONFIG_HOME=$myDir
414 ])
415
416 AC_DEFUN(BB_ENABLE_DOXYGEN,
417 [
418 AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
419 AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
420 AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
421 AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
422 if test "x$enable_doxygen" = xno; then
423 enable_doc=no
424 else
425 AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
426 if test "x$DOXYGEN" = x; then
427 if test "x$enable_doxygen" = xyes; then
428 AC_MSG_ERROR([could not find doxygen])
429 fi
430 enable_doc=no
431 else
432 enable_doc=yes
433 AC_PATH_PROG(DOT, dot, , $PATH)
434 fi
435 fi
436
437 if test "x$enable_doc" = xyes; then
438 DOC=1
439 else
440 DOC=0
441 fi
442 AC_SUBST(DOC)
443
444 if test x$DOT = x; then
445 if test "x$enable_dot" = xyes; then
446 AC_MSG_ERROR([could not find dot])
447 fi
448 enable_dot=no
449 else
450 enable_dot=yes
451 fi
452 AC_SUBST(enable_dot)
453 AC_SUBST(enable_html_docs)
454 AC_SUBST(enable_latex_docs)
455 ])
456 #
457 #
458 #
459 AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
460
461 AC_PATH_PROG(PERLINTERP,perl,perl)
462 ac_cv_path_perlinterp="$PERLINTERP"
463 _sHpB='#!'
464
465 AC_ARG_WITH(perl-shebang,
466 AC_HELP_STRING([--with-perl-shebang],
467 [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
468 ),
469 [opt_perl_shebang="$withval"]dnl
470 ,dnl
471 [opt_perl_shebang="not_set"]dnl
472 )dnl
473
474 AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
475 ax_cv_opt_perl_shebang,
476 [ case "$opt_perl_shebang" in
477 not_set ) ax_cv_opt_perl_shebang=''
478 ;;
479 * )
480 ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
481 esac
482 ]dnl
483 )dnl
484
485 if test "A$ax_cv_opt_perl_shebang" != "A"
486 then
487 ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
488 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
489 AC_SUBST(PERL_SHEBANG)dnl
490 AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
491
492 # Automatic detection of sharpbang formula starts here
493 else dnl
494
495 _somian_shbangperl=`$PERLINTERP -V:startperl`
496 negclass="[[^']]"; dnl
497 # must leave this comment: m4 will remove the outer brackets for us, heheh
498 AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
499 ac_cv_sys_kernshrpbang_perl,
500 [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
501 if test "x$_somian_kspb_perl" == x
502 then _somian_ksbp_warn_empty='durnit'
503 else
504 case "A$_somian_kspb_perl" in
505 A#!*perl* )
506 ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
507 ;;
508 A* ) _somian_ksbp_warn_defau='trouble'
509 ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
510 esac
511 fi
512 ])dnl Done with testing sharpbang
513
514 # The above prints Checking ... result message to user.
515 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
516 AC_SUBST(PERL_SHEBANG)
517 if test A${_somian_ksbp_warn_empty+set} == Aset
518 then AC_MSG_WARN([dnl
519 In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
520 fi
521 # Inform user after printing result value
522 if test A${_somian_ksbp_warn_defau+set} == Aset
523 then AC_MSG_NOTICE([Maybe Not good -])
524 AC_MSG_WARN([dnl
525 In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
526 else AC_MSG_NOTICE([OK Good result - ])
527 AC_MSG_NOTICE([dnl
528 In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
529 dnl Done with user info messages
530 fi
531 dnl Outer loop checked for user override term here
532 fi dnl
533
534 ])dnl EOMACRO DEF
535
536 AC_DEFUN([ACX_CHECK_ZLIB],
537 #
538 # Handle user hints
539 #
540 [AC_ARG_WITH(zlib,
541 AC_HELP_STRING([--with-zlib=DIR],
542 [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
543 ),
544 [zlib_dir="$withval"]dnl
545 ,dnl
546 [zlib_dir="not_set"]dnl
547 )dnl
548
549 if test "$zlib_dir" != "no"; then
550
551 if test "$zlib_dir" != "not_set" ; then
552 if test -d "$zlib_dir"
553 then
554 ZLIB_HOME="$zlib_dir"
555 else
556 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
557 ZLIB_HOME=/usr/local
558 if test ! -f "${ZLIB_HOME}/include/zlib.h"
559 then
560 ZLIB_HOME=/usr
561 fi
562 fi
563 fi
564 #
565 # Locate zlib, if wanted
566 #
567 if test -n "${ZLIB_HOME}"
568 then
569 ZLIB_OLD_LDFLAGS=$LDFLAGS
570 ZLIB_OLD_CFLAGS=$CFLAGS
571 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
572 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
573 AC_LANG_SAVE
574 AC_LANG_C
575 AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
576 AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
577 AC_LANG_RESTORE
578
579 if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
580 AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
581 AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
582 ZLIB_INC_DIR="${ZLIB_HOME}/include"
583 ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
584 ZLIB="-lz"
585 else
586 AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
587 ZLIB_INC_DIR=
588 ZLIB_LIB_DIR=
589 ZLIB=
590 LDFLAGS="$ZLIB_OLD_LDFLAGS"
591 CFLAGS="$ZLIB_OLD_CFLAGS"
592 AC_MSG_RESULT(failed)
593 echo ""
594 echo "*********************************************************"
595 echo "* WARNING: Could not find a working zlib installation *"
596 echo "* If you need OpenMD to be able to deal with compressed *"
597 echo "* trajectory dump files be sure to specify a valid zlib *"
598 echo "* installation with --with-zlib=DIR *"
599 echo "* *"
600 echo "* OpenMD will still work without zlib installed. *"
601 echo "*********************************************************"
602 echo ""
603 fi
604 AC_SUBST(ZLIB_INC_DIR)
605 AC_SUBST(ZLIB_LIB_DIR)
606 AC_SUBST(ZLIB)
607 fi
608 fi
609 ])
610
611 AC_DEFUN([ACX_CHECK_QHULL],
612 #
613 # Handle user hints
614 #
615 [AC_ARG_WITH(qhull,
616 AC_HELP_STRING([--with-qhull=DIR],
617 [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
618 ),
619 [qhull_dir="$withval"],
620 [qhull_dir="not_set"]dnl
621 )dnl
622
623 QHULL_INC_DIR=
624 QHULL_LIB_DIR=
625 QHULL=
626 USE_QHULL=no
627
628 if test "$qhull_dir" != "no"; then
629 if test "$qhull_dir" != "not_set" ; then
630 if test -d "$qhull_dir"; then
631 QHULL_HOME="$qhull_dir"
632 else
633 AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
634 QHULL_HOME=/usr/local
635 if test ! -f "${QHULL_HOME}/include/qhull/libqhull.h"; then
636 QHULL_HOME=/usr
637 fi
638 fi
639 fi
640 #
641 # Locate qhull, if wanted
642 #
643 if test -n "${QHULL_HOME}"; then
644 AC_MSG_NOTICE([Checking for qhull in ${QHULL_HOME}])
645 AC_LANG_SAVE
646 AC_LANG_C
647 QHULL_OLD_LDFLAGS=$LDFLAGS
648 QHULL_OLD_CFLAGS=$CFLAGS
649 QHULL_OLD_CPPFLAGS=$CPPFLAGS
650 LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
651 CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
652 CPPFLAGS="$CPPFLAGS -I${QHULL_HOME}/include"
653 AC_CHECK_HEADER(qhull/libqhull.h, [qhull_cv_libqhull_h=yes], [qhull_cv_libqhull_h=no])
654 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
655 AC_CHECK_LIB(qhull6, qh_qhull, [qhull_cv_libqhull6=yes], [qhull_cv_libqhull6=no])
656 LDFLAGS="$QHULL_OLD_LDFLAGS"
657 CFLAGS="$QHULL_OLD_CFLAGS"
658 CPPFLAGS="$QHULL_OLD_CPPFLAGS"
659 AC_LANG_RESTORE
660
661 if test "$qhull_cv_libqhull_h" = "yes" -a "$qhull_cv_libqhull" = "yes" -o "$qhull_cv_libqhull6" = "yes"; then
662 AC_DEFINE(HAVE_LIBQHULL_H, 1, [have libqhull.h])
663 if test "$qhull_cv_libqhull" = "yes"; then
664 AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
665 QHULL="-lqhull"
666 fi
667 if test "$qhull_cv_libqhull6" = "yes"; then
668 AC_DEFINE(HAVE_QHULL, 1, [have libqhull6.a])
669 QHULL="-lqhull6"
670 fi
671 USE_QHULL=yes
672 QHULL_INC_DIR="${QHULL_HOME}/include"
673 QHULL_LIB_DIR="${QHULL_HOME}/lib"
674 AC_MSG_RESULT([Working qhull found, will proceed.])
675 else
676 AC_MSG_WARN([])
677 AC_MSG_WARN([Could not find a working qhull installation])
678 AC_MSG_WARN([If you need OpenMD to be able to deal with convex ])
679 AC_MSG_WARN([hulls be sure to specify a valid qhull installation ])
680 AC_MSG_WARN([with --with-qhull=DIR ])
681 AC_MSG_WARN([])
682 AC_MSG_WARN([OpenMD will still work without qhull installed. ])
683 AC_MSG_WARN([])
684 fi
685 fi
686 fi
687 AC_SUBST(QHULL_INC_DIR)
688 AC_SUBST(QHULL_LIB_DIR)
689 AC_SUBST(QHULL)
690 AC_SUBST(USE_QHULL)
691 ])
692
693 AC_DEFUN([ACX_CHECK_OPENBABEL],
694 #
695 # Handle user hints
696 #
697 [AC_ARG_WITH(openbabel,
698 AC_HELP_STRING([--with-openbabel=DIR],
699 [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
700 ),
701 [openbabel_dir="$withval"]dnl
702 ,dnl
703 [openbabel_dir="not_set"]dnl
704 )dnl
705
706 if test "$openbabel_dir" != "no"; then
707
708 if test "$openbabel_dir" != "not_set" ; then
709 if test -d "$openbabel_dir"
710 then
711 OPENBABEL_HOME="$openbabel_dir"
712 else
713 AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
714 OPENBABEL_HOME=/usr/local
715 if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
716 then
717 OPENBABEL_HOME=/usr
718 fi
719 fi
720 fi
721 #
722 # Locate openbabel, if wanted
723 #
724 if test -n "${OPENBABEL_HOME}"
725 then
726 AC_LANG_SAVE
727 AC_LANG_CPLUSPLUS
728 OPENBABEL_OLD_LDFLAGS=$LDFLAGS
729 OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
730 LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
731 CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
732 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
733 AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
734 AC_LINK_IFELSE([
735 AC_LANG_PROGRAM(
736 [[
737 @%:@include <openbabel/babelconfig.h>
738 @%:@include <openbabel/obconversion.h>
739 using namespace std;
740 using namespace OpenBabel;
741 ]],
742 [[
743 OBConversion Conv(&cin, &cout);
744 ]]
745 )],
746 [
747 openbabel_lib_found="yes"
748 AC_MSG_RESULT([found])
749 ],
750 [
751 openbabel_lib_found="no"
752 AC_MSG_RESULT([not found])
753 ]
754 )
755 AC_LANG_RESTORE
756 LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
757 CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
758
759 if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
760 USE_OPENBABEL=yes
761 OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
762 OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
763 OPENBABEL_LIB="-lopenbabel"
764 else
765 AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
766 OPENBABEL_INC_DIR=
767 OPENBABEL_LIB_DIR=
768 OPENBABEL_LIB=
769 USE_OPENBABEL=no
770 AC_MSG_RESULT(failed)
771 echo ""
772 echo "*********************************************************"
773 echo "* WARNING: Could not find a working openbabel-2.x *"
774 echo "* installation If you need OpenMD to be able to convert *"
775 echo "* xyz or pdb files you need to specify a valid *"
776 echo "* openbabel-2.x installation with --with-openbabel=DIR *"
777 echo "* *"
778 echo "* OpenMD will still work without openbabel installed. *"
779 echo "*********************************************************"
780 echo ""
781 fi
782 AC_SUBST(OPENBABEL_INC_DIR)
783 AC_SUBST(OPENBABEL_LIB_DIR)
784 AC_SUBST(OPENBABEL_LIB)
785 AC_SUBST(USE_OPENBABEL)
786 fi
787 fi
788 ])
789
790
791 AC_DEFUN([ACX_CHECK_FFTW],
792 #
793 # Handle user hints
794 #
795 [AC_ARG_WITH(fftw,
796 AC_HELP_STRING([--with-fftw=DIR],
797 [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
798 ),
799 [fftw_dir="$withval"]dnl
800 ,dnl
801 [fftw_dir="not_set"]dnl
802 )dnl
803
804 if test "$fftw_dir" != "no"; then
805 if test "$fftw_dir" != "not_set" ; then
806 if test -d "$fftw_dir"; then
807 FFTW_HOME="$fftw_dir"
808 else
809 AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
810 FFTW_HOME=/usr/local
811 if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
812 FFTW_HOME=/usr
813 fi
814 fi
815 #
816 # Locate fftw, if wanted
817 #
818 if test -n "${FFTW_HOME}"; then
819 FFTW_OLD_LDFLAGS=$LDFLAGS
820 FFTW_OLD_CFLAGS=$CFLAGS
821 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
822 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
823 AC_LANG_SAVE
824 AC_LANG_C
825 AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
826 AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
827 if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
828 AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
829 AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
830 if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
831 AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
832 AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
833 fi
834 fi
835 AC_LANG_RESTORE
836 if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
837 AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
838 FFTW_INC_DIR="${FFTW_HOME}/include"
839 FFTW_LIB_DIR="${FFTW_HOME}/lib"
840 FFTW_LIBS="-lfftw3"
841 else
842 if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
843 AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
844 FFTW_INC_DIR="${FFTW_HOME}/include"
845 FFTW_LIB_DIR="${FFTW_HOME}/lib"
846 FFTW_LIBS="-lfftw"
847 else
848 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
849 AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
850 FFTW_INC_DIR="${FFTW_HOME}/include"
851 FFTW_LIB_DIR="${FFTW_HOME}/lib"
852 FFTW_LIBS="-ldfftw"
853 else
854 AC_MSG_CHECKING(fftw in ${FFTW_HOME})
855 FFTW_INC_DIR=
856 FFTW_LIB_DIR=
857 FFTW_LIBS=
858 LDFLAGS="$FFTW_OLD_LDFLAGS"
859 CFLAGS="$FFTW_OLD_CFLAGS"
860 AC_MSG_RESULT(failed)
861 echo ""
862 echo "*********************************************************"
863 echo "* WARNING: Could not find a working FFTW installation *"
864 echo "* If you need the staticProps program to be able to *"
865 echo "* compute undulation spectra, be sure to specify a *"
866 echo "* valid fftw installation with --with-fftw=DIR *"
867 echo "* *"
868 echo "* OpenMD will still work without fftw installed. *"
869 echo "*********************************************************"
870 echo ""
871 fi
872 fi
873 fi
874 AC_SUBST(FFTW_INC_DIR)
875 AC_SUBST(FFTW_LIB_DIR)
876 AC_SUBST(FFTW_LIBS)
877 fi
878 fi
879 fi
880 ])
881
882
883 dnl
884 dnl These functions were taken from the GRASS GIS toolkit:
885 dnl
886 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
887 dnl
888
889 AC_DEFUN(LOC_CHECK_USE,[
890 AC_MSG_CHECKING(whether to use $2)
891 AC_MSG_RESULT("$with_$1")
892 case "$with_$1" in
893 "no") $3= ;;
894 "yes") $3="1" ;;
895 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
896 esac
897
898 ])
899
900 AC_DEFUN(LOC_CHECK_INC_PATH,[
901 AC_MSG_CHECKING(for location of $2 includes)
902 case "$with_$1_includes" in
903 y | ye | yes | n | no)
904 AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
905 ;;
906 esac
907 AC_MSG_RESULT($with_$1_includes)
908
909 if test -n "$with_$1_includes" ; then
910 for dir in $with_$1_includes; do
911 if test -d "$dir"; then
912 $3="$$3 -I$dir"
913 else
914 AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
915 fi
916 done
917 fi
918 ])
919
920 AC_DEFUN(LOC_CHECK_LIB_PATH,[
921 AC_MSG_CHECKING(for location of $2 library)
922 case "$with_$1_libs" in
923 y | ye | yes | n | no)
924 AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
925 ;;
926 esac
927 AC_MSG_RESULT($with_$1_libs)
928
929 if test -n "$with_$1_libs"; then
930 for dir in $with_$1_libs; do
931 if test -d "$dir"; then
932 $3="$$3 -L$dir"
933 else
934 AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
935 fi
936 done
937 fi
938 ])
939
940 AC_DEFUN(LOC_CHECK_SHARE_PATH,[
941 AC_MSG_CHECKING(for location of $2 data files)
942 case "$with_$1_share" in
943 y | ye | yes | n | no)
944 AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
945 ;;
946 esac
947 AC_MSG_RESULT($with_$1_share)
948
949 if test -n "$with_$1_share" ; then
950 if test -d "$with_$1_share"; then
951 $3="$with_$1_share"
952 else
953 AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
954 fi
955 fi
956 ])
957
958 AC_DEFUN(LOC_CHECK_INCLUDES,[
959 ac_save_cppflags="$CPPFLAGS"
960 CPPFLAGS="$3 $CPPFLAGS"
961 AC_CHECK_HEADERS($1, [], ifelse($4,[],[
962 AC_MSG_ERROR([*** Unable to locate $2 includes.])
963 ], $4))
964 CPPFLAGS=$ac_save_cppflags
965 ])
966
967 dnl autoconf undefines "shift", so use "builtin([shift], ...)"
968
969 define(LOC_SHIFT1,[builtin([shift],$*)])
970 define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
971 define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
972 define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
973 define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
974
975 dnl $1 = library
976 dnl $2 = function
977 dnl $3 = descriptive name
978 dnl $4 = LDFLAGS initialiser
979 dnl $5 = result variable
980 dnl $6 = mandatory dependencies (not added to $5)
981 dnl $7 = mandatory dependencies (added to $5)
982 dnl $8 = ACTION-IF-NOT-FOUND
983 dnl $9+ = optional dependencies
984
985 define(LOC_CHECK_LIBS_0,[
986 AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
987 [$8]
988 ],$6 $7)
989 ])
990
991 define(LOC_CHECK_LIBS_1,[
992 ifelse($9,[],
993 LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
994 [
995 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
996 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
997 LOC_SHIFT9($*))
998 ]
999 )
1000 ])
1001
1002 define(LOC_CHECK_LIBS,[
1003 ac_save_ldflags="$LDFLAGS"
1004 LDFLAGS="$4 $LDFLAGS"
1005 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1006 LDFLAGS=${ac_save_ldflags}
1007 ifelse($8,[],[
1008 AC_MSG_ERROR([*** Unable to locate $3 library.])
1009 ],$8),LOC_SHIFT8($*))
1010 LDFLAGS=${ac_save_ldflags}
1011 ])
1012
1013 AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1014 AC_MSG_CHECKING($3 version)
1015 ac_save_cppflags="$CPPFLAGS"
1016 CPPFLAGS="$5 $CPPFLAGS"
1017 AC_TRY_RUN([
1018 #include <stdio.h>
1019 #include <$1>
1020 int main(void) {
1021 FILE *fp = fopen("conftestdata","w");
1022 fputs($2, fp);
1023 return 0;
1024 }
1025 ],
1026 [ $4=`cat conftestdata`
1027 AC_MSG_RESULT($$4)],
1028 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1029 [ $4=$6
1030 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1031 CPPFLAGS=$ac_save_cppflags
1032 ])
1033
1034 AC_DEFUN(LOC_CHECK_SHARE,[
1035 AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1036 AC_MSG_ERROR([*** Unable to locate $2 data files.])
1037 ], $4))
1038 ])
1039
1040 AC_DEFUN(LOC_CHECK_VERSION_INT,[
1041 AC_MSG_CHECKING($3 version)
1042 ac_save_cppflags="$CPPFLAGS"
1043 CPPFLAGS="$5 $CPPFLAGS"
1044 AC_TRY_RUN([
1045 #include <stdio.h>
1046 #include <$1>
1047 int main(void) {
1048 FILE *fp = fopen("conftestdata","w");
1049 fprintf(fp, "%d", $2);
1050 return 0;
1051 }
1052 ],
1053 [ $4=`cat conftestdata`
1054 AC_MSG_RESULT($$4)],
1055 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1056 [ $4=$6
1057 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1058 CPPFLAGS=$ac_save_cppflags
1059 ])
1060
1061 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1062
1063 AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1064 ],substr([ ],len($1)))])
1065
1066 AC_DEFUN(LOC_ARG_WITH,[
1067 AC_ARG_WITH($1,
1068 LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1069 [with_$1=]ifelse([$3],,yes,[$3]))
1070 ])
1071
1072 AC_DEFUN(LOC_ARG_WITH_INC,[
1073 AC_ARG_WITH($1-includes,
1074 LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1075 ])
1076
1077 AC_DEFUN(LOC_ARG_WITH_LIB,[
1078 AC_ARG_WITH($1-libs,
1079 LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1080 ])
1081
1082 AC_DEFUN(LOC_ARG_WITH_SHARE,[
1083 AC_ARG_WITH($1-share,
1084 LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1085 ])
1086
1087 AC_DEFUN(LOC_OPTIONAL,[
1088 AC_MSG_CHECKING(whether to build $1)
1089 if test -n "$USE_$2" ; then
1090 AC_MSG_RESULT(yes)
1091 BUILD_$3="$4"
1092 else
1093 AC_MSG_RESULT(no)
1094 BUILD_$3=
1095 fi
1096 AC_SUBST(BUILD_$3)
1097 ])
1098
1099 AC_DEFUN(LOC_MSG,[
1100 echo "$1"
1101 ])
1102
1103 AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1104
1105 AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1106
1107 AC_DEFUN(LOC_MSG_USE,[
1108 [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])