ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/ac-tools/OpenMD.m4
Revision: 1603
Committed: Thu Aug 4 21:02:06 2011 UTC (13 years, 11 months ago) by gezelter
File size: 33048 byte(s)
Log Message:
good bye fortran!

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/qhull.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/qhull.h, [qhull_cv_qhull_h=yes], [qhull_cv_qhull_h=no])
669 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
670 LDFLAGS="$QHULL_OLD_LDFLAGS"
671 CFLAGS="$QHULL_OLD_CFLAGS"
672 CPPFLAGS="$QHULL_OLD_CPPFLAGS"
673 AC_LANG_RESTORE
674
675 if test "$qhull_cv_libqhull" = "yes" -a "$qhull_cv_qhull_h" = "yes"; then
676 AC_DEFINE(HAVE_QHULL_H, 1, [have qhull.h])
677 AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
678 USE_QHULL=yes
679 QHULL_INC_DIR="${QHULL_HOME}/include"
680 QHULL_LIB_DIR="${QHULL_HOME}/lib"
681 QHULL="-lqhull"
682 AC_MSG_RESULT([Working qhull found, will proceed.])
683 else
684 AC_MSG_WARN([])
685 AC_MSG_WARN([Could not find a working qhull installation])
686 AC_MSG_WARN([If you need OpenMD to be able to deal with convex ])
687 AC_MSG_WARN([hulls be sure to specify a valid qhull installation ])
688 AC_MSG_WARN([with --with-qhull=DIR ])
689 AC_MSG_WARN([])
690 AC_MSG_WARN([OpenMD will still work without qhull installed. ])
691 AC_MSG_WARN([])
692 fi
693 fi
694 fi
695 AC_SUBST(QHULL_INC_DIR)
696 AC_SUBST(QHULL_LIB_DIR)
697 AC_SUBST(QHULL)
698 AC_SUBST(USE_QHULL)
699 ])
700
701 AC_DEFUN([ACX_CHECK_OPENBABEL],
702 #
703 # Handle user hints
704 #
705 [AC_ARG_WITH(openbabel,
706 AC_HELP_STRING([--with-openbabel=DIR],
707 [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
708 ),
709 [openbabel_dir="$withval"]dnl
710 ,dnl
711 [openbabel_dir="not_set"]dnl
712 )dnl
713
714 if test "$openbabel_dir" != "no"; then
715
716 if test "$openbabel_dir" != "not_set" ; then
717 if test -d "$openbabel_dir"
718 then
719 OPENBABEL_HOME="$openbabel_dir"
720 else
721 AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
722 OPENBABEL_HOME=/usr/local
723 if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
724 then
725 OPENBABEL_HOME=/usr
726 fi
727 fi
728 fi
729 #
730 # Locate openbabel, if wanted
731 #
732 if test -n "${OPENBABEL_HOME}"
733 then
734 AC_LANG_SAVE
735 AC_LANG_CPLUSPLUS
736 OPENBABEL_OLD_LDFLAGS=$LDFLAGS
737 OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
738 LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
739 CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
740 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
741 AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
742 AC_LINK_IFELSE([
743 AC_LANG_PROGRAM(
744 [[
745 @%:@include <openbabel/babelconfig.h>
746 @%:@include <openbabel/obconversion.h>
747 using namespace std;
748 using namespace OpenBabel;
749 ]],
750 [[
751 OBConversion Conv(&cin, &cout);
752 ]]
753 )],
754 [
755 openbabel_lib_found="yes"
756 AC_MSG_RESULT([found])
757 ],
758 [
759 openbabel_lib_found="no"
760 AC_MSG_RESULT([not found])
761 ]
762 )
763 AC_LANG_RESTORE
764 LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
765 CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
766
767 if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
768 USE_OPENBABEL=yes
769 OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
770 OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
771 OPENBABEL_LIB="-lopenbabel"
772 else
773 AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
774 OPENBABEL_INC_DIR=
775 OPENBABEL_LIB_DIR=
776 OPENBABEL_LIB=
777 USE_OPENBABEL=no
778 AC_MSG_RESULT(failed)
779 echo ""
780 echo "*********************************************************"
781 echo "* WARNING: Could not find a working openbabel-2.x *"
782 echo "* installation If you need OpenMD to be able to convert *"
783 echo "* xyz or pdb files you need to specify a valid *"
784 echo "* openbabel-2.x installation with --with-openbabel=DIR *"
785 echo "* *"
786 echo "* OpenMD will still work without openbabel installed. *"
787 echo "*********************************************************"
788 echo ""
789 fi
790 AC_SUBST(OPENBABEL_INC_DIR)
791 AC_SUBST(OPENBABEL_LIB_DIR)
792 AC_SUBST(OPENBABEL_LIB)
793 AC_SUBST(USE_OPENBABEL)
794 fi
795 fi
796 ])
797
798
799 AC_DEFUN([ACX_CHECK_FFTW],
800 #
801 # Handle user hints
802 #
803 [AC_ARG_WITH(fftw,
804 AC_HELP_STRING([--with-fftw=DIR],
805 [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
806 ),
807 [fftw_dir="$withval"]dnl
808 ,dnl
809 [fftw_dir="not_set"]dnl
810 )dnl
811
812 if test "$fftw_dir" != "no"; then
813 if test "$fftw_dir" != "not_set" ; then
814 if test -d "$fftw_dir"; then
815 FFTW_HOME="$fftw_dir"
816 else
817 AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
818 FFTW_HOME=/usr/local
819 if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
820 FFTW_HOME=/usr
821 fi
822 fi
823 #
824 # Locate fftw, if wanted
825 #
826 if test -n "${FFTW_HOME}"; then
827 FFTW_OLD_LDFLAGS=$LDFLAGS
828 FFTW_OLD_CFLAGS=$CFLAGS
829 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
830 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
831 AC_LANG_SAVE
832 AC_LANG_C
833 AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
834 AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
835 if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
836 AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
837 AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
838 if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
839 AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
840 AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
841 fi
842 fi
843 AC_LANG_RESTORE
844 if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
845 AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
846 FFTW_INC_DIR="${FFTW_HOME}/include"
847 FFTW_LIB_DIR="${FFTW_HOME}/lib"
848 FFTW_LIBS="-lfftw3"
849 else
850 if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
851 AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
852 FFTW_INC_DIR="${FFTW_HOME}/include"
853 FFTW_LIB_DIR="${FFTW_HOME}/lib"
854 FFTW_LIBS="-lfftw"
855 else
856 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
857 AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
858 FFTW_INC_DIR="${FFTW_HOME}/include"
859 FFTW_LIB_DIR="${FFTW_HOME}/lib"
860 FFTW_LIBS="-ldfftw"
861 else
862 AC_MSG_CHECKING(fftw in ${FFTW_HOME})
863 FFTW_INC_DIR=
864 FFTW_LIB_DIR=
865 FFTW_LIBS=
866 LDFLAGS="$FFTW_OLD_LDFLAGS"
867 CFLAGS="$FFTW_OLD_CFLAGS"
868 AC_MSG_RESULT(failed)
869 echo ""
870 echo "*********************************************************"
871 echo "* WARNING: Could not find a working FFTW installation *"
872 echo "* If you need the staticProps program to be able to *"
873 echo "* compute undulation spectra, be sure to specify a *"
874 echo "* valid fftw installation with --with-fftw=DIR *"
875 echo "* *"
876 echo "* OpenMD will still work without fftw installed. *"
877 echo "*********************************************************"
878 echo ""
879 fi
880 fi
881 fi
882 AC_SUBST(FFTW_INC_DIR)
883 AC_SUBST(FFTW_LIB_DIR)
884 AC_SUBST(FFTW_LIBS)
885 fi
886 fi
887 fi
888 ])
889
890
891 dnl
892 dnl These functions were taken from the GRASS GIS toolkit:
893 dnl
894 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
895 dnl
896
897 AC_DEFUN(LOC_CHECK_USE,[
898 AC_MSG_CHECKING(whether to use $2)
899 AC_MSG_RESULT("$with_$1")
900 case "$with_$1" in
901 "no") $3= ;;
902 "yes") $3="1" ;;
903 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
904 esac
905
906 ])
907
908 AC_DEFUN(LOC_CHECK_INC_PATH,[
909 AC_MSG_CHECKING(for location of $2 includes)
910 case "$with_$1_includes" in
911 y | ye | yes | n | no)
912 AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
913 ;;
914 esac
915 AC_MSG_RESULT($with_$1_includes)
916
917 if test -n "$with_$1_includes" ; then
918 for dir in $with_$1_includes; do
919 if test -d "$dir"; then
920 $3="$$3 -I$dir"
921 else
922 AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
923 fi
924 done
925 fi
926 ])
927
928 AC_DEFUN(LOC_CHECK_LIB_PATH,[
929 AC_MSG_CHECKING(for location of $2 library)
930 case "$with_$1_libs" in
931 y | ye | yes | n | no)
932 AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
933 ;;
934 esac
935 AC_MSG_RESULT($with_$1_libs)
936
937 if test -n "$with_$1_libs"; then
938 for dir in $with_$1_libs; do
939 if test -d "$dir"; then
940 $3="$$3 -L$dir"
941 else
942 AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
943 fi
944 done
945 fi
946 ])
947
948 AC_DEFUN(LOC_CHECK_SHARE_PATH,[
949 AC_MSG_CHECKING(for location of $2 data files)
950 case "$with_$1_share" in
951 y | ye | yes | n | no)
952 AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
953 ;;
954 esac
955 AC_MSG_RESULT($with_$1_share)
956
957 if test -n "$with_$1_share" ; then
958 if test -d "$with_$1_share"; then
959 $3="$with_$1_share"
960 else
961 AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
962 fi
963 fi
964 ])
965
966 AC_DEFUN(LOC_CHECK_INCLUDES,[
967 ac_save_cppflags="$CPPFLAGS"
968 CPPFLAGS="$3 $CPPFLAGS"
969 AC_CHECK_HEADERS($1, [], ifelse($4,[],[
970 AC_MSG_ERROR([*** Unable to locate $2 includes.])
971 ], $4))
972 CPPFLAGS=$ac_save_cppflags
973 ])
974
975 dnl autoconf undefines "shift", so use "builtin([shift], ...)"
976
977 define(LOC_SHIFT1,[builtin([shift],$*)])
978 define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
979 define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
980 define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
981 define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
982
983 dnl $1 = library
984 dnl $2 = function
985 dnl $3 = descriptive name
986 dnl $4 = LDFLAGS initialiser
987 dnl $5 = result variable
988 dnl $6 = mandatory dependencies (not added to $5)
989 dnl $7 = mandatory dependencies (added to $5)
990 dnl $8 = ACTION-IF-NOT-FOUND
991 dnl $9+ = optional dependencies
992
993 define(LOC_CHECK_LIBS_0,[
994 AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
995 [$8]
996 ],$6 $7)
997 ])
998
999 define(LOC_CHECK_LIBS_1,[
1000 ifelse($9,[],
1001 LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1002 [
1003 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1004 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1005 LOC_SHIFT9($*))
1006 ]
1007 )
1008 ])
1009
1010 define(LOC_CHECK_LIBS,[
1011 ac_save_ldflags="$LDFLAGS"
1012 LDFLAGS="$4 $LDFLAGS"
1013 LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1014 LDFLAGS=${ac_save_ldflags}
1015 ifelse($8,[],[
1016 AC_MSG_ERROR([*** Unable to locate $3 library.])
1017 ],$8),LOC_SHIFT8($*))
1018 LDFLAGS=${ac_save_ldflags}
1019 ])
1020
1021 AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1022 AC_MSG_CHECKING($3 version)
1023 ac_save_cppflags="$CPPFLAGS"
1024 CPPFLAGS="$5 $CPPFLAGS"
1025 AC_TRY_RUN([
1026 #include <stdio.h>
1027 #include <$1>
1028 int main(void) {
1029 FILE *fp = fopen("conftestdata","w");
1030 fputs($2, fp);
1031 return 0;
1032 }
1033 ],
1034 [ $4=`cat conftestdata`
1035 AC_MSG_RESULT($$4)],
1036 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1037 [ $4=$6
1038 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1039 CPPFLAGS=$ac_save_cppflags
1040 ])
1041
1042 AC_DEFUN(LOC_CHECK_SHARE,[
1043 AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1044 AC_MSG_ERROR([*** Unable to locate $2 data files.])
1045 ], $4))
1046 ])
1047
1048 AC_DEFUN(LOC_CHECK_VERSION_INT,[
1049 AC_MSG_CHECKING($3 version)
1050 ac_save_cppflags="$CPPFLAGS"
1051 CPPFLAGS="$5 $CPPFLAGS"
1052 AC_TRY_RUN([
1053 #include <stdio.h>
1054 #include <$1>
1055 int main(void) {
1056 FILE *fp = fopen("conftestdata","w");
1057 fprintf(fp, "%d", $2);
1058 return 0;
1059 }
1060 ],
1061 [ $4=`cat conftestdata`
1062 AC_MSG_RESULT($$4)],
1063 [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1064 [ $4=$6
1065 AC_MSG_RESULT([unknown (cross-compiling)]) ])
1066 CPPFLAGS=$ac_save_cppflags
1067 ])
1068
1069 dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1070
1071 AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1072 ],substr([ ],len($1)))])
1073
1074 AC_DEFUN(LOC_ARG_WITH,[
1075 AC_ARG_WITH($1,
1076 LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1077 [with_$1=]ifelse([$3],,yes,[$3]))
1078 ])
1079
1080 AC_DEFUN(LOC_ARG_WITH_INC,[
1081 AC_ARG_WITH($1-includes,
1082 LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1083 ])
1084
1085 AC_DEFUN(LOC_ARG_WITH_LIB,[
1086 AC_ARG_WITH($1-libs,
1087 LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1088 ])
1089
1090 AC_DEFUN(LOC_ARG_WITH_SHARE,[
1091 AC_ARG_WITH($1-share,
1092 LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1093 ])
1094
1095 AC_DEFUN(LOC_OPTIONAL,[
1096 AC_MSG_CHECKING(whether to build $1)
1097 if test -n "$USE_$2" ; then
1098 AC_MSG_RESULT(yes)
1099 BUILD_$3="$4"
1100 else
1101 AC_MSG_RESULT(no)
1102 BUILD_$3=
1103 fi
1104 AC_SUBST(BUILD_$3)
1105 ])
1106
1107 AC_DEFUN(LOC_MSG,[
1108 echo "$1"
1109 ])
1110
1111 AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1112
1113 AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1114
1115 AC_DEFUN(LOC_MSG_USE,[
1116 [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])