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

# 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     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)`"])