ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/OpenMD.m4
Revision: 1618
Committed: Mon Sep 12 17:09:26 2011 UTC (13 years, 8 months ago) by gezelter
File size: 33441 byte(s)
Log Message:
Build fixes for qhull 2011, fixes for compilation with PGI.


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([adl_FUNC_GETOPT_LONG],
395 [AC_PREREQ(2.49)dnl
396 # clean out junk possibly left behind by a previous configuration
397 rm -f src/getopt.h
398 # Check for getopt_long support
399 AC_CHECK_HEADERS([getopt.h])
400 AC_CHECK_FUNCS([getopt_long],,
401 [# FreeBSD has a gnugetopt library for this
402 AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
403 [# use the GNU replacement
404 AC_LIBOBJ(getopt)
405 AC_LIBOBJ(getopt1)
406 AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
407
408
409 AC_DEFUN([ACX_CONFIG_HOME], [
410 myDir=${0%/*}
411 if [ "$myDir" = "$0" ]; then
412 # Ran from local directory
413 myDir=$PWD
414 fi
415 # Resolve symlinks.
416 myProgram="$0"
417 while [ -L "$myProgram" ]; do
418 ls=`/bin/ls -ld "$myProgram"`
419 link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
420 if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
421 myProgram="$link"
422 else
423 myProgram="`AS_DIRNAME([$myProgram])`/$link"
424 fi
425 done
426 myDir=`AS_DIRNAME([$myProgram])`
427 fi
428 CONFIG_HOME=$myDir
429 ])
430
431 AC_DEFUN(BB_ENABLE_DOXYGEN,
432 [
433 AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
434 AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
435 AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
436 AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
437 if test "x$enable_doxygen" = xno; then
438 enable_doc=no
439 else
440 AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
441 if test "x$DOXYGEN" = x; then
442 if test "x$enable_doxygen" = xyes; then
443 AC_MSG_ERROR([could not find doxygen])
444 fi
445 enable_doc=no
446 else
447 enable_doc=yes
448 AC_PATH_PROG(DOT, dot, , $PATH)
449 fi
450 fi
451
452 if test "x$enable_doc" = xyes; then
453 DOC=1
454 else
455 DOC=0
456 fi
457 AC_SUBST(DOC)
458
459 if test x$DOT = x; then
460 if test "x$enable_dot" = xyes; then
461 AC_MSG_ERROR([could not find dot])
462 fi
463 enable_dot=no
464 else
465 enable_dot=yes
466 fi
467 AC_SUBST(enable_dot)
468 AC_SUBST(enable_html_docs)
469 AC_SUBST(enable_latex_docs)
470 ])
471 #
472 #
473 #
474 AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
475
476 AC_PATH_PROG(PERLINTERP,perl,perl)
477 ac_cv_path_perlinterp="$PERLINTERP"
478 _sHpB='#!'
479
480 AC_ARG_WITH(perl-shebang,
481 AC_HELP_STRING([--with-perl-shebang],
482 [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
483 ),
484 [opt_perl_shebang="$withval"]dnl
485 ,dnl
486 [opt_perl_shebang="not_set"]dnl
487 )dnl
488
489 AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
490 ax_cv_opt_perl_shebang,
491 [ case "$opt_perl_shebang" in
492 not_set ) ax_cv_opt_perl_shebang=''
493 ;;
494 * )
495 ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
496 esac
497 ]dnl
498 )dnl
499
500 if test "A$ax_cv_opt_perl_shebang" != "A"
501 then
502 ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
503 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
504 AC_SUBST(PERL_SHEBANG)dnl
505 AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
506
507 # Automatic detection of sharpbang formula starts here
508 else dnl
509
510 _somian_shbangperl=`$PERLINTERP -V:startperl`
511 negclass="[[^']]"; dnl
512 # must leave this comment: m4 will remove the outer brackets for us, heheh
513 AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
514 ac_cv_sys_kernshrpbang_perl,
515 [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
516 if test "x$_somian_kspb_perl" == x
517 then _somian_ksbp_warn_empty='durnit'
518 else
519 case "A$_somian_kspb_perl" in
520 A#!*perl* )
521 ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
522 ;;
523 A* ) _somian_ksbp_warn_defau='trouble'
524 ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
525 esac
526 fi
527 ])dnl Done with testing sharpbang
528
529 # The above prints Checking ... result message to user.
530 PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
531 AC_SUBST(PERL_SHEBANG)
532 if test A${_somian_ksbp_warn_empty+set} == Aset
533 then AC_MSG_WARN([dnl
534 In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
535 fi
536 # Inform user after printing result value
537 if test A${_somian_ksbp_warn_defau+set} == Aset
538 then AC_MSG_NOTICE([Maybe Not good -])
539 AC_MSG_WARN([dnl
540 In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
541 else AC_MSG_NOTICE([OK Good result - ])
542 AC_MSG_NOTICE([dnl
543 In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
544 dnl Done with user info messages
545 fi
546 dnl Outer loop checked for user override term here
547 fi dnl
548
549 ])dnl EOMACRO DEF
550
551 AC_DEFUN([ACX_CHECK_ZLIB],
552 #
553 # Handle user hints
554 #
555 [AC_ARG_WITH(zlib,
556 AC_HELP_STRING([--with-zlib=DIR],
557 [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
558 ),
559 [zlib_dir="$withval"]dnl
560 ,dnl
561 [zlib_dir="not_set"]dnl
562 )dnl
563
564 if test "$zlib_dir" != "no"; then
565
566 if test "$zlib_dir" != "not_set" ; then
567 if test -d "$zlib_dir"
568 then
569 ZLIB_HOME="$zlib_dir"
570 else
571 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
572 ZLIB_HOME=/usr/local
573 if test ! -f "${ZLIB_HOME}/include/zlib.h"
574 then
575 ZLIB_HOME=/usr
576 fi
577 fi
578 fi
579 #
580 # Locate zlib, if wanted
581 #
582 if test -n "${ZLIB_HOME}"
583 then
584 ZLIB_OLD_LDFLAGS=$LDFLAGS
585 ZLIB_OLD_CFLAGS=$CFLAGS
586 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
587 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
588 AC_LANG_SAVE
589 AC_LANG_C
590 AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
591 AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
592 AC_LANG_RESTORE
593
594 if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
595 AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
596 AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
597 ZLIB_INC_DIR="${ZLIB_HOME}/include"
598 ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
599 ZLIB="-lz"
600 else
601 AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
602 ZLIB_INC_DIR=
603 ZLIB_LIB_DIR=
604 ZLIB=
605 LDFLAGS="$ZLIB_OLD_LDFLAGS"
606 CFLAGS="$ZLIB_OLD_CFLAGS"
607 AC_MSG_RESULT(failed)
608 echo ""
609 echo "*********************************************************"
610 echo "* WARNING: Could not find a working zlib installation *"
611 echo "* If you need OpenMD to be able to deal with compressed *"
612 echo "* trajectory dump files be sure to specify a valid zlib *"
613 echo "* installation with --with-zlib=DIR *"
614 echo "* *"
615 echo "* OpenMD will still work without zlib installed. *"
616 echo "*********************************************************"
617 echo ""
618 fi
619 AC_SUBST(ZLIB_INC_DIR)
620 AC_SUBST(ZLIB_LIB_DIR)
621 AC_SUBST(ZLIB)
622 fi
623 fi
624 ])
625
626 AC_DEFUN([ACX_CHECK_QHULL],
627 #
628 # Handle user hints
629 #
630 [AC_ARG_WITH(qhull,
631 AC_HELP_STRING([--with-qhull=DIR],
632 [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
633 ),
634 [qhull_dir="$withval"],
635 [qhull_dir="not_set"]dnl
636 )dnl
637
638 QHULL_INC_DIR=
639 QHULL_LIB_DIR=
640 QHULL=
641 USE_QHULL=no
642
643 if test "$qhull_dir" != "no"; then
644 if test "$qhull_dir" != "not_set" ; then
645 if test -d "$qhull_dir"; then
646 QHULL_HOME="$qhull_dir"
647 else
648 AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
649 QHULL_HOME=/usr/local
650 if test ! -f "${QHULL_HOME}/include/qhull/libqhull.h"; then
651 QHULL_HOME=/usr
652 fi
653 fi
654 fi
655 #
656 # Locate qhull, if wanted
657 #
658 if test -n "${QHULL_HOME}"; then
659 AC_MSG_NOTICE([Checking for qhull in ${QHULL_HOME}])
660 AC_LANG_SAVE
661 AC_LANG_C
662 QHULL_OLD_LDFLAGS=$LDFLAGS
663 QHULL_OLD_CFLAGS=$CFLAGS
664 QHULL_OLD_CPPFLAGS=$CPPFLAGS
665 LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
666 CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
667 CPPFLAGS="$CPPFLAGS -I${QHULL_HOME}/include"
668 AC_CHECK_HEADER(qhull/libqhull.h, [qhull_cv_libqhull_h=yes], [qhull_cv_libqhull_h=no])
669 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
670 AC_CHECK_LIB(qhull6, qh_qhull, [qhull_cv_libqhull6=yes], [qhull_cv_libqhull6=no])
671 LDFLAGS="$QHULL_OLD_LDFLAGS"
672 CFLAGS="$QHULL_OLD_CFLAGS"
673 CPPFLAGS="$QHULL_OLD_CPPFLAGS"
674 AC_LANG_RESTORE
675
676 if test "$qhull_cv_libqhull_h" = "yes" -a "$qhull_cv_libqhull" = "yes" -o "$qhull_cv_libqhull6" = "yes"; then
677 AC_DEFINE(HAVE_LIBQHULL_H, 1, [have libqhull.h])
678 if test "$qhull_cv_libqhull" = "yes"; then
679 AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
680 QHULL="-lqhull"
681 fi
682 if test "$qhull_cv_libqhull6" = "yes"; then
683 AC_DEFINE(HAVE_QHULL, 1, [have libqhull6.a])
684 QHULL="-lqhull6"
685 fi
686 USE_QHULL=yes
687 QHULL_INC_DIR="${QHULL_HOME}/include"
688 QHULL_LIB_DIR="${QHULL_HOME}/lib"
689 AC_MSG_RESULT([Working qhull found, will proceed.])
690 else
691 AC_MSG_WARN([])
692 AC_MSG_WARN([Could not find a working qhull installation])
693 AC_MSG_WARN([If you need OpenMD to be able to deal with convex ])
694 AC_MSG_WARN([hulls be sure to specify a valid qhull installation ])
695 AC_MSG_WARN([with --with-qhull=DIR ])
696 AC_MSG_WARN([])
697 AC_MSG_WARN([OpenMD will still work without qhull installed. ])
698 AC_MSG_WARN([])
699 fi
700 fi
701 fi
702 AC_SUBST(QHULL_INC_DIR)
703 AC_SUBST(QHULL_LIB_DIR)
704 AC_SUBST(QHULL)
705 AC_SUBST(USE_QHULL)
706 ])
707
708 AC_DEFUN([ACX_CHECK_OPENBABEL],
709 #
710 # Handle user hints
711 #
712 [AC_ARG_WITH(openbabel,
713 AC_HELP_STRING([--with-openbabel=DIR],
714 [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
715 ),
716 [openbabel_dir="$withval"]dnl
717 ,dnl
718 [openbabel_dir="not_set"]dnl
719 )dnl
720
721 if test "$openbabel_dir" != "no"; then
722
723 if test "$openbabel_dir" != "not_set" ; then
724 if test -d "$openbabel_dir"
725 then
726 OPENBABEL_HOME="$openbabel_dir"
727 else
728 AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
729 OPENBABEL_HOME=/usr/local
730 if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
731 then
732 OPENBABEL_HOME=/usr
733 fi
734 fi
735 fi
736 #
737 # Locate openbabel, if wanted
738 #
739 if test -n "${OPENBABEL_HOME}"
740 then
741 AC_LANG_SAVE
742 AC_LANG_CPLUSPLUS
743 OPENBABEL_OLD_LDFLAGS=$LDFLAGS
744 OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
745 LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
746 CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
747 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
748 AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
749 AC_LINK_IFELSE([
750 AC_LANG_PROGRAM(
751 [[
752 @%:@include <openbabel/babelconfig.h>
753 @%:@include <openbabel/obconversion.h>
754 using namespace std;
755 using namespace OpenBabel;
756 ]],
757 [[
758 OBConversion Conv(&cin, &cout);
759 ]]
760 )],
761 [
762 openbabel_lib_found="yes"
763 AC_MSG_RESULT([found])
764 ],
765 [
766 openbabel_lib_found="no"
767 AC_MSG_RESULT([not found])
768 ]
769 )
770 AC_LANG_RESTORE
771 LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
772 CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
773
774 if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
775 USE_OPENBABEL=yes
776 OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
777 OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
778 OPENBABEL_LIB="-lopenbabel"
779 else
780 AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
781 OPENBABEL_INC_DIR=
782 OPENBABEL_LIB_DIR=
783 OPENBABEL_LIB=
784 USE_OPENBABEL=no
785 AC_MSG_RESULT(failed)
786 echo ""
787 echo "*********************************************************"
788 echo "* WARNING: Could not find a working openbabel-2.x *"
789 echo "* installation If you need OpenMD to be able to convert *"
790 echo "* xyz or pdb files you need to specify a valid *"
791 echo "* openbabel-2.x installation with --with-openbabel=DIR *"
792 echo "* *"
793 echo "* OpenMD will still work without openbabel installed. *"
794 echo "*********************************************************"
795 echo ""
796 fi
797 AC_SUBST(OPENBABEL_INC_DIR)
798 AC_SUBST(OPENBABEL_LIB_DIR)
799 AC_SUBST(OPENBABEL_LIB)
800 AC_SUBST(USE_OPENBABEL)
801 fi
802 fi
803 ])
804
805
806 AC_DEFUN([ACX_CHECK_FFTW],
807 #
808 # Handle user hints
809 #
810 [AC_ARG_WITH(fftw,
811 AC_HELP_STRING([--with-fftw=DIR],
812 [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
813 ),
814 [fftw_dir="$withval"]dnl
815 ,dnl
816 [fftw_dir="not_set"]dnl
817 )dnl
818
819 if test "$fftw_dir" != "no"; then
820 if test "$fftw_dir" != "not_set" ; then
821 if test -d "$fftw_dir"; then
822 FFTW_HOME="$fftw_dir"
823 else
824 AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
825 FFTW_HOME=/usr/local
826 if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
827 FFTW_HOME=/usr
828 fi
829 fi
830 #
831 # Locate fftw, if wanted
832 #
833 if test -n "${FFTW_HOME}"; then
834 FFTW_OLD_LDFLAGS=$LDFLAGS
835 FFTW_OLD_CFLAGS=$CFLAGS
836 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
837 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
838 AC_LANG_SAVE
839 AC_LANG_C
840 AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
841 AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
842 if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
843 AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
844 AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
845 if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
846 AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
847 AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
848 fi
849 fi
850 AC_LANG_RESTORE
851 if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
852 AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
853 FFTW_INC_DIR="${FFTW_HOME}/include"
854 FFTW_LIB_DIR="${FFTW_HOME}/lib"
855 FFTW_LIBS="-lfftw3"
856 else
857 if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
858 AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
859 FFTW_INC_DIR="${FFTW_HOME}/include"
860 FFTW_LIB_DIR="${FFTW_HOME}/lib"
861 FFTW_LIBS="-lfftw"
862 else
863 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
864 AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
865 FFTW_INC_DIR="${FFTW_HOME}/include"
866 FFTW_LIB_DIR="${FFTW_HOME}/lib"
867 FFTW_LIBS="-ldfftw"
868 else
869 AC_MSG_CHECKING(fftw in ${FFTW_HOME})
870 FFTW_INC_DIR=
871 FFTW_LIB_DIR=
872 FFTW_LIBS=
873 LDFLAGS="$FFTW_OLD_LDFLAGS"
874 CFLAGS="$FFTW_OLD_CFLAGS"
875 AC_MSG_RESULT(failed)
876 echo ""
877 echo "*********************************************************"
878 echo "* WARNING: Could not find a working FFTW installation *"
879 echo "* If you need the staticProps program to be able to *"
880 echo "* compute undulation spectra, be sure to specify a *"
881 echo "* valid fftw installation with --with-fftw=DIR *"
882 echo "* *"
883 echo "* OpenMD will still work without fftw installed. *"
884 echo "*********************************************************"
885 echo ""
886 fi
887 fi
888 fi
889 AC_SUBST(FFTW_INC_DIR)
890 AC_SUBST(FFTW_LIB_DIR)
891 AC_SUBST(FFTW_LIBS)
892 fi
893 fi
894 fi
895 ])
896
897
898 dnl
899 dnl These functions were taken from the GRASS GIS toolkit:
900 dnl
901 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
902 dnl
903
904 AC_DEFUN(LOC_CHECK_USE,[
905 AC_MSG_CHECKING(whether to use $2)
906 AC_MSG_RESULT("$with_$1")
907 case "$with_$1" in
908 "no") $3= ;;
909 "yes") $3="1" ;;
910 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
911 esac
912
913 ])
914
915 AC_DEFUN(LOC_CHECK_INC_PATH,[
916 AC_MSG_CHECKING(for location of $2 includes)
917 case "$with_$1_includes" in
918 y | ye | yes | n | no)
919 AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
920 ;;
921 esac
922 AC_MSG_RESULT($with_$1_includes)
923
924 if test -n "$with_$1_includes" ; then
925 for dir in $with_$1_includes; do
926 if test -d "$dir"; then
927 $3="$$3 -I$dir"
928 else
929 AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
930 fi
931 done
932 fi
933 ])
934
935 AC_DEFUN(LOC_CHECK_LIB_PATH,[
936 AC_MSG_CHECKING(for location of $2 library)
937 case "$with_$1_libs" in
938 y | ye | yes | n | no)
939 AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
940 ;;
941 esac
942 AC_MSG_RESULT($with_$1_libs)
943
944 if test -n "$with_$1_libs"; then
945 for dir in $with_$1_libs; do
946 if test -d "$dir"; then
947 $3="$$3 -L$dir"
948 else
949 AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
950 fi
951 done
952 fi
953 ])
954
955 AC_DEFUN(LOC_CHECK_SHARE_PATH,[
956 AC_MSG_CHECKING(for location of $2 data files)
957 case "$with_$1_share" in
958 y | ye | yes | n | no)
959 AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
960 ;;
961 esac
962 AC_MSG_RESULT($with_$1_share)
963
964 if test -n "$with_$1_share" ; then
965 if test -d "$with_$1_share"; then
966 $3="$with_$1_share"
967 else
968 AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
969 fi
970 fi
971 ])
972
973 AC_DEFUN(LOC_CHECK_INCLUDES,[
974 ac_save_cppflags="$CPPFLAGS"
975 CPPFLAGS="$3 $CPPFLAGS"
976 AC_CHECK_HEADERS($1, [], ifelse($4,[],[
977 AC_MSG_ERROR([*** Unable to locate $2 includes.])
978 ], $4))
979 CPPFLAGS=$ac_save_cppflags
980 ])
981
982 dnl autoconf undefines "shift", so use "builtin([shift], ...)"
983
984 define(LOC_SHIFT1,[builtin([shift],$*)])
985 define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
986 define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
987 define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
988 define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
989
990 dnl $1 = library
991 dnl $2 = function
992 dnl $3 = descriptive name
993 dnl $4 = LDFLAGS initialiser
994 dnl $5 = result variable
995 dnl $6 = mandatory dependencies (not added to $5)
996 dnl $7 = mandatory dependencies (added to $5)
997 dnl $8 = ACTION-IF-NOT-FOUND
998 dnl $9+ = optional dependencies
999
1000 define(LOC_CHECK_LIBS_0,[
1001 AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
1002 [$8]
1003 ],$6 $7)
1004 ])
1005
1006 define(LOC_CHECK_LIBS_1,[
1007 ifelse($9,[],
1008 LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1009 [
1010 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1011 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1012 LOC_SHIFT9($*))
1013 ]
1014 )
1015 ])
1016
1017 define(LOC_CHECK_LIBS,[
1018 ac_save_ldflags="$LDFLAGS"
1019 LDFLAGS="$4 $LDFLAGS"
1020 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1021 LDFLAGS=${ac_save_ldflags}
1022 ifelse($8,[],[
1023 AC_MSG_ERROR([*** Unable to locate $3 library.])
1024 ],$8),LOC_SHIFT8($*))
1025 LDFLAGS=${ac_save_ldflags}
1026 ])
1027
1028 AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1029 AC_MSG_CHECKING($3 version)
1030 ac_save_cppflags="$CPPFLAGS"
1031 CPPFLAGS="$5 $CPPFLAGS"
1032 AC_TRY_RUN([
1033 #include <stdio.h>
1034 #include <$1>
1035 int main(void) {
1036 FILE *fp = fopen("conftestdata","w");
1037 fputs($2, fp);
1038 return 0;
1039 }
1040 ],
1041 [ $4=`cat conftestdata`
1042 AC_MSG_RESULT($$4)],
1043 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1044 [ $4=$6
1045 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1046 CPPFLAGS=$ac_save_cppflags
1047 ])
1048
1049 AC_DEFUN(LOC_CHECK_SHARE,[
1050 AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1051 AC_MSG_ERROR([*** Unable to locate $2 data files.])
1052 ], $4))
1053 ])
1054
1055 AC_DEFUN(LOC_CHECK_VERSION_INT,[
1056 AC_MSG_CHECKING($3 version)
1057 ac_save_cppflags="$CPPFLAGS"
1058 CPPFLAGS="$5 $CPPFLAGS"
1059 AC_TRY_RUN([
1060 #include <stdio.h>
1061 #include <$1>
1062 int main(void) {
1063 FILE *fp = fopen("conftestdata","w");
1064 fprintf(fp, "%d", $2);
1065 return 0;
1066 }
1067 ],
1068 [ $4=`cat conftestdata`
1069 AC_MSG_RESULT($$4)],
1070 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1071 [ $4=$6
1072 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1073 CPPFLAGS=$ac_save_cppflags
1074 ])
1075
1076 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1077
1078 AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1079 ],substr([ ],len($1)))])
1080
1081 AC_DEFUN(LOC_ARG_WITH,[
1082 AC_ARG_WITH($1,
1083 LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1084 [with_$1=]ifelse([$3],,yes,[$3]))
1085 ])
1086
1087 AC_DEFUN(LOC_ARG_WITH_INC,[
1088 AC_ARG_WITH($1-includes,
1089 LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1090 ])
1091
1092 AC_DEFUN(LOC_ARG_WITH_LIB,[
1093 AC_ARG_WITH($1-libs,
1094 LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1095 ])
1096
1097 AC_DEFUN(LOC_ARG_WITH_SHARE,[
1098 AC_ARG_WITH($1-share,
1099 LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1100 ])
1101
1102 AC_DEFUN(LOC_OPTIONAL,[
1103 AC_MSG_CHECKING(whether to build $1)
1104 if test -n "$USE_$2" ; then
1105 AC_MSG_RESULT(yes)
1106 BUILD_$3="$4"
1107 else
1108 AC_MSG_RESULT(no)
1109 BUILD_$3=
1110 fi
1111 AC_SUBST(BUILD_$3)
1112 ])
1113
1114 AC_DEFUN(LOC_MSG,[
1115 echo "$1"
1116 ])
1117
1118 AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1119
1120 AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1121
1122 AC_DEFUN(LOC_MSG_USE,[
1123 [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])