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

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