ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/ac-tools/OOPSE.m4
Revision: 3343
Committed: Mon Feb 11 23:05:00 2008 UTC (16 years, 7 months ago) by gezelter
File size: 49101 byte(s)
Log Message:
fixing configure process

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    
791    
792    
793     AC_DEFUN([adl_FUNC_GETOPT_LONG],
794     [AC_PREREQ(2.49)dnl
795     # clean out junk possibly left behind by a previous configuration
796     rm -f src/getopt.h
797     # Check for getopt_long support
798     AC_CHECK_HEADERS([getopt.h])
799     AC_CHECK_FUNCS([getopt_long],,
800     [# FreeBSD has a gnugetopt library for this
801     AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
802     [# use the GNU replacement
803     AC_LIBOBJ(getopt)
804     AC_LIBOBJ(getopt1)
805     AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
806    
807    
808     AC_DEFUN([ACX_CONFIG_HOME], [
809     myDir=${0%/*}
810     if [ "$myDir" = "$0" ]; then
811     # Ran from local directory
812     myDir=$PWD
813     fi
814     # Resolve symlinks.
815     myProgram="$0"
816     while [ -L "$myProgram" ]; do
817     ls=`/bin/ls -ld "$myProgram"`
818     link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
819     if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
820     myProgram="$link"
821     else
822     myProgram="`AS_DIRNAME([$myProgram])`/$link"
823     fi
824     done
825     myDir=`AS_DIRNAME([$myProgram])`
826     fi
827     CONFIG_HOME=$myDir
828     ])
829    
830     AC_DEFUN(BB_ENABLE_DOXYGEN,
831     [
832     AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
833     AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
834     AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
835     AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
836     if test "x$enable_doxygen" = xno; then
837     enable_doc=no
838     else
839     AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
840     if test "x$DOXYGEN" = x; then
841     if test "x$enable_doxygen" = xyes; then
842     AC_MSG_ERROR([could not find doxygen])
843     fi
844     enable_doc=no
845     else
846     enable_doc=yes
847     AC_PATH_PROG(DOT, dot, , $PATH)
848     fi
849     fi
850    
851     if test "x$enable_doc" = xyes; then
852     DOC=1
853     else
854     DOC=0
855     fi
856     AC_SUBST(DOC)
857    
858     if test x$DOT = x; then
859     if test "x$enable_dot" = xyes; then
860     AC_MSG_ERROR([could not find dot])
861     fi
862     enable_dot=no
863     else
864     enable_dot=yes
865     fi
866     AC_SUBST(enable_dot)
867     AC_SUBST(enable_html_docs)
868     AC_SUBST(enable_latex_docs)
869     ])
870     #
871     #
872     #
873     AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
874    
875     AC_PATH_PROG(PERLINTERP,perl,perl)
876     ac_cv_path_perlinterp="$PERLINTERP"
877     _sHpB='#!'
878    
879     AC_ARG_WITH(perl-shebang,
880     AC_HELP_STRING([--with-perl-shebang],
881     [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
882     ),
883     [opt_perl_shebang="$withval"]dnl
884     ,dnl
885     [opt_perl_shebang="not_set"]dnl
886     )dnl
887    
888     AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
889     ax_cv_opt_perl_shebang,
890     [ case "$opt_perl_shebang" in
891     not_set ) ax_cv_opt_perl_shebang=''
892     ;;
893     * )
894     ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
895     esac
896     ]dnl
897     )dnl
898    
899     if test "A$ax_cv_opt_perl_shebang" != "A"
900     then
901     ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
902     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
903     AC_SUBST(PERL_SHEBANG)dnl
904     AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
905    
906     # Automatic detection of sharpbang formula starts here
907     else dnl
908    
909     _somian_shbangperl=`$PERLINTERP -V:startperl`
910     negclass="[[^']]"; dnl
911     # must leave this comment: m4 will remove the outer brackets for us, heheh
912     AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
913     ac_cv_sys_kernshrpbang_perl,
914     [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
915     if test "x$_somian_kspb_perl" == x
916     then _somian_ksbp_warn_empty='durnit'
917     else
918     case "A$_somian_kspb_perl" in
919     A#!*perl* )
920     ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
921     ;;
922     A* ) _somian_ksbp_warn_defau='trouble'
923     ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
924     esac
925     fi
926     ])dnl Done with testing sharpbang
927    
928     # The above prints Checking ... result message to user.
929     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
930     AC_SUBST(PERL_SHEBANG)
931     if test A${_somian_ksbp_warn_empty+set} == Aset
932     then AC_MSG_WARN([dnl
933     In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
934     fi
935     # Inform user after printing result value
936     if test A${_somian_ksbp_warn_defau+set} == Aset
937     then AC_MSG_NOTICE([Maybe Not good -])
938     AC_MSG_WARN([dnl
939     In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
940     else AC_MSG_NOTICE([OK Good result - ])
941     AC_MSG_NOTICE([dnl
942     In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
943     dnl Done with user info messages
944     fi
945     dnl Outer loop checked for user override term here
946     fi dnl
947    
948     ])dnl EOMACRO DEF
949    
950     AC_DEFUN([ACX_CHECK_ZLIB],
951     #
952     # Handle user hints
953     #
954 gezelter 2754 [AC_ARG_WITH(zlib,
955     AC_HELP_STRING([--with-zlib=DIR],
956     [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
957     ),
958     [zlib_dir="$withval"]dnl
959     ,dnl
960     [zlib_dir="not_set"]dnl
961     )dnl
962    
963     if test "$zlib_dir" != "no"; then
964    
965     if test "$zlib_dir" != "not_set" ; then
966     if test -d "$zlib_dir"
967 gezelter 2753 then
968 gezelter 2754 ZLIB_HOME="$zlib_dir"
969 gezelter 2753 else
970 gezelter 2754 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
971 chuckv 3291 ZLIB_HOME=/usr/local
972     if test ! -f "${ZLIB_HOME}/include/zlib.h"
973     then
974     ZLIB_HOME=/usr
975     fi
976 gezelter 2753 fi
977 gezelter 2754 fi
978 gezelter 2753 #
979     # Locate zlib, if wanted
980     #
981     if test -n "${ZLIB_HOME}"
982     then
983     ZLIB_OLD_LDFLAGS=$LDFLAGS
984 chuckv 3291 ZLIB_OLD_CFLAGS=$CFLAGS
985 gezelter 2753 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
986 chuckv 3291 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
987 gezelter 2753 AC_LANG_SAVE
988     AC_LANG_C
989     AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
990     AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
991     AC_LANG_RESTORE
992 gezelter 2754
993     if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
994     AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
995     AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
996     ZLIB_INC_DIR="${ZLIB_HOME}/include"
997     ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
998     ZLIB="-lz"
999 gezelter 2753 else
1000     AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
1001 gezelter 2754 ZLIB_INC_DIR=
1002     ZLIB_LIB_DIR=
1003     ZLIB=
1004 gezelter 2753 LDFLAGS="$ZLIB_OLD_LDFLAGS"
1005 chuckv 3291 CFLAGS="$ZLIB_OLD_CFLAGS"
1006 gezelter 2753 AC_MSG_RESULT(failed)
1007 gezelter 2754 echo ""
1008     echo "*********************************************************"
1009     echo "* WARNING: Could not find a working zlib installation *"
1010     echo "* If you need OOPSE to be able to deal with compressed *"
1011     echo "* trajectory dump files be sure to specify a valid zlib *"
1012     echo "* installation with --with-zlib=DIR *"
1013     echo "* *"
1014     echo "* OOPSE will still work without zlib installed. *"
1015     echo "*********************************************************"
1016     echo ""
1017 gezelter 2753 fi
1018 gezelter 2754 AC_SUBST(ZLIB_INC_DIR)
1019     AC_SUBST(ZLIB_LIB_DIR)
1020     AC_SUBST(ZLIB)
1021 gezelter 2753 fi
1022 gezelter 2754 fi
1023 gezelter 2753 ])
1024    
1025 chuckv 3291 AC_DEFUN([ACX_CHECK_QHULL],
1026     #
1027     # Handle user hints
1028     #
1029     [AC_ARG_WITH(qhull,
1030     AC_HELP_STRING([--with-qhull=DIR],
1031     [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1032     ),
1033     [qhull_dir="$withval"]dnl
1034     ,dnl
1035     [qhull_dir="not_set"]dnl
1036     )dnl
1037 gezelter 2754
1038 chuckv 3291 if test "$qhull_dir" != "no"; then
1039    
1040     if test "$qhull_dir" != "not_set" ; then
1041     if test -d "$qhull_dir"
1042     then
1043     QHULL_HOME="$qhull_dir"
1044     else
1045     AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
1046     QHULL_HOME=/usr/local
1047     if test ! -f "${QHULL_HOME}/include/qhull/qhull.h"
1048     then
1049     QHULL_HOME=/usr
1050     fi
1051     fi
1052     fi
1053     #
1054     # Locate qhull, if wanted
1055     #
1056     if test -n "${QHULL_HOME}"
1057     then
1058 gezelter 3343 AC_LANG_SAVE
1059     AC_LANG_C
1060 chuckv 3291 QHULL_OLD_LDFLAGS=$LDFLAGS
1061     QHULL_OLD_CFLAGS=$CFLAGS
1062 gezelter 3343 QHULL_OLD_CPPFLAGS=$CPPFLAGS
1063 chuckv 3291 LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
1064     CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
1065 gezelter 3343 CPPFLAGS="$CPPFLAGS -I${QHULL_HOME}/include"
1066     AC_CHECK_HEADER(qhull/qhull.h, [qhull_cv_qhull_h=yes], [qhull_cv_qhull_h=no])
1067 chuckv 3291 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
1068 gezelter 3343 LDFLAGS="$QHULL_OLD_LDFLAGS"
1069     CFLAGS="$QHULL_OLD_CFLAGS"
1070     CPPFLAGS="$QHULL_OLD_CPPFLAGS"
1071 chuckv 3291 AC_LANG_RESTORE
1072    
1073     if test "$qhull_cv_libqhull" = "yes" -a "$qhull_cv_qhull_h" = "yes"; then
1074     AC_DEFINE(HAVE_QHULL_H, 1, [have qhull.h])
1075     AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
1076 chuckv 3292 USE_QHULL=yes
1077 chuckv 3291 QHULL_INC_DIR="${QHULL_HOME}/include"
1078     QHULL_LIB_DIR="${QHULL_HOME}/lib"
1079     QHULL="-lqhull"
1080     else
1081     AC_MSG_CHECKING(qhull in ${QHULL_HOME})
1082     QHULL_INC_DIR=
1083     QHULL_LIB_DIR=
1084     QHULL=
1085 chuckv 3292 USE_QHULL=no
1086 chuckv 3291 AC_MSG_RESULT(failed)
1087     echo ""
1088     echo "*********************************************************"
1089     echo "* WARNING: Could not find a working qhull installation *"
1090     echo "* If you need OOPSE to be able to deal with convex *"
1091     echo "* hulls be sure to specify a valid qhull installation *"
1092     echo "* with --with-qhull=DIR *"
1093     echo "* *"
1094     echo "* OOPSE will still work without qhull installed. *"
1095     echo "*********************************************************"
1096     echo ""
1097     fi
1098     AC_SUBST(QHULL_INC_DIR)
1099     AC_SUBST(QHULL_LIB_DIR)
1100     AC_SUBST(QHULL)
1101 chuckv 3292 AC_SUBST(USE_QHULL)
1102 chuckv 3291 fi
1103     fi
1104     ])
1105    
1106 gezelter 3319 AC_DEFUN([ACX_CHECK_OPENBABEL],
1107     #
1108     # Handle user hints
1109     #
1110     [AC_ARG_WITH(openbabel,
1111     AC_HELP_STRING([--with-openbabel=DIR],
1112     [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1113     ),
1114     [openbabel_dir="$withval"]dnl
1115     ,dnl
1116     [openbabel_dir="not_set"]dnl
1117     )dnl
1118 chuckv 3291
1119 gezelter 3319 if test "$openbabel_dir" != "no"; then
1120    
1121     if test "$openbabel_dir" != "not_set" ; then
1122     if test -d "$openbabel_dir"
1123     then
1124     OPENBABEL_HOME="$openbabel_dir"
1125     else
1126     AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
1127     OPENBABEL_HOME=/usr/local
1128     if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
1129     then
1130     OPENBABEL_HOME=/usr
1131     fi
1132     fi
1133     fi
1134     #
1135     # Locate openbabel, if wanted
1136     #
1137     if test -n "${OPENBABEL_HOME}"
1138     then
1139     AC_LANG_SAVE
1140     AC_LANG_CPLUSPLUS
1141     OPENBABEL_OLD_LDFLAGS=$LDFLAGS
1142     OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
1143     LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
1144     CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
1145 gezelter 3332 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
1146     AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
1147 gezelter 3319 AC_LINK_IFELSE([
1148     AC_LANG_PROGRAM(
1149     [[
1150     @%:@include <openbabel/babelconfig.h>
1151     @%:@include <openbabel/obconversion.h>
1152     using namespace std;
1153     using namespace OpenBabel;
1154     ]],
1155     [[
1156     OBConversion Conv(&cin, &cout);
1157     ]]
1158     )],
1159     [
1160     openbabel_lib_found="yes"
1161     AC_MSG_RESULT([found])
1162     ],
1163     [
1164     openbabel_lib_found="no"
1165     AC_MSG_RESULT([not found])
1166     ]
1167     )
1168     AC_LANG_RESTORE
1169     LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
1170     CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
1171    
1172     if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
1173     USE_OPENBABEL=yes
1174     OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
1175     OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
1176     OPENBABEL_LIB="-lopenbabel"
1177     else
1178     AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
1179     OPENBABEL_INC_DIR=
1180     OPENBABEL_LIB_DIR=
1181     OPENBABEL_LIB=
1182     USE_OPENBABEL=no
1183     AC_MSG_RESULT(failed)
1184     echo ""
1185     echo "*********************************************************"
1186     echo "* WARNING: Could not find a working openbabel-2.x *"
1187     echo "* installation If you need OOPSE to be able to convert *"
1188     echo "* xyz or pdb files you need to specify a valid *"
1189     echo "* openbabel-2.x installation with --with-openbabel=DIR *"
1190     echo "* *"
1191     echo "* OOPSE will still work without openbabel installed. *"
1192     echo "*********************************************************"
1193     echo ""
1194     fi
1195     AC_SUBST(OPENBABEL_INC_DIR)
1196     AC_SUBST(OPENBABEL_LIB_DIR)
1197     AC_SUBST(OPENBABEL_LIB)
1198     AC_SUBST(USE_OPENBABEL)
1199     fi
1200     fi
1201     ])
1202    
1203    
1204 gezelter 2753 AC_DEFUN([ACX_CHECK_FFTW],
1205     #
1206     # Handle user hints
1207     #
1208     [AC_ARG_WITH(fftw,
1209 xsun 2932 AC_HELP_STRING([--with-fftw=DIR],
1210     [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1211 gezelter 2753 ),
1212 xsun 2932 [fftw_dir="$withval"]dnl
1213 gezelter 2753 ,dnl
1214 xsun 2932 [fftw_dir="not_set"]dnl
1215 gezelter 2753 )dnl
1216    
1217     if test "$fftw_dir" != "no"; then
1218 xsun 2932 if test "$fftw_dir" != "not_set" ; then
1219     if test -d "$fftw_dir"; then
1220     FFTW_HOME="$fftw_dir"
1221     else
1222     AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
1223     FFTW_HOME=/usr/local
1224     if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
1225 gezelter 2753 FFTW_HOME=/usr
1226 xsun 2932 fi
1227     fi
1228     #
1229     # Locate fftw, if wanted
1230     #
1231     if test -n "${FFTW_HOME}"; then
1232     FFTW_OLD_LDFLAGS=$LDFLAGS
1233 chuckv 3291 FFTW_OLD_CFLAGS=$CFLAGS
1234 xsun 2932 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
1235 chuckv 3291 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
1236 xsun 2932 AC_LANG_SAVE
1237     AC_LANG_C
1238     AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
1239     AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
1240     if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
1241     AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
1242     AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
1243     if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
1244     AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
1245     AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
1246     fi
1247     fi
1248     AC_LANG_RESTORE
1249     if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
1250     AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
1251     FFTW_INC_DIR="${FFTW_HOME}/include"
1252     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1253     FFTW_LIBS="-lfftw3"
1254     else
1255     if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
1256     AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
1257     FFTW_INC_DIR="${FFTW_HOME}/include"
1258     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1259     FFTW_LIBS="-lfftw"
1260 gezelter 2753 else
1261 xsun 2932 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
1262     AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
1263     FFTW_INC_DIR="${FFTW_HOME}/include"
1264     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1265     FFTW_LIBS="-ldfftw"
1266     else
1267     AC_MSG_CHECKING(fftw in ${FFTW_HOME})
1268     FFTW_INC_DIR=
1269     FFTW_LIB_DIR=
1270     FFTW_LIBS=
1271     LDFLAGS="$FFTW_OLD_LDFLAGS"
1272 chuckv 3291 CFLAGS="$FFTW_OLD_CFLAGS"
1273 xsun 2932 AC_MSG_RESULT(failed)
1274     echo ""
1275     echo "*********************************************************"
1276     echo "* WARNING: Could not find a working FFTW installation *"
1277     echo "* If you need the staticProps program to be able to *"
1278     echo "* compute undulation spectra, be sure to specify a *"
1279     echo "* valid fftw installation with --with-fftw=DIR *"
1280     echo "* *"
1281     echo "* OOPSE will still work without fftw installed. *"
1282     echo "*********************************************************"
1283     echo ""
1284     fi
1285 gezelter 2753 fi
1286 xsun 2932 fi
1287     AC_SUBST(FFTW_INC_DIR)
1288     AC_SUBST(FFTW_LIB_DIR)
1289     AC_SUBST(FFTW_LIBS)
1290     fi
1291     fi
1292 gezelter 2753 fi
1293     ])
1294    
1295     # AC_F90_MODULE_NAMES
1296     # -------------------
1297     #
1298     # Figure out how the Fortran 90 compiler constructs module file names
1299     #
1300     AC_DEFUN([AC_F90_MODULE_NAMES],
1301     [AC_REQUIRE([AC_PROG_FC])dnl
1302     AC_CACHE_CHECK([for Fortran 90 module file names],
1303     ac_cv_f90_module_names,
1304     [AC_LANG_PUSH(Fortran)
1305     # carry out the test in a new directory, so that we don't miss anything
1306     mkdir conftest
1307     cd conftest
1308     AC_COMPILE_IFELSE(
1309     [MODULE Bar
1310     END MODULE Bar],
1311     ac_cv_f90_module_names=
1312     [ac_file_list=*
1313     for ac_file in $ac_file_list; do
1314     case $ac_file in
1315     # don't care for original source and object files
1316     conftest.$ac_ext | conftest.$ac_objext | conftest.err )
1317     :
1318     ;;
1319     # look for new files derived from the file name
1320     *conftest*)
1321     ac_pat=`echo $ac_file | sed s/conftest/%FILE%/`
1322     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1323     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1324     ;;
1325     # look for new files derived from the module name,
1326     # with different case translation schemes
1327     *Bar*)
1328     ac_pat=`echo $ac_file | sed s/Bar/%Module%/`
1329     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1330     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1331     ;;
1332     *bar*)
1333     ac_pat=`echo $ac_file | sed s/bar/%module%/`
1334     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1335     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1336     ;;
1337     *BAR*)
1338     ac_pat=`echo $ac_file | sed s/BAR/%MODULE%/`
1339     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1340     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1341     ;;
1342     # Other files - we have no idea how they are generated
1343     *)
1344     AC_MSG_WARN([Bogus file found: $ac_file])
1345     ;;
1346     esac
1347     done
1348     if test "x$ac_cv_f90_module_names" = "x"; then
1349     AC_MSG_WARN([Couldn't determine module file names])
1350     fi
1351     ],
1352     [ac_cv_f90_module_names=
1353     AC_MSG_WARN([Couldn't determine module file names])])
1354     cd ..
1355     # cleanup
1356     rm -rf conftest
1357     AC_LANG_POP()dnl
1358     ]) # AC_CACHE_CHECK
1359    
1360     # We now generate a shell script that will help us to figure out the correct
1361     # module file names, using the value of ac_cv_f90_module_names
1362    
1363     echo "Generating shell script modnam"
1364    
1365     cat > scripts/modnam << EOF
1366     #! /bin/sh
1367     # This script is auto-generated by configure
1368     #
1369     usage="\\
1370     Usage: \$[0] [[FILES]]
1371    
1372     [[FILES]] are Fortran 90 source files.
1373     The output is a list of module file names that the Fortran 90 compiler
1374     generates when compiling [[FILES]]."
1375    
1376     list=
1377     empty=
1378    
1379     if test \$[@%:@] -eq 0; then
1380     echo "\$usage"; exit 0
1381     fi
1382    
1383     while test \$[@%:@] != 0; do
1384    
1385     file=\$[1]
1386     shift
1387    
1388     # strip suffix
1389     base=\`echo \$file | sed 's/[[.]][[^.]]*$//'\`
1390    
1391     test ! -f \$file && continue
1392    
1393     # Look for module definitions and transform them to upper / lower case
1394     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/'\`
1395     upper=\`echo \$mods | tr a-z A-Z\`
1396     lower=\`echo \$mods | tr A-Z a-z\`
1397    
1398     # Here, the patterns for generating module file names were inserted by configure
1399     for trans in $ac_cv_f90_module_names; do
1400    
1401     pat=\`echo \$trans | sed 's/.*\(%.*%\).*/\1/'\`
1402     var=empty
1403     case \$pat in
1404     %MODULE%)
1405     var=upper ;;
1406     %Module%)
1407     var=mods ;;
1408     %module%)
1409     var=lower ;;
1410     %FILE%)
1411     test -n "\$mods" && var=base ;;
1412     esac
1413     new=\`eval '(for i in \$'\$var '; do echo \$trans | sed s/\$pat/\$i/; done)'\`
1414     list="\$list \$new"
1415     done
1416     done
1417    
1418     echo \$list
1419     # end of configure-generated script
1420     EOF
1421     chmod 755 scripts/modnam
1422     ]) # AC_F90_MODULE_NAMES
1423    
1424     dnl
1425     dnl These functions were taken from the GRASS GIS toolkit:
1426     dnl
1427     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1428     dnl
1429    
1430     AC_DEFUN(LOC_CHECK_USE,[
1431     AC_MSG_CHECKING(whether to use $2)
1432     AC_MSG_RESULT("$with_$1")
1433     case "$with_$1" in
1434     "no") $3= ;;
1435     "yes") $3="1" ;;
1436     *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
1437     esac
1438    
1439     ])
1440    
1441     AC_DEFUN(LOC_CHECK_INC_PATH,[
1442     AC_MSG_CHECKING(for location of $2 includes)
1443     case "$with_$1_includes" in
1444     y | ye | yes | n | no)
1445     AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
1446     ;;
1447     esac
1448     AC_MSG_RESULT($with_$1_includes)
1449    
1450     if test -n "$with_$1_includes" ; then
1451     for dir in $with_$1_includes; do
1452     if test -d "$dir"; then
1453     $3="$$3 -I$dir"
1454     else
1455     AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
1456     fi
1457     done
1458     fi
1459     ])
1460    
1461     AC_DEFUN(LOC_CHECK_LIB_PATH,[
1462     AC_MSG_CHECKING(for location of $2 library)
1463     case "$with_$1_libs" in
1464     y | ye | yes | n | no)
1465     AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
1466     ;;
1467     esac
1468     AC_MSG_RESULT($with_$1_libs)
1469    
1470     if test -n "$with_$1_libs"; then
1471     for dir in $with_$1_libs; do
1472     if test -d "$dir"; then
1473     $3="$$3 -L$dir"
1474     else
1475     AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
1476     fi
1477     done
1478     fi
1479     ])
1480    
1481     AC_DEFUN(LOC_CHECK_SHARE_PATH,[
1482     AC_MSG_CHECKING(for location of $2 data files)
1483     case "$with_$1_share" in
1484     y | ye | yes | n | no)
1485     AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
1486     ;;
1487     esac
1488     AC_MSG_RESULT($with_$1_share)
1489    
1490     if test -n "$with_$1_share" ; then
1491     if test -d "$with_$1_share"; then
1492     $3="$with_$1_share"
1493     else
1494     AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
1495     fi
1496     fi
1497     ])
1498    
1499     AC_DEFUN(LOC_CHECK_INCLUDES,[
1500     ac_save_cppflags="$CPPFLAGS"
1501     CPPFLAGS="$3 $CPPFLAGS"
1502     AC_CHECK_HEADERS($1, [], ifelse($4,[],[
1503     AC_MSG_ERROR([*** Unable to locate $2 includes.])
1504     ], $4))
1505     CPPFLAGS=$ac_save_cppflags
1506     ])
1507    
1508     dnl autoconf undefines "shift", so use "builtin([shift], ...)"
1509    
1510     define(LOC_SHIFT1,[builtin([shift],$*)])
1511     define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
1512     define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
1513     define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
1514     define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
1515    
1516     dnl $1 = library
1517     dnl $2 = function
1518     dnl $3 = descriptive name
1519     dnl $4 = LDFLAGS initialiser
1520     dnl $5 = result variable
1521     dnl $6 = mandatory dependencies (not added to $5)
1522     dnl $7 = mandatory dependencies (added to $5)
1523     dnl $8 = ACTION-IF-NOT-FOUND
1524     dnl $9+ = optional dependencies
1525    
1526     define(LOC_CHECK_LIBS_0,[
1527     AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
1528     [$8]
1529     ],$6 $7)
1530     ])
1531    
1532     define(LOC_CHECK_LIBS_1,[
1533     ifelse($9,[],
1534     LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1535     [
1536     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1537     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1538     LOC_SHIFT9($*))
1539     ]
1540     )
1541     ])
1542    
1543     define(LOC_CHECK_LIBS,[
1544     ac_save_ldflags="$LDFLAGS"
1545     LDFLAGS="$4 $LDFLAGS"
1546     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1547     LDFLAGS=${ac_save_ldflags}
1548     ifelse($8,[],[
1549     AC_MSG_ERROR([*** Unable to locate $3 library.])
1550     ],$8),LOC_SHIFT8($*))
1551     LDFLAGS=${ac_save_ldflags}
1552     ])
1553    
1554     AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1555     AC_MSG_CHECKING($3 version)
1556     ac_save_cppflags="$CPPFLAGS"
1557     CPPFLAGS="$5 $CPPFLAGS"
1558     AC_TRY_RUN([
1559     #include <stdio.h>
1560     #include <$1>
1561     int main(void) {
1562     FILE *fp = fopen("conftestdata","w");
1563     fputs($2, fp);
1564     return 0;
1565     }
1566     ],
1567     [ $4=`cat conftestdata`
1568     AC_MSG_RESULT($$4)],
1569     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1570     [ $4=$6
1571     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1572     CPPFLAGS=$ac_save_cppflags
1573     ])
1574    
1575     AC_DEFUN(LOC_CHECK_SHARE,[
1576     AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1577     AC_MSG_ERROR([*** Unable to locate $2 data files.])
1578     ], $4))
1579     ])
1580    
1581     AC_DEFUN(LOC_CHECK_VERSION_INT,[
1582     AC_MSG_CHECKING($3 version)
1583     ac_save_cppflags="$CPPFLAGS"
1584     CPPFLAGS="$5 $CPPFLAGS"
1585     AC_TRY_RUN([
1586     #include <stdio.h>
1587     #include <$1>
1588     int main(void) {
1589     FILE *fp = fopen("conftestdata","w");
1590     fprintf(fp, "%d", $2);
1591     return 0;
1592     }
1593     ],
1594     [ $4=`cat conftestdata`
1595     AC_MSG_RESULT($$4)],
1596     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1597     [ $4=$6
1598     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1599     CPPFLAGS=$ac_save_cppflags
1600     ])
1601    
1602     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1603    
1604     AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1605     ],substr([ ],len($1)))])
1606    
1607     AC_DEFUN(LOC_ARG_WITH,[
1608     AC_ARG_WITH($1,
1609     LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1610     [with_$1=]ifelse([$3],,yes,[$3]))
1611     ])
1612    
1613     AC_DEFUN(LOC_ARG_WITH_INC,[
1614     AC_ARG_WITH($1-includes,
1615     LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1616     ])
1617    
1618     AC_DEFUN(LOC_ARG_WITH_LIB,[
1619     AC_ARG_WITH($1-libs,
1620     LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1621     ])
1622    
1623     AC_DEFUN(LOC_ARG_WITH_SHARE,[
1624     AC_ARG_WITH($1-share,
1625     LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1626     ])
1627    
1628     AC_DEFUN(LOC_OPTIONAL,[
1629     AC_MSG_CHECKING(whether to build $1)
1630     if test -n "$USE_$2" ; then
1631     AC_MSG_RESULT(yes)
1632     BUILD_$3="$4"
1633     else
1634     AC_MSG_RESULT(no)
1635     BUILD_$3=
1636     fi
1637     AC_SUBST(BUILD_$3)
1638     ])
1639    
1640     AC_DEFUN(LOC_MSG,[
1641     echo "$1"
1642     ])
1643    
1644     AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1645    
1646     AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1647    
1648     AC_DEFUN(LOC_MSG_USE,[
1649     [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])