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, 10 months ago) by gezelter
File size: 33441 byte(s)
Log Message:
Build fixes for qhull 2011, fixes for compilation with PGI.


File Contents

# User Rev Content
1 gezelter 1390 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 gezelter 1618 if test ! -f "${QHULL_HOME}/include/qhull/libqhull.h"; then
651 gezelter 1390 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 gezelter 1618 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 gezelter 1390 LDFLAGS="$QHULL_OLD_LDFLAGS"
672     CFLAGS="$QHULL_OLD_CFLAGS"
673     CPPFLAGS="$QHULL_OLD_CPPFLAGS"
674     AC_LANG_RESTORE
675    
676 gezelter 1618 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 gezelter 1390 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)`"])