ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/ac-tools/OOPSE.m4
Revision: 3319
Committed: Wed Jan 23 03:45:33 2008 UTC (16 years, 7 months ago) by gezelter
File size: 51796 byte(s)
Log Message:
Removed older version of openbabel from our code.  We now have a
configure check to see if openbabel is installed and then we link to
the stuff we need.  Conversion to OOPSE's md format is handled by only
one application (atom2md), so most of the work went on there.
ElementsTable still needs some work to function in parallel.

File Contents

# User Rev Content
1 gezelter 2753 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    
73     dnl
74     dnl AC_CHECK_MODDIRFLAG
75     dnl
76     AC_DEFUN([AC_CHECK_MODDIRFLAG],[
77    
78     # Check for module include path (some use -I, some (Solaris) use -M, some
79     # (absoft) use -p).
80     # Intel compilers use a wierd system: -cl,filename.pcl . If no file is
81     # specified, work.pcl and work.pc are created. However, if you specify
82     # a file, it must contain a the name of a file ending in .pc . Ugh!
83     # Use the module made above
84     AC_MSG_CHECKING(for module directory path flag)
85     rm -f conftest*
86     # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
87     rm -f work*
88     cat >conftest.$ac_ext <<EOF
89     module conftest
90     integer n
91     parameter (n=1)
92     end module conftest
93     EOF
94     # SGI and absoft compilers generates module name in upper case!
95     testname="conftest"
96     if (eval $ac_compile) 2>/dev/null ; then
97     mod=`ls CONFTEST* 2>/dev/null | grep -v CONFTEST.$ac_ext | grep -v CONFTEST.o`
98     mod=`echo "$mod" | sed -e 's/CONFTEST\.//g'`
99     if test -n "$mod" ; then
100     testname="CONFTEST"
101     fi
102     madedir=0
103     if test ! -d conf ; then mkdir conf ; madedir=1; fi
104     cp $testname.$MOD conf
105     rm -f conftest* CONFTEST*
106     cat >conftest1.$ac_ext <<EOF
107     program main
108     use conftest
109     print *, n
110     end
111     EOF
112     F90_WORK_FILES_ARG=""
113     F90MODINCSPEC=""
114     if $FC -c -Iconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext > conftest.out 2>&1 ; then
115     MODDIRFLAG="-I"
116     F90MODINCSPEC="-I<dir>"
117     AC_MSG_RESULT(-I)
118     elif $FC -c -Mconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >> conftest.out 2>&1 ; then
119     MODDIRFLAG="-M"
120     F90MODINCSPEC="-M<dir>"
121     AC_MSG_RESULT(-M)
122     elif $FC -c -pconf $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >> conftest.out 2>&1 ; then
123     MODDIRFLAG="-p"
124     F90MODINCSPEC="-p<dir>"
125     AC_MSG_RESULT(-p)
126     elif test -s work.pc ; then
127     cp work.pc conf/mpimod.pc
128     echo "mpimod.pc" > conf/mpimod.pcl
129     echo "`pwd`/conf/mpimod.pc" >> conf/mpimod.pcl
130     if $FC -c -cl,conf/mpimod.pcl $FCFLAGS $FCFLAGS_SRCEXT conftest1.$ac_ext >>conftest.out 2>&1 ; then
131     MODDIRFLAG='-cl,mpimod.pcl'
132     AC_MSG_RESULT([-cl,filename where filename contains a list of files and directories])
133     F90_WORK_FILES_ARG="-cl,mpimod.pcl"
134     F90MODINCSPEC="-cl,<dir>/<file>mod.pcl"
135     AC_SUBST(F90_WORK_FILES_ARG)
136     else
137     # The version of the Intel compiler that I have refuses to let
138     # you put the "work catalog" list anywhere but the current
139     # directory. For example, you cannot in
140     :
141     fi
142     fi
143     if test -z "MODDIRFLAG" ; then
144     AC_MSG_RESULT(unknown)
145     fi
146     AC_SUBST(MODDIRFLAG)
147     AC_SUBST(F90MODINCSPEC)
148     rm -f conftest* conf/conftest* conf/CONFTEST* CONFTEST* conf/mpimod*
149     if test $madedir = 1 ; then rmdir conf ; fi
150     fi
151    
152     ])
153    
154     AC_DEFUN(ACX_CHECK_CC_FLAGS,
155     [
156     AC_REQUIRE([AC_PROG_CC])
157     AC_CACHE_CHECK(whether ${CC} accepts $1, ac_$2,
158     [echo 'void f(){}' > conftest.c
159     if test -z "`${CC} $1 -c conftest.c 2>&1`"; then
160     ac_$2=yes
161     else
162     ac_$2=no
163     fi
164     rm -f conftest*
165     ])
166     if test "$ac_$2" = yes; then
167     :
168     $3
169     else
170     :
171     $4
172     fi
173     ])
174    
175     AC_DEFUN(ACX_CHECK_CXX_FLAGS,
176     [
177     AC_REQUIRE([AC_PROG_CXX])
178     AC_CACHE_CHECK(whether ${CXX} accepts $1, ac_$2,
179     [echo 'void f(){}' > conftest.cpp
180     if test -z "`${CXX} $1 -c conftest.cpp 2>&1`"; then
181     ac_$2=yes
182     else
183     ac_$2=no
184     fi
185     rm -f conftest*
186     ])
187     if test "$ac_$2" = yes; then
188     :
189     $3
190     else
191     :
192     $4
193     fi
194     ])
195    
196     dnl -------------------------------------------------------------------------
197     dnl ACX_CHECK_FC_FLAGS()
198     dnl
199     dnl Check for optimizer flags the Fortran compiler can use.
200     dnl
201     AC_DEFUN(ACX_CHECK_FC_FLAGS,
202     [
203     AC_CACHE_CHECK(whether ${FC} accepts $1, ac_$2,
204     [
205     AC_LANG_SAVE
206     AC_LANG(Fortran)
207     echo 'program main' > conftest.$ac_ext
208     echo 'end program main' >> conftest.$ac_ext
209     ac_compile='${FC} -c $1 $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext 1>&AC_FD_CC'
210     if AC_TRY_EVAL(ac_compile); then
211     ac_$2=yes
212     else
213     ac_$2=no
214     fi
215     rm -f conftest*
216     AC_LANG_RESTORE()
217     ])
218     if test "$ac_$2" = yes; then
219     :
220     $3
221     else
222     :
223     $4
224     fi
225     ])
226    
227     AC_DEFUN(ACX_PROG_GCC_VERSION,
228     [
229     AC_REQUIRE([AC_PROG_CC])
230     AC_CACHE_CHECK(whether we are using gcc $1.$2 or later, ac_cv_prog_gcc_$1_$2,
231     [
232     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
233     cat > conftest.c <<EOF
234     #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
235     # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
236     yes;
237     # endif
238     #endif
239     EOF
240     if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
241     ac_cv_prog_gcc_$1_$2=yes
242     else
243     ac_cv_prog_gcc_$1_$2=no
244     fi
245     ])
246     if test "$ac_cv_prog_gcc_$1_$2" = yes; then
247     :
248     $3
249     else
250     :
251     $4
252     fi
253     ])
254    
255     AC_DEFUN(ACX_PROG_GXX_VERSION,
256     [
257     AC_REQUIRE([AC_PROG_CXX])
258     AC_CACHE_CHECK(whether we are using g++ $1.$2 or later, ac_cv_prog_gxx_$1_$2,
259     [
260     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
261     cat > conftest.cpp <<EOF
262     #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
263     # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
264     yes;
265     # endif
266     #endif
267     EOF
268     if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
269     ac_cv_prog_gxx_$1_$2=yes
270     else
271     ac_cv_prog_gxx_$1_$2=no
272     fi
273     ])
274     if test "$ac_cv_prog_gxx_$1_$2" = yes; then
275     :
276     $3
277     else
278     :
279     $4
280     fi
281     ])
282    
283     AC_DEFUN(ACX_PROG_REALLY_GCC,
284     [
285     AC_REQUIRE([AC_PROG_CC])
286     AC_CACHE_CHECK(whether we are *really* using GNU cc, ac_cv_prog_really_gcc,
287     [
288     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
289     cat > conftest.c <<EOF
290     #ifdef __GNUC__
291     #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
292     no;
293     #else
294     yes;
295     #endif
296     #endif
297     EOF
298     if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
299     ac_cv_prog_really_gcc=yes
300     else
301     ac_cv_prog_really_gcc=no
302     fi
303     ])
304     if test "$ac_cv_prog_really_gcc" = yes; then
305     :
306     $1
307     else
308     :
309     $2
310     fi
311     ])
312    
313     AC_DEFUN(ACX_PROG_REALLY_GXX,
314     [
315     AC_REQUIRE([AC_PROG_CXX])
316     AC_CACHE_CHECK(whether we are *really* using GNU c++, ac_cv_prog_really_gxx,
317     [
318     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
319     cat > conftest.cpp <<EOF
320     #ifdef __GNUC__
321     #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
322     no;
323     #else
324     yes;
325     #endif
326     #endif
327     EOF
328     if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
329     ac_cv_prog_really_gxx=yes
330     else
331     ac_cv_prog_really_gxx=no
332     fi
333     ])
334     if test "$ac_cv_prog_really_gxx" = yes; then
335     :
336     $1
337     else
338     :
339     $2
340     fi
341     ])
342    
343    
344     AC_DEFUN(ACX_PROG_CC_MAXOPT,
345     [
346     AC_REQUIRE([AC_PROG_CC])
347     AC_REQUIRE([AC_CANONICAL_HOST])
348    
349     ACX_PROG_REALLY_GCC
350    
351     # Try to determine "good" native compiler flags if none specified on command
352     # line
353     if test "$ac_test_CFLAGS" != "set"; then
354     CFLAGS=""
355     case "${host_cpu}-${host_os}" in
356    
357     *linux*) if test "$CC" = icc; then
358     CFLAGS="-O"
359     fi;;
360     sparc-solaris2*) if test "$CC" = cc; then
361     CFLAGS="-O -dalign"
362     fi;;
363    
364     alpha*-osf*) if test "$CC" = cc; then
365     CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host -arch host -std1"
366     fi;;
367    
368     hppa*-hpux*) if test "$CC" = cc; then
369     CFLAGS="-Ae +O3 +Oall"
370     fi;;
371    
372     rs6000*-aix*) if test "$CC" = cc -o "$CC" = xlc; then
373     CFLAGS="-O3 -qtune=auto -qansialias -w"
374     fi;;
375     powerpc*-aix*)
376     if test "$CC" = cc -o "$CC" = xlc; then
377     CFLAGS="-O3 -qtune=auto -qansialias -w"
378     echo "*******************************************************"
379     echo "* You have AIX on an unknown powerpc system. It is *"
380     echo "* recommended that you use *"
381     echo "* *"
382     echo "* CFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
383     echo "* ^^^ *"
384     echo "* where xxx is 601, 603, 604, or whatever kind of *"
385     echo "* PowerPC CPU you have. For more info, man cc. *"
386     echo "*******************************************************"
387     fi;;
388     *darwin*)
389     if test "$CC" = xlc -o "$CC" = cc; then
390     CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
391     fi
392     if test "$CC" = icc; then
393     CFLAGS="-O3 -ip -no-prec-div -mdynamic-no-pic"
394     fi;;
395     esac
396    
397     # use default flags for gcc on all systems
398     if test $ac_cv_prog_really_gcc = yes; then
399 chuckv 3297 CFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align"
400 gezelter 2753 fi
401    
402     # test for gcc-specific flags:
403     if test $ac_cv_prog_really_gcc = yes; then
404     # -malign-double for x86 systems
405     ACX_CHECK_CC_FLAGS(-malign-double,align_double, CFLAGS="$CFLAGS -malign-double")
406     # -fstrict-aliasing for gcc-2.95+
407     ACX_CHECK_CC_FLAGS(-fstrict-aliasing,fstrict_aliasing, CFLAGS="$CFLAGS -fstrict-aliasing")
408     fi
409    
410     CPU_FLAGS=""
411     if test $ac_cv_prog_really_gcc = yes; then
412     dnl try to guess correct CPU flags, at least for linux
413     case "${host_cpu}" in
414     i586*) ACX_CHECK_CC_FLAGS(-mcpu=pentium,cpu_pentium,
415     [CPU_FLAGS=-mcpu=pentium],
416     [ACX_CHECK_CC_FLAGS(-mpentium,pentium,
417     [CPU_FLAGS=-mpentium])])
418     ;;
419     i686*) ACX_CHECK_CC_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
420     [CPU_FLAGS=-mcpu=pentiumpro],
421     [ACX_CHECK_CC_FLAGS(-mpentiumpro,pentiumpro,
422     [CPU_FLAGS=-mpentiumpro])])
423     ;;
424     powerpc*)
425     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
426     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
427     if test -n "$is60x"; then
428     ACX_CHECK_CC_FLAGS(-mcpu=$cputype,m_cpu_60x,
429     CPU_FLAGS=-mcpu=$cputype)
430     elif test "$cputype" = 750; then
431     ACX_PROG_GCC_VERSION(2,95,
432     ACX_CHECK_CC_FLAGS(-mcpu=750,m_cpu_750,
433     CPU_FLAGS=-mcpu=750))
434     fi
435     if test -z "$CPU_FLAGS"; then
436     ACX_CHECK_CC_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
437     CPU_FLAGS=-mcpu=powerpc)
438     fi
439     if test -z "$CPU_FLAGS"; then
440     ACX_CHECK_CC_FLAGS(-mpowerpc,m_powerpc,
441     CPU_FLAGS=-mpowerpc)
442     fi
443     esac
444     fi
445    
446     if test -n "$CPU_FLAGS"; then
447     CFLAGS="$CFLAGS $CPU_FLAGS"
448     fi
449    
450     if test -z "$CFLAGS"; then
451     echo ""
452     echo "********************************************************"
453     echo "* WARNING: Don't know the best CFLAGS for this system *"
454     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
455     echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
456     echo "********************************************************"
457     echo ""
458     CFLAGS="-O3"
459     fi
460    
461     ACX_CHECK_CC_FLAGS(${CFLAGS}, guessed_cflags, , [
462     echo ""
463     echo "********************************************************"
464     echo "* WARNING: The guessed CFLAGS don't seem to work with *"
465     echo "* your compiler. *"
466     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
467     echo "********************************************************"
468     echo ""
469     CFLAGS=""
470     ])
471    
472     fi
473     ])
474    
475     AC_DEFUN(ACX_PROG_CXX_MAXOPT,
476     [
477     AC_REQUIRE([AC_PROG_CXX])
478     AC_REQUIRE([AC_CANONICAL_HOST])
479    
480     ACX_PROG_REALLY_GXX
481    
482     # Try to determine "good" native compiler flags if none specified on command
483     # line
484     if test "$ac_test_CXXFLAGS" != "set"; then
485     CXXFLAGS=""
486     case "${host_cpu}-${host_os}" in
487    
488     *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
489     CXXFLAGS="-O"
490     fi;;
491     sparc-solaris2*) if test "$CXX" = CC; then
492     CXXFLAGS="-features=extensions -O -dalign"
493     fi;;
494     rs6000*-aix*) if test "$CXX" = xlC; then
495     CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
496     fi;;
497     powerpc*-aix*)
498     if test "$CXX" = xlC; then
499     CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
500     echo "*******************************************************"
501     echo "* You have AIX on an unknown powerpc system. It is *"
502     echo "* recommended that you use *"
503     echo "* *"
504     echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
505     echo "* ^^^ *"
506     echo "* where xxx is 601, 603, 604, or whatever kind of *"
507     echo "* PowerPC CPU you have. For more info, man cc. *"
508     echo "*******************************************************"
509     fi;;
510     *darwin*)
511     if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
512     CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
513     fi
514     if test "$CXX" = icpc; then
515     CXXFLAGS="-O3 -ip -no-prec-div -mdynamic-no-pic"
516     fi;;
517     esac
518    
519     # use default flags for gcc on all systems
520     if test $ac_cv_prog_really_gxx = yes; then
521 chuckv 3297 CXXFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align"
522 gezelter 2753 fi
523    
524     # test for gcc-specific flags:
525     if test $ac_cv_prog_really_gxx = yes; then
526     # -malign-double for x86 systems
527     ACX_CHECK_CXX_FLAGS(-malign-double,align_double, CXXFLAGS="$CXXFLAGS -malign-double")
528     # -fstrict-aliasing for gcc-2.95+
529     ACX_CHECK_CXX_FLAGS(-fstrict-aliasing,fstrict_aliasing, CXXFLAGS="$CXXFLAGS -fstrict-aliasing")
530     fi
531    
532     CPU_FLAGS=""
533     if test $ac_cv_prog_really_gxx = yes; then
534     dnl try to guess correct CPU flags, at least for linux
535     case "${host_cpu}" in
536     i586*) ACX_CHECK_CXX_FLAGS(-mcpu=pentium,cpu_pentium,
537     [CPU_FLAGS=-mcpu=pentium],
538     [ACX_CHECK_CXX_FLAGS(-mpentium,pentium,
539     [CPU_FLAGS=-mpentium])])
540     ;;
541     i686*) ACX_CHECK_CXX_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
542     [CPU_FLAGS=-mcpu=pentiumpro],
543     [ACX_CHECK_CXX_FLAGS(-mpentiumpro,pentiumpro,
544     [CPU_FLAGS=-mpentiumpro])])
545     ;;
546     powerpc*)
547     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
548     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
549     if test -n "$is60x"; then
550     ACX_CHECK_CXX_FLAGS(-mcpu=$cputype,m_cpu_60x,
551     CPU_FLAGS=-mcpu=$cputype)
552     elif test "$cputype" = 750; then
553     ACX_PROG_GXX_VERSION(2,95,
554     ACX_CHECK_CXX_FLAGS(-mcpu=750,m_cpu_750,
555     CPU_FLAGS=-mcpu=750))
556     fi
557     if test -z "$CPU_FLAGS"; then
558     ACX_CHECK_CXX_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
559     CPU_FLAGS=-mcpu=powerpc)
560     fi
561     if test -z "$CPU_FLAGS"; then
562     ACX_CHECK_CXX_FLAGS(-mpowerpc,m_powerpc,
563     CPU_FLAGS=-mpowerpc)
564     fi
565     esac
566     fi
567    
568     if test -n "$CPU_FLAGS"; then
569     CXXFLAGS="$CXXFLAGS $CPU_FLAGS"
570     fi
571    
572     if test -z "$CXXFLAGS"; then
573     echo ""
574     echo "**********************************************************"
575     echo "* WARNING: Don't know the best CXXFLAGS for this system *"
576     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
577     echo "* (otherwise, a default of CXXFLAGS=-O3 will be used) *"
578     echo "**********************************************************"
579     echo ""
580     CXXFLAGS="-O3"
581     fi
582    
583     ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, guessed_cxxflags, , [
584     echo ""
585     echo "**********************************************************"
586     echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
587     echo "* your compiler. *"
588     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
589     echo "**********************************************************"
590     echo ""
591     CXXFLAGS=""
592     ])
593    
594     fi
595     ])
596    
597     AC_DEFUN(ACX_PROG_FC_MAXOPT,
598     [
599     AC_REQUIRE([AC_PROG_FC])
600     AC_REQUIRE([AC_CANONICAL_HOST])
601    
602     # Try to determine "good" native compiler flags if none specified on command
603     # line
604    
605     if test "$ac_test_FFLAGS" != "set"; then
606     FCFLAGS=""
607     case "${host_cpu}-${host_os}" in
608    
609     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
610 tim 2982 FCFLAGS="-O3 -ip -no-prec-div"
611 gezelter 2753 fi;;
612     rs6000*-aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
613     FCFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
614     fi;;
615     powerpc*-aix*)
616     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
617     FCFLAGS="-O3 -qarch=ppc -qansialias -w"
618     echo "*******************************************************"
619     echo "* You have AIX on an unknown powerpc system. It is *"
620     echo "* recommended that you use *"
621     echo "* *"
622     echo "* FCFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
623     echo "* ^^^ *"
624     echo "* where xxx is 601, 603, 604, or whatever kind of *"
625     echo "* PowerPC CPU you have. For more info, man xlf. *"
626     echo "*******************************************************"
627     fi;;
628     *darwin*)
629     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
630     FCFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto"
631     fi
632     if test "$FC" = ifort; then
633     FCFLAGS="-O3 -ip -no-prec-dev -mdynamic-no-pic"
634     fi;;
635     esac
636    
637     if test -n "$CPU_FLAGS"; then
638     FCFLAGS="$FCFLAGS $CPU_FLAGS"
639     fi
640    
641     if test -z "$FCFLAGS"; then
642     echo ""
643     echo "*********************************************************"
644     echo "* WARNING: Don't know the best FCFLAGS for this system *"
645     echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
646     echo "* (otherwise, a default of FCFLAGS=-O3 will be used) *"
647     echo "*********************************************************"
648     echo ""
649     FCFLAGS="-O3"
650     fi
651    
652     ACX_CHECK_FC_FLAGS(${FCFLAGS}, guessed_f90flags, , [
653     echo ""
654     echo "**********************************************************"
655     echo "* WARNING: The guessed FCFLAGS don't seem to work with *"
656     echo "* your compiler. *"
657     echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
658     echo "*********************************************************"
659     echo ""
660     FCFLAGS=""
661     ])
662    
663     fi
664     ])
665    
666     AC_DEFUN(ACX_PROG_F90_PREPFLAG,
667     [
668     AC_REQUIRE([AC_PROG_FC])
669     AC_REQUIRE([AC_CANONICAL_HOST])
670    
671     # Try to determine native compiler flags that allow us to use F90 suffix
672     # for preprocessed f90 source.
673    
674     if test "$ac_test_PREPFLAG" != "set"; then
675     PREPFLAG=""
676     case "${host_cpu}-${host_os}" in
677    
678     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
679     PREPFLAG="-fpp1 "
680     fi;;
681     *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
682     PREPFLAG="-qsuffix=cpp=F90 "
683     fi;;
684     *darwin*)
685     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
686     PREPFLAG="-qsuffix=cpp=F90 "
687     fi;;
688     esac
689    
690     if test -z "$PREPFLAG"; then
691     AC_MSG_WARN("Using empty PREPFLAG")
692     PREPFLAG=""
693     fi
694    
695     AC_MSG_CHECKING(to make sure F90 preprocessor flag works)
696     AC_LANG_SAVE()
697     AC_LANG(Fortran)
698     ac_save_ext=$ac_ext
699     ac_ext=F90
700     ac_save_FCFLAGS_SRCEXT=$FCFLAGS_SRCEXT
701    
702     AS_IF([test "$PREPFLAG"], [FCFLAGS_SRCEXT="${PREPFLAG}"])
703     _AC_COMPILE_IFELSE([
704     AC_LANG_SOURCE([
705     program conftest
706     integer :: i
707     i = 1
708     end program conftest
709     ])], [prepflagworks=1], [prepflagworks=0])
710    
711     FCFLAGS_SRCEXT=$ac_save_FCFLAGS_SRCEXT
712     ac_ext=$ac_save_ext
713     AC_LANG_RESTORE()
714    
715     if test "$prepflagworks" = 1; then
716     AC_MSG_RESULT(yes)
717     FCFLAGS_SRCEXT="${PREPFLAG}"
718     AC_SUBST(FCFLAGS_SRCEXT)
719     else
720     AC_MSG_RESULT(no)
721     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor flag])
722     fi
723     fi
724     ])
725    
726    
727     AC_DEFUN(ACX_PROG_F90_PREPDEFFLAG,
728     [
729     AC_REQUIRE([AC_PROG_FC])
730     AC_REQUIRE([AC_CANONICAL_HOST])
731    
732     # Try to determine native compiler flags that allow us to use F90 suffix
733     # for preprocessed f90 source with -D type defines
734    
735     if test "$ac_test_PREPDEFFLAG" != "set"; then
736     PREPDEFFLAG=""
737     case "${host_cpu}-${host_os}" in
738    
739     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
740     PREPDEFFLAG=" "
741     fi;;
742     *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
743     PREPDEFFLAG="-WF,"
744     fi;;
745     *darwin*)
746     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
747     PREPDEFFLAG="-WF,"
748     fi;;
749     esac
750    
751     if test -z "$PREPDEFFLAG"; then
752     AC_MSG_WARN("Using empty PREPDEFFLAG")
753     PREPDEFFLAG=" "
754     fi
755    
756     AC_MSG_CHECKING(to make sure F90 preprocessor define flag works)
757     AC_LANG_SAVE()
758     AC_LANG(Fortran)
759     ac_save_ext=$ac_ext
760     ac_ext=F90
761     ac_save_FCFLAGS=$FCFLAGS
762    
763     AS_IF([test "$PREPDEFFLAG"], [FCFLAGS="${FCFLAGS} ${PREPDEFFLAG}-DTEST"])
764     _AC_COMPILE_IFELSE([
765     AC_LANG_SOURCE([
766     program conftest
767     integer :: i
768     #ifdef TEST
769     i = 1
770     #else
771     choke me
772     #endif
773     end program conftest
774     ])], [prepdefflagworks=1], [prepdefflagworks=0])
775    
776     FCFLAGS=$ac_save_FCFLAGS
777     ac_ext=$ac_save_ext
778     AC_LANG_RESTORE()
779    
780     if test "$prepdefflagworks" = 1; then
781     AC_MSG_RESULT(yes)
782     AC_SUBST(PREPDEFFLAG)
783     else
784     AC_MSG_RESULT(no)
785     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor define flag])
786     fi
787     fi
788     ])
789    
790     dnl check for the required MPI library
791     AC_DEFUN([ACX_MPI], [
792    
793     # Set variables...
794     MPI_LIB_DIR="$MPI/lib"
795     MPI_INC_DIR="$MPI/include"
796     AC_SUBST([MPI_LIB_DIR])
797     AC_SUBST([MPI_INC_DIR])
798    
799 gezelter 2862 AC_LANG(C)
800 gezelter 2753 AC_MSG_CHECKING([for mpi.h])
801     have_mpi_h=0
802     rm -f conftest*
803 gezelter 2862 echo '#include <mpi.h>' > conftest.c
804     if ${CC} -I${MPI_INC_DIR} -c conftest.c 2>&1 ; then
805 gezelter 2753 AC_MSG_RESULT(yes)
806     have_mpi_h=1
807     else
808     if test -s conftest.out ; then
809     cat conftest.out >> config.log
810     fi
811     AC_MSG_RESULT(no! Check MPI include paths)
812     USE_MPI="no"
813     fi
814     rm -f conftest*
815     if test "$have_mpi_h" = 1; then
816     AC_DEFINE(HAVE_MPI_H, 1, [have mpi.h])
817     fi
818    
819     AC_MSG_CHECKING([whether mpif.h is usable])
820 gezelter 2768 AC_LANG_SAVE()
821     AC_LANG(Fortran)
822     ac_save_ext=$ac_ext
823     ac_ext=F90
824     ac_save_FCFLAGS=$FCFLAGS
825 gezelter 2753 have_mpif_h=0
826     rm -f conftest*
827     cat >conftest.$ac_ext <<EOF
828     program main
829     include 'mpif.h'
830     end
831     EOF
832     if $FC -I$MPI_INC_DIR -c $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext > conftest.out 2>&1 ; then
833     AC_MSG_RESULT(yes)
834     MPI_F90_INC="$MPI_INC_DIR"
835     have_mpif_h=1
836     else
837     if test -s conftest.out ; then
838     cat conftest.out >> config.log
839     fi
840     AC_MSG_RESULT([no! Check MPI include paths])
841     USE_MPI="no"
842     fi
843     rm -f conftest*
844     AC_SUBST(MPI_F90_INC)
845     if test "$have_mpif_h" = 1; then
846     AC_DEFINE(HAVE_MPIF_H, 1, [have mpif.h])
847     fi
848 gezelter 2768 FCFLAGS=$ac_save_FCFLAGS
849     ac_ext=$ac_save_ext
850     AC_LANG_RESTORE()
851 gezelter 2753
852     AC_LANG_PUSH(C)
853     ac_save_LDFLAGS=$LDFLAGS
854 gezelter 2769 LDFLAGS="-L${MPI_LIB_DIR} ${LDFLAGS} "
855 gezelter 2753
856     if test x = x"$MPI_LIB"; then
857     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"])
858     fi
859 gezelter 2769 $as_unset ac_cv_lib_mpich_MPI_Init
860 gezelter 2753 if test x = x"$MPI_LIB"; then
861 gezelter 2770 AC_CHECK_LIB(pmpich, MPI_Init, [MPI_LIB="-lpmpich -lmpich -lpmpich -lmpich"], [],
862 gezelter 2771 [-lmpich -lpmpich -lmpich])
863 gezelter 2769 fi
864     if test x = x"$MPI_LIB"; then
865 gezelter 2753 AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"])
866     fi
867     $as_unset ac_cv_lib_mpi_MPI_Init
868     if test x = x"$MPI_LIB"; then
869     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [],
870 gezelter 2771 [-llam])
871 gezelter 2753 fi
872     $as_unset ac_cv_lib_mpi_MPI_Init
873     if test x = x"$MPI_LIB"; then
874     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"],[
875     AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])
876     USE_MPI="no"
877     ],
878     [-llam -lpthread])
879     fi
880    
881     AC_SUBST(MPI_LIB)
882    
883     AC_MSG_CHECKING([for MPI Fortran library])
884     MPI_F90_LIB=""
885     if test -f "$MPI_LIB_DIR/libfmpich.a" ; then
886     MPI_F90_LIB="-lfmpich"
887     elif test -f "$MPI_LIB_DIR/liblamf77mpi.a" ; then
888     MPI_F90_LIB="-llamf77mpi"
889     else
890     dnl nothing special found, we'll assume that the C
891     dnl library is all we need
892     MPI_F90_LIB=" "
893     fi
894     AC_MSG_RESULT([found $MPI_F90_LIB])
895     AC_SUBST(MPI_F90_LIB)
896     ])dnl ACX_MPI
897    
898    
899    
900     AC_DEFUN([adl_FUNC_GETOPT_LONG],
901     [AC_PREREQ(2.49)dnl
902     # clean out junk possibly left behind by a previous configuration
903     rm -f src/getopt.h
904     # Check for getopt_long support
905     AC_CHECK_HEADERS([getopt.h])
906     AC_CHECK_FUNCS([getopt_long],,
907     [# FreeBSD has a gnugetopt library for this
908     AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
909     [# use the GNU replacement
910     AC_LIBOBJ(getopt)
911     AC_LIBOBJ(getopt1)
912     AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
913    
914    
915     AC_DEFUN([ACX_CONFIG_HOME], [
916     myDir=${0%/*}
917     if [ "$myDir" = "$0" ]; then
918     # Ran from local directory
919     myDir=$PWD
920     fi
921     # Resolve symlinks.
922     myProgram="$0"
923     while [ -L "$myProgram" ]; do
924     ls=`/bin/ls -ld "$myProgram"`
925     link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
926     if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
927     myProgram="$link"
928     else
929     myProgram="`AS_DIRNAME([$myProgram])`/$link"
930     fi
931     done
932     myDir=`AS_DIRNAME([$myProgram])`
933     fi
934     CONFIG_HOME=$myDir
935     ])
936    
937     AC_DEFUN(BB_ENABLE_DOXYGEN,
938     [
939     AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
940     AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
941     AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
942     AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
943     if test "x$enable_doxygen" = xno; then
944     enable_doc=no
945     else
946     AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
947     if test "x$DOXYGEN" = x; then
948     if test "x$enable_doxygen" = xyes; then
949     AC_MSG_ERROR([could not find doxygen])
950     fi
951     enable_doc=no
952     else
953     enable_doc=yes
954     AC_PATH_PROG(DOT, dot, , $PATH)
955     fi
956     fi
957    
958     if test "x$enable_doc" = xyes; then
959     DOC=1
960     else
961     DOC=0
962     fi
963     AC_SUBST(DOC)
964    
965     if test x$DOT = x; then
966     if test "x$enable_dot" = xyes; then
967     AC_MSG_ERROR([could not find dot])
968     fi
969     enable_dot=no
970     else
971     enable_dot=yes
972     fi
973     AC_SUBST(enable_dot)
974     AC_SUBST(enable_html_docs)
975     AC_SUBST(enable_latex_docs)
976     ])
977     #
978     #
979     #
980     AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
981    
982     AC_PATH_PROG(PERLINTERP,perl,perl)
983     ac_cv_path_perlinterp="$PERLINTERP"
984     _sHpB='#!'
985    
986     AC_ARG_WITH(perl-shebang,
987     AC_HELP_STRING([--with-perl-shebang],
988     [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
989     ),
990     [opt_perl_shebang="$withval"]dnl
991     ,dnl
992     [opt_perl_shebang="not_set"]dnl
993     )dnl
994    
995     AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
996     ax_cv_opt_perl_shebang,
997     [ case "$opt_perl_shebang" in
998     not_set ) ax_cv_opt_perl_shebang=''
999     ;;
1000     * )
1001     ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
1002     esac
1003     ]dnl
1004     )dnl
1005    
1006     if test "A$ax_cv_opt_perl_shebang" != "A"
1007     then
1008     ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
1009     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1010     AC_SUBST(PERL_SHEBANG)dnl
1011     AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
1012    
1013     # Automatic detection of sharpbang formula starts here
1014     else dnl
1015    
1016     _somian_shbangperl=`$PERLINTERP -V:startperl`
1017     negclass="[[^']]"; dnl
1018     # must leave this comment: m4 will remove the outer brackets for us, heheh
1019     AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
1020     ac_cv_sys_kernshrpbang_perl,
1021     [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
1022     if test "x$_somian_kspb_perl" == x
1023     then _somian_ksbp_warn_empty='durnit'
1024     else
1025     case "A$_somian_kspb_perl" in
1026     A#!*perl* )
1027     ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
1028     ;;
1029     A* ) _somian_ksbp_warn_defau='trouble'
1030     ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
1031     esac
1032     fi
1033     ])dnl Done with testing sharpbang
1034    
1035     # The above prints Checking ... result message to user.
1036     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1037     AC_SUBST(PERL_SHEBANG)
1038     if test A${_somian_ksbp_warn_empty+set} == Aset
1039     then AC_MSG_WARN([dnl
1040     In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
1041     fi
1042     # Inform user after printing result value
1043     if test A${_somian_ksbp_warn_defau+set} == Aset
1044     then AC_MSG_NOTICE([Maybe Not good -])
1045     AC_MSG_WARN([dnl
1046     In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
1047     else AC_MSG_NOTICE([OK Good result - ])
1048     AC_MSG_NOTICE([dnl
1049     In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
1050     dnl Done with user info messages
1051     fi
1052     dnl Outer loop checked for user override term here
1053     fi dnl
1054    
1055     ])dnl EOMACRO DEF
1056    
1057     AC_DEFUN([ACX_CHECK_ZLIB],
1058     #
1059     # Handle user hints
1060     #
1061 gezelter 2754 [AC_ARG_WITH(zlib,
1062     AC_HELP_STRING([--with-zlib=DIR],
1063     [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1064     ),
1065     [zlib_dir="$withval"]dnl
1066     ,dnl
1067     [zlib_dir="not_set"]dnl
1068     )dnl
1069    
1070     if test "$zlib_dir" != "no"; then
1071    
1072     if test "$zlib_dir" != "not_set" ; then
1073     if test -d "$zlib_dir"
1074 gezelter 2753 then
1075 gezelter 2754 ZLIB_HOME="$zlib_dir"
1076 gezelter 2753 else
1077 gezelter 2754 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
1078 chuckv 3291 ZLIB_HOME=/usr/local
1079     if test ! -f "${ZLIB_HOME}/include/zlib.h"
1080     then
1081     ZLIB_HOME=/usr
1082     fi
1083 gezelter 2753 fi
1084 gezelter 2754 fi
1085 gezelter 2753 #
1086     # Locate zlib, if wanted
1087     #
1088     if test -n "${ZLIB_HOME}"
1089     then
1090     ZLIB_OLD_LDFLAGS=$LDFLAGS
1091 chuckv 3291 ZLIB_OLD_CFLAGS=$CFLAGS
1092 gezelter 2753 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
1093 chuckv 3291 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
1094 gezelter 2753 AC_LANG_SAVE
1095     AC_LANG_C
1096     AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
1097     AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
1098     AC_LANG_RESTORE
1099 gezelter 2754
1100     if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
1101     AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
1102     AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
1103     ZLIB_INC_DIR="${ZLIB_HOME}/include"
1104     ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
1105     ZLIB="-lz"
1106 gezelter 2753 else
1107     AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
1108 gezelter 2754 ZLIB_INC_DIR=
1109     ZLIB_LIB_DIR=
1110     ZLIB=
1111 gezelter 2753 LDFLAGS="$ZLIB_OLD_LDFLAGS"
1112 chuckv 3291 CFLAGS="$ZLIB_OLD_CFLAGS"
1113 gezelter 2753 AC_MSG_RESULT(failed)
1114 gezelter 2754 echo ""
1115     echo "*********************************************************"
1116     echo "* WARNING: Could not find a working zlib installation *"
1117     echo "* If you need OOPSE to be able to deal with compressed *"
1118     echo "* trajectory dump files be sure to specify a valid zlib *"
1119     echo "* installation with --with-zlib=DIR *"
1120     echo "* *"
1121     echo "* OOPSE will still work without zlib installed. *"
1122     echo "*********************************************************"
1123     echo ""
1124 gezelter 2753 fi
1125 gezelter 2754 AC_SUBST(ZLIB_INC_DIR)
1126     AC_SUBST(ZLIB_LIB_DIR)
1127     AC_SUBST(ZLIB)
1128 gezelter 2753 fi
1129 gezelter 2754 fi
1130 gezelter 2753 ])
1131    
1132 chuckv 3291 AC_DEFUN([ACX_CHECK_QHULL],
1133     #
1134     # Handle user hints
1135     #
1136     [AC_ARG_WITH(qhull,
1137     AC_HELP_STRING([--with-qhull=DIR],
1138     [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1139     ),
1140     [qhull_dir="$withval"]dnl
1141     ,dnl
1142     [qhull_dir="not_set"]dnl
1143     )dnl
1144 gezelter 2754
1145 chuckv 3291 if test "$qhull_dir" != "no"; then
1146    
1147     if test "$qhull_dir" != "not_set" ; then
1148     if test -d "$qhull_dir"
1149     then
1150     QHULL_HOME="$qhull_dir"
1151     else
1152     AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
1153     QHULL_HOME=/usr/local
1154     if test ! -f "${QHULL_HOME}/include/qhull/qhull.h"
1155     then
1156     QHULL_HOME=/usr
1157     fi
1158     fi
1159     fi
1160     #
1161     # Locate qhull, if wanted
1162     #
1163     if test -n "${QHULL_HOME}"
1164     then
1165     QHULL_OLD_LDFLAGS=$LDFLAGS
1166     QHULL_OLD_CFLAGS=$CFLAGS
1167     LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
1168     CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
1169     AC_LANG_SAVE
1170     AC_LANG_C
1171     AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
1172     AC_CHECK_HEADER(qhull/qhull.h, [qhull_cv_qhull_h=yes], [qhull_cv_qhull_h=no])
1173     AC_LANG_RESTORE
1174    
1175     if test "$qhull_cv_libqhull" = "yes" -a "$qhull_cv_qhull_h" = "yes"; then
1176     AC_DEFINE(HAVE_QHULL_H, 1, [have qhull.h])
1177     AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
1178 chuckv 3292 USE_QHULL=yes
1179 chuckv 3291 QHULL_INC_DIR="${QHULL_HOME}/include"
1180     QHULL_LIB_DIR="${QHULL_HOME}/lib"
1181     QHULL="-lqhull"
1182     else
1183     AC_MSG_CHECKING(qhull in ${QHULL_HOME})
1184     QHULL_INC_DIR=
1185     QHULL_LIB_DIR=
1186     QHULL=
1187 chuckv 3292 USE_QHULL=no
1188 chuckv 3291 LDFLAGS="$QHULL_OLD_LDFLAGS"
1189     CFLAGS="$QHULL_OLD_CFLAGS"
1190     AC_MSG_RESULT(failed)
1191     echo ""
1192     echo "*********************************************************"
1193     echo "* WARNING: Could not find a working qhull installation *"
1194     echo "* If you need OOPSE to be able to deal with convex *"
1195     echo "* hulls be sure to specify a valid qhull installation *"
1196     echo "* with --with-qhull=DIR *"
1197     echo "* *"
1198     echo "* OOPSE will still work without qhull installed. *"
1199     echo "*********************************************************"
1200     echo ""
1201     fi
1202     AC_SUBST(QHULL_INC_DIR)
1203     AC_SUBST(QHULL_LIB_DIR)
1204     AC_SUBST(QHULL)
1205 chuckv 3292 AC_SUBST(USE_QHULL)
1206 chuckv 3291 fi
1207     fi
1208     ])
1209    
1210 gezelter 3319 AC_DEFUN([ACX_CHECK_OPENBABEL],
1211     #
1212     # Handle user hints
1213     #
1214     [AC_ARG_WITH(openbabel,
1215     AC_HELP_STRING([--with-openbabel=DIR],
1216     [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1217     ),
1218     [openbabel_dir="$withval"]dnl
1219     ,dnl
1220     [openbabel_dir="not_set"]dnl
1221     )dnl
1222 chuckv 3291
1223 gezelter 3319 if test "$openbabel_dir" != "no"; then
1224    
1225     if test "$openbabel_dir" != "not_set" ; then
1226     if test -d "$openbabel_dir"
1227     then
1228     OPENBABEL_HOME="$openbabel_dir"
1229     else
1230     AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
1231     OPENBABEL_HOME=/usr/local
1232     if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
1233     then
1234     OPENBABEL_HOME=/usr
1235     fi
1236     fi
1237     fi
1238     #
1239     # Locate openbabel, if wanted
1240     #
1241     if test -n "${OPENBABEL_HOME}"
1242     then
1243     AC_LANG_SAVE
1244     AC_LANG_CPLUSPLUS
1245     OPENBABEL_OLD_LDFLAGS=$LDFLAGS
1246     OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
1247     LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
1248     CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
1249     AC_CHECK_HEADER(openbabel-2.0/openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
1250     AC_CHECK_HEADER(openbabel-2.0/openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
1251     AC_LINK_IFELSE([
1252     AC_LANG_PROGRAM(
1253     [[
1254     @%:@include <openbabel/babelconfig.h>
1255     @%:@include <openbabel/obconversion.h>
1256     using namespace std;
1257     using namespace OpenBabel;
1258     ]],
1259     [[
1260     OBConversion Conv(&cin, &cout);
1261     ]]
1262     )],
1263     [
1264     openbabel_lib_found="yes"
1265     AC_MSG_RESULT([found])
1266     ],
1267     [
1268     openbabel_lib_found="no"
1269     AC_MSG_RESULT([not found])
1270     ]
1271     )
1272     AC_LANG_RESTORE
1273     LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
1274     CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
1275    
1276     if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
1277     USE_OPENBABEL=yes
1278     OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
1279     OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
1280     OPENBABEL_LIB="-lopenbabel"
1281     else
1282     AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
1283     OPENBABEL_INC_DIR=
1284     OPENBABEL_LIB_DIR=
1285     OPENBABEL_LIB=
1286     USE_OPENBABEL=no
1287     AC_MSG_RESULT(failed)
1288     echo ""
1289     echo "*********************************************************"
1290     echo "* WARNING: Could not find a working openbabel-2.x *"
1291     echo "* installation If you need OOPSE to be able to convert *"
1292     echo "* xyz or pdb files you need to specify a valid *"
1293     echo "* openbabel-2.x installation with --with-openbabel=DIR *"
1294     echo "* *"
1295     echo "* OOPSE will still work without openbabel installed. *"
1296     echo "*********************************************************"
1297     echo ""
1298     fi
1299     AC_SUBST(OPENBABEL_INC_DIR)
1300     AC_SUBST(OPENBABEL_LIB_DIR)
1301     AC_SUBST(OPENBABEL_LIB)
1302     AC_SUBST(USE_OPENBABEL)
1303     fi
1304     fi
1305     ])
1306    
1307    
1308 gezelter 2753 AC_DEFUN([ACX_CHECK_FFTW],
1309     #
1310     # Handle user hints
1311     #
1312     [AC_ARG_WITH(fftw,
1313 xsun 2932 AC_HELP_STRING([--with-fftw=DIR],
1314     [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1315 gezelter 2753 ),
1316 xsun 2932 [fftw_dir="$withval"]dnl
1317 gezelter 2753 ,dnl
1318 xsun 2932 [fftw_dir="not_set"]dnl
1319 gezelter 2753 )dnl
1320    
1321     if test "$fftw_dir" != "no"; then
1322 xsun 2932 if test "$fftw_dir" != "not_set" ; then
1323     if test -d "$fftw_dir"; then
1324     FFTW_HOME="$fftw_dir"
1325     else
1326     AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
1327     FFTW_HOME=/usr/local
1328     if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
1329 gezelter 2753 FFTW_HOME=/usr
1330 xsun 2932 fi
1331     fi
1332     #
1333     # Locate fftw, if wanted
1334     #
1335     if test -n "${FFTW_HOME}"; then
1336     FFTW_OLD_LDFLAGS=$LDFLAGS
1337 chuckv 3291 FFTW_OLD_CFLAGS=$CFLAGS
1338 xsun 2932 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
1339 chuckv 3291 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
1340 xsun 2932 AC_LANG_SAVE
1341     AC_LANG_C
1342     AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
1343     AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
1344     if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
1345     AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
1346     AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
1347     if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
1348     AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
1349     AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
1350     fi
1351     fi
1352     AC_LANG_RESTORE
1353     if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
1354     AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
1355     FFTW_INC_DIR="${FFTW_HOME}/include"
1356     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1357     FFTW_LIBS="-lfftw3"
1358     else
1359     if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
1360     AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
1361     FFTW_INC_DIR="${FFTW_HOME}/include"
1362     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1363     FFTW_LIBS="-lfftw"
1364 gezelter 2753 else
1365 xsun 2932 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
1366     AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
1367     FFTW_INC_DIR="${FFTW_HOME}/include"
1368     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1369     FFTW_LIBS="-ldfftw"
1370     else
1371     AC_MSG_CHECKING(fftw in ${FFTW_HOME})
1372     FFTW_INC_DIR=
1373     FFTW_LIB_DIR=
1374     FFTW_LIBS=
1375     LDFLAGS="$FFTW_OLD_LDFLAGS"
1376 chuckv 3291 CFLAGS="$FFTW_OLD_CFLAGS"
1377 xsun 2932 AC_MSG_RESULT(failed)
1378     echo ""
1379     echo "*********************************************************"
1380     echo "* WARNING: Could not find a working FFTW installation *"
1381     echo "* If you need the staticProps program to be able to *"
1382     echo "* compute undulation spectra, be sure to specify a *"
1383     echo "* valid fftw installation with --with-fftw=DIR *"
1384     echo "* *"
1385     echo "* OOPSE will still work without fftw installed. *"
1386     echo "*********************************************************"
1387     echo ""
1388     fi
1389 gezelter 2753 fi
1390 xsun 2932 fi
1391     AC_SUBST(FFTW_INC_DIR)
1392     AC_SUBST(FFTW_LIB_DIR)
1393     AC_SUBST(FFTW_LIBS)
1394     fi
1395     fi
1396 gezelter 2753 fi
1397     ])
1398    
1399     # AC_F90_MODULE_NAMES
1400     # -------------------
1401     #
1402     # Figure out how the Fortran 90 compiler constructs module file names
1403     #
1404     AC_DEFUN([AC_F90_MODULE_NAMES],
1405     [AC_REQUIRE([AC_PROG_FC])dnl
1406     AC_CACHE_CHECK([for Fortran 90 module file names],
1407     ac_cv_f90_module_names,
1408     [AC_LANG_PUSH(Fortran)
1409     # carry out the test in a new directory, so that we don't miss anything
1410     mkdir conftest
1411     cd conftest
1412     AC_COMPILE_IFELSE(
1413     [MODULE Bar
1414     END MODULE Bar],
1415     ac_cv_f90_module_names=
1416     [ac_file_list=*
1417     for ac_file in $ac_file_list; do
1418     case $ac_file in
1419     # don't care for original source and object files
1420     conftest.$ac_ext | conftest.$ac_objext | conftest.err )
1421     :
1422     ;;
1423     # look for new files derived from the file name
1424     *conftest*)
1425     ac_pat=`echo $ac_file | sed s/conftest/%FILE%/`
1426     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1427     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1428     ;;
1429     # look for new files derived from the module name,
1430     # with different case translation schemes
1431     *Bar*)
1432     ac_pat=`echo $ac_file | sed s/Bar/%Module%/`
1433     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1434     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1435     ;;
1436     *bar*)
1437     ac_pat=`echo $ac_file | sed s/bar/%module%/`
1438     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1439     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1440     ;;
1441     *BAR*)
1442     ac_pat=`echo $ac_file | sed s/BAR/%MODULE%/`
1443     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1444     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1445     ;;
1446     # Other files - we have no idea how they are generated
1447     *)
1448     AC_MSG_WARN([Bogus file found: $ac_file])
1449     ;;
1450     esac
1451     done
1452     if test "x$ac_cv_f90_module_names" = "x"; then
1453     AC_MSG_WARN([Couldn't determine module file names])
1454     fi
1455     ],
1456     [ac_cv_f90_module_names=
1457     AC_MSG_WARN([Couldn't determine module file names])])
1458     cd ..
1459     # cleanup
1460     rm -rf conftest
1461     AC_LANG_POP()dnl
1462     ]) # AC_CACHE_CHECK
1463    
1464     # We now generate a shell script that will help us to figure out the correct
1465     # module file names, using the value of ac_cv_f90_module_names
1466    
1467     echo "Generating shell script modnam"
1468    
1469     cat > scripts/modnam << EOF
1470     #! /bin/sh
1471     # This script is auto-generated by configure
1472     #
1473     usage="\\
1474     Usage: \$[0] [[FILES]]
1475    
1476     [[FILES]] are Fortran 90 source files.
1477     The output is a list of module file names that the Fortran 90 compiler
1478     generates when compiling [[FILES]]."
1479    
1480     list=
1481     empty=
1482    
1483     if test \$[@%:@] -eq 0; then
1484     echo "\$usage"; exit 0
1485     fi
1486    
1487     while test \$[@%:@] != 0; do
1488    
1489     file=\$[1]
1490     shift
1491    
1492     # strip suffix
1493     base=\`echo \$file | sed 's/[[.]][[^.]]*$//'\`
1494    
1495     test ! -f \$file && continue
1496    
1497     # Look for module definitions and transform them to upper / lower case
1498     mods=\`cat \$file | sed '/^ *[[mM][oO][dD][uU][lL][eE]]/!d;s/^ *[[mM][oO][dD][uU][lL][eE]] *\([[A-Za-z_][A-Za-z0-9_]]*\).*\$/\1/'\`
1499     upper=\`echo \$mods | tr a-z A-Z\`
1500     lower=\`echo \$mods | tr A-Z a-z\`
1501    
1502     # Here, the patterns for generating module file names were inserted by configure
1503     for trans in $ac_cv_f90_module_names; do
1504    
1505     pat=\`echo \$trans | sed 's/.*\(%.*%\).*/\1/'\`
1506     var=empty
1507     case \$pat in
1508     %MODULE%)
1509     var=upper ;;
1510     %Module%)
1511     var=mods ;;
1512     %module%)
1513     var=lower ;;
1514     %FILE%)
1515     test -n "\$mods" && var=base ;;
1516     esac
1517     new=\`eval '(for i in \$'\$var '; do echo \$trans | sed s/\$pat/\$i/; done)'\`
1518     list="\$list \$new"
1519     done
1520     done
1521    
1522     echo \$list
1523     # end of configure-generated script
1524     EOF
1525     chmod 755 scripts/modnam
1526     ]) # AC_F90_MODULE_NAMES
1527    
1528     dnl
1529     dnl These functions were taken from the GRASS GIS toolkit:
1530     dnl
1531     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1532     dnl
1533    
1534     AC_DEFUN(LOC_CHECK_USE,[
1535     AC_MSG_CHECKING(whether to use $2)
1536     AC_MSG_RESULT("$with_$1")
1537     case "$with_$1" in
1538     "no") $3= ;;
1539     "yes") $3="1" ;;
1540     *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
1541     esac
1542    
1543     ])
1544    
1545     AC_DEFUN(LOC_CHECK_INC_PATH,[
1546     AC_MSG_CHECKING(for location of $2 includes)
1547     case "$with_$1_includes" in
1548     y | ye | yes | n | no)
1549     AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
1550     ;;
1551     esac
1552     AC_MSG_RESULT($with_$1_includes)
1553    
1554     if test -n "$with_$1_includes" ; then
1555     for dir in $with_$1_includes; do
1556     if test -d "$dir"; then
1557     $3="$$3 -I$dir"
1558     else
1559     AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
1560     fi
1561     done
1562     fi
1563     ])
1564    
1565     AC_DEFUN(LOC_CHECK_LIB_PATH,[
1566     AC_MSG_CHECKING(for location of $2 library)
1567     case "$with_$1_libs" in
1568     y | ye | yes | n | no)
1569     AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
1570     ;;
1571     esac
1572     AC_MSG_RESULT($with_$1_libs)
1573    
1574     if test -n "$with_$1_libs"; then
1575     for dir in $with_$1_libs; do
1576     if test -d "$dir"; then
1577     $3="$$3 -L$dir"
1578     else
1579     AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
1580     fi
1581     done
1582     fi
1583     ])
1584    
1585     AC_DEFUN(LOC_CHECK_SHARE_PATH,[
1586     AC_MSG_CHECKING(for location of $2 data files)
1587     case "$with_$1_share" in
1588     y | ye | yes | n | no)
1589     AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
1590     ;;
1591     esac
1592     AC_MSG_RESULT($with_$1_share)
1593    
1594     if test -n "$with_$1_share" ; then
1595     if test -d "$with_$1_share"; then
1596     $3="$with_$1_share"
1597     else
1598     AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
1599     fi
1600     fi
1601     ])
1602    
1603     AC_DEFUN(LOC_CHECK_INCLUDES,[
1604     ac_save_cppflags="$CPPFLAGS"
1605     CPPFLAGS="$3 $CPPFLAGS"
1606     AC_CHECK_HEADERS($1, [], ifelse($4,[],[
1607     AC_MSG_ERROR([*** Unable to locate $2 includes.])
1608     ], $4))
1609     CPPFLAGS=$ac_save_cppflags
1610     ])
1611    
1612     dnl autoconf undefines "shift", so use "builtin([shift], ...)"
1613    
1614     define(LOC_SHIFT1,[builtin([shift],$*)])
1615     define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
1616     define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
1617     define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
1618     define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
1619    
1620     dnl $1 = library
1621     dnl $2 = function
1622     dnl $3 = descriptive name
1623     dnl $4 = LDFLAGS initialiser
1624     dnl $5 = result variable
1625     dnl $6 = mandatory dependencies (not added to $5)
1626     dnl $7 = mandatory dependencies (added to $5)
1627     dnl $8 = ACTION-IF-NOT-FOUND
1628     dnl $9+ = optional dependencies
1629    
1630     define(LOC_CHECK_LIBS_0,[
1631     AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
1632     [$8]
1633     ],$6 $7)
1634     ])
1635    
1636     define(LOC_CHECK_LIBS_1,[
1637     ifelse($9,[],
1638     LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1639     [
1640     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1641     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1642     LOC_SHIFT9($*))
1643     ]
1644     )
1645     ])
1646    
1647     define(LOC_CHECK_LIBS,[
1648     ac_save_ldflags="$LDFLAGS"
1649     LDFLAGS="$4 $LDFLAGS"
1650     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1651     LDFLAGS=${ac_save_ldflags}
1652     ifelse($8,[],[
1653     AC_MSG_ERROR([*** Unable to locate $3 library.])
1654     ],$8),LOC_SHIFT8($*))
1655     LDFLAGS=${ac_save_ldflags}
1656     ])
1657    
1658     AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1659     AC_MSG_CHECKING($3 version)
1660     ac_save_cppflags="$CPPFLAGS"
1661     CPPFLAGS="$5 $CPPFLAGS"
1662     AC_TRY_RUN([
1663     #include <stdio.h>
1664     #include <$1>
1665     int main(void) {
1666     FILE *fp = fopen("conftestdata","w");
1667     fputs($2, fp);
1668     return 0;
1669     }
1670     ],
1671     [ $4=`cat conftestdata`
1672     AC_MSG_RESULT($$4)],
1673     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1674     [ $4=$6
1675     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1676     CPPFLAGS=$ac_save_cppflags
1677     ])
1678    
1679     AC_DEFUN(LOC_CHECK_SHARE,[
1680     AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1681     AC_MSG_ERROR([*** Unable to locate $2 data files.])
1682     ], $4))
1683     ])
1684    
1685     AC_DEFUN(LOC_CHECK_VERSION_INT,[
1686     AC_MSG_CHECKING($3 version)
1687     ac_save_cppflags="$CPPFLAGS"
1688     CPPFLAGS="$5 $CPPFLAGS"
1689     AC_TRY_RUN([
1690     #include <stdio.h>
1691     #include <$1>
1692     int main(void) {
1693     FILE *fp = fopen("conftestdata","w");
1694     fprintf(fp, "%d", $2);
1695     return 0;
1696     }
1697     ],
1698     [ $4=`cat conftestdata`
1699     AC_MSG_RESULT($$4)],
1700     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1701     [ $4=$6
1702     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1703     CPPFLAGS=$ac_save_cppflags
1704     ])
1705    
1706     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1707    
1708     AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1709     ],substr([ ],len($1)))])
1710    
1711     AC_DEFUN(LOC_ARG_WITH,[
1712     AC_ARG_WITH($1,
1713     LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1714     [with_$1=]ifelse([$3],,yes,[$3]))
1715     ])
1716    
1717     AC_DEFUN(LOC_ARG_WITH_INC,[
1718     AC_ARG_WITH($1-includes,
1719     LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1720     ])
1721    
1722     AC_DEFUN(LOC_ARG_WITH_LIB,[
1723     AC_ARG_WITH($1-libs,
1724     LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1725     ])
1726    
1727     AC_DEFUN(LOC_ARG_WITH_SHARE,[
1728     AC_ARG_WITH($1-share,
1729     LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1730     ])
1731    
1732     AC_DEFUN(LOC_OPTIONAL,[
1733     AC_MSG_CHECKING(whether to build $1)
1734     if test -n "$USE_$2" ; then
1735     AC_MSG_RESULT(yes)
1736     BUILD_$3="$4"
1737     else
1738     AC_MSG_RESULT(no)
1739     BUILD_$3=
1740     fi
1741     AC_SUBST(BUILD_$3)
1742     ])
1743    
1744     AC_DEFUN(LOC_MSG,[
1745     echo "$1"
1746     ])
1747    
1748     AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1749    
1750     AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1751    
1752     AC_DEFUN(LOC_MSG_USE,[
1753     [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])