ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/ac-tools/OOPSE.m4
Revision: 3545
Committed: Tue Oct 20 13:13:16 2009 UTC (14 years, 10 months ago) by gezelter
File size: 45687 byte(s)
Log Message:
fixing mpi configure

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 gezelter 3545 AC_CACHE_CHECK(whether ${CC} accepts $1, ac_cv_$2,
158 gezelter 2753 [echo 'void f(){}' > conftest.c
159     if test -z "`${CC} $1 -c conftest.c 2>&1`"; then
160 gezelter 3545 ac_cv_$2=yes
161 gezelter 2753 else
162 gezelter 3545 ac_cv_$2=no
163 gezelter 2753 fi
164     rm -f conftest*
165     ])
166 gezelter 3545 if test "$ac_cv_$2" = yes; then
167 gezelter 2753 :
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 gezelter 3545 AC_CACHE_CHECK(whether ${CXX} accepts $1, ac_cv_$2,
179 gezelter 2753 [echo 'void f(){}' > conftest.cpp
180     if test -z "`${CXX} $1 -c conftest.cpp 2>&1`"; then
181 gezelter 3545 ac_cv_$2=yes
182 gezelter 2753 else
183 gezelter 3545 ac_cv_$2=no
184 gezelter 2753 fi
185     rm -f conftest*
186     ])
187 gezelter 3545 if test "$ac_cv_$2" = yes; then
188 gezelter 2753 :
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 gezelter 3545 AC_CACHE_CHECK(whether ${FC} accepts $1, ac_cv_$2,
204 gezelter 2753 [
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 gezelter 3545 ac_cv_$2=yes
212 gezelter 2753 else
213 gezelter 3545 ac_cv_$2=no
214 gezelter 2753 fi
215     rm -f conftest*
216     AC_LANG_RESTORE()
217     ])
218 gezelter 3545 if test "$ac_cv_$2" = yes; then
219 gezelter 2753 :
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 gezelter 3386 CFLAGS="-O2"
359 gezelter 2753 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 gezelter 3386 if test "$CC" = xlc; then
390 gezelter 2753 CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
391     fi
392     if test "$CC" = icc; then
393 gezelter 3386 CFLAGS="-O2"
394     fi
395     if test $ac_cv_prog_really_gcc = yes; then
396     CFLAGS="-Os"
397 gezelter 2753 fi;;
398     esac
399    
400     # use default flags for gcc on all systems
401 gezelter 3386 if test $ac_cv_prog_really_gcc = yes -a -z "$CFLAGS"; then
402     CFLAGS="-O2"
403 gezelter 2753 fi
404    
405     if test -z "$CFLAGS"; then
406     echo ""
407     echo "********************************************************"
408     echo "* WARNING: Don't know the best CFLAGS for this system *"
409     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
410 gezelter 3386 echo "* (otherwise, a default of CFLAGS=-O will be used) *"
411 gezelter 2753 echo "********************************************************"
412     echo ""
413 gezelter 3386 CFLAGS="-O"
414 gezelter 2753 fi
415    
416 gezelter 3545 ACX_CHECK_CC_FLAGS(${CFLAGS}, ac_cv_guessed_cflags, , [
417 gezelter 2753 echo ""
418     echo "********************************************************"
419     echo "* WARNING: The guessed CFLAGS don't seem to work with *"
420     echo "* your compiler. *"
421     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
422     echo "********************************************************"
423     echo ""
424     CFLAGS=""
425     ])
426    
427     fi
428     ])
429    
430     AC_DEFUN(ACX_PROG_CXX_MAXOPT,
431     [
432     AC_REQUIRE([AC_PROG_CXX])
433     AC_REQUIRE([AC_CANONICAL_HOST])
434    
435     ACX_PROG_REALLY_GXX
436    
437     # Try to determine "good" native compiler flags if none specified on command
438     # line
439     if test "$ac_test_CXXFLAGS" != "set"; then
440     CXXFLAGS=""
441     case "${host_cpu}-${host_os}" in
442    
443     *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
444 gezelter 3386 CXXFLAGS="-O2"
445 gezelter 2753 fi;;
446     sparc-solaris2*) if test "$CXX" = CC; then
447     CXXFLAGS="-features=extensions -O -dalign"
448     fi;;
449     rs6000*-aix*) if test "$CXX" = xlC; then
450     CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
451     fi;;
452     powerpc*-aix*)
453     if test "$CXX" = xlC; then
454     CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
455     echo "*******************************************************"
456     echo "* You have AIX on an unknown powerpc system. It is *"
457     echo "* recommended that you use *"
458     echo "* *"
459     echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
460     echo "* ^^^ *"
461     echo "* where xxx is 601, 603, 604, or whatever kind of *"
462     echo "* PowerPC CPU you have. For more info, man cc. *"
463     echo "*******************************************************"
464     fi;;
465     *darwin*)
466     if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
467     CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
468     fi
469     if test "$CXX" = icpc; then
470 gezelter 3386 CXXFLAGS="-O2"
471     fi
472     if test $ac_cv_prog_really_gxx = yes; then
473     CXXFLAGS="-Os"
474 gezelter 2753 fi;;
475     esac
476    
477     # use default flags for gcc on all systems
478 gezelter 3386 if test $ac_cv_prog_really_gxx = yes -a -z "$CXXFLAGS"; then
479     CXXFLAGS="-O2"
480 gezelter 2753 fi
481    
482     if test -z "$CXXFLAGS"; then
483     echo ""
484     echo "**********************************************************"
485     echo "* WARNING: Don't know the best CXXFLAGS for this system *"
486     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
487 gezelter 3386 echo "* (otherwise, a default of CXXFLAGS=-O will be used) *"
488 gezelter 2753 echo "**********************************************************"
489     echo ""
490 gezelter 3386 CXXFLAGS="-O"
491 gezelter 2753 fi
492    
493 gezelter 3545 ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, ac_cv_guessed_cxxflags, , [
494 gezelter 2753 echo ""
495     echo "**********************************************************"
496     echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
497     echo "* your compiler. *"
498     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
499     echo "**********************************************************"
500     echo ""
501     CXXFLAGS=""
502     ])
503    
504     fi
505     ])
506    
507     AC_DEFUN(ACX_PROG_FC_MAXOPT,
508     [
509     AC_REQUIRE([AC_PROG_FC])
510     AC_REQUIRE([AC_CANONICAL_HOST])
511    
512 gezelter 3386
513 gezelter 2753 # Try to determine "good" native compiler flags if none specified on command
514     # line
515    
516     if test "$ac_test_FFLAGS" != "set"; then
517     FCFLAGS=""
518     case "${host_cpu}-${host_os}" in
519    
520     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
521 gezelter 3386 FCFLAGS="-O2"
522 gezelter 2753 fi;;
523     rs6000*-aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
524     FCFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
525     fi;;
526     powerpc*-aix*)
527     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
528     FCFLAGS="-O3 -qarch=ppc -qansialias -w"
529     echo "*******************************************************"
530     echo "* You have AIX on an unknown powerpc system. It is *"
531     echo "* recommended that you use *"
532     echo "* *"
533     echo "* FCFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
534     echo "* ^^^ *"
535     echo "* where xxx is 601, 603, 604, or whatever kind of *"
536     echo "* PowerPC CPU you have. For more info, man xlf. *"
537     echo "*******************************************************"
538     fi;;
539     *darwin*)
540     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
541     FCFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto"
542     fi
543     if test "$FC" = ifort; then
544 gezelter 3386 FCFLAGS="-O2"
545     fi
546     if test "$FC" = gfortran; then
547     FCFLAGS="-Os"
548 gezelter 2753 fi;;
549     esac
550    
551     if test -z "$FCFLAGS"; then
552     echo ""
553     echo "*********************************************************"
554     echo "* WARNING: Don't know the best FCFLAGS for this system *"
555     echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
556 gezelter 3386 echo "* (otherwise, a default of FCFLAGS=-O will be used) *"
557 gezelter 2753 echo "*********************************************************"
558     echo ""
559 gezelter 3386 FCFLAGS="-O"
560 gezelter 2753 fi
561    
562 gezelter 3545 ACX_CHECK_FC_FLAGS(${FCFLAGS}, ac_cv_guessed_f90flags, , [
563 gezelter 2753 echo ""
564     echo "**********************************************************"
565     echo "* WARNING: The guessed FCFLAGS don't seem to work with *"
566     echo "* your compiler. *"
567     echo "* Use make FCFLAGS=..., or edit the top level Makefile *"
568     echo "*********************************************************"
569     echo ""
570     FCFLAGS=""
571     ])
572    
573     fi
574     ])
575    
576     AC_DEFUN(ACX_PROG_F90_PREPFLAG,
577     [
578     AC_REQUIRE([AC_PROG_FC])
579     AC_REQUIRE([AC_CANONICAL_HOST])
580    
581     # Try to determine native compiler flags that allow us to use F90 suffix
582     # for preprocessed f90 source.
583    
584     if test "$ac_test_PREPFLAG" != "set"; then
585     PREPFLAG=""
586     case "${host_cpu}-${host_os}" in
587    
588     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
589     PREPFLAG="-fpp1 "
590     fi;;
591     *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
592     PREPFLAG="-qsuffix=cpp=F90 "
593     fi;;
594     *darwin*)
595     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
596     PREPFLAG="-qsuffix=cpp=F90 "
597     fi;;
598     esac
599    
600     if test -z "$PREPFLAG"; then
601     AC_MSG_WARN("Using empty PREPFLAG")
602     PREPFLAG=""
603     fi
604    
605     AC_MSG_CHECKING(to make sure F90 preprocessor flag works)
606     AC_LANG_SAVE()
607     AC_LANG(Fortran)
608     ac_save_ext=$ac_ext
609     ac_ext=F90
610     ac_save_FCFLAGS_SRCEXT=$FCFLAGS_SRCEXT
611    
612     AS_IF([test "$PREPFLAG"], [FCFLAGS_SRCEXT="${PREPFLAG}"])
613     _AC_COMPILE_IFELSE([
614     AC_LANG_SOURCE([
615     program conftest
616     integer :: i
617     i = 1
618     end program conftest
619     ])], [prepflagworks=1], [prepflagworks=0])
620    
621     FCFLAGS_SRCEXT=$ac_save_FCFLAGS_SRCEXT
622     ac_ext=$ac_save_ext
623     AC_LANG_RESTORE()
624    
625     if test "$prepflagworks" = 1; then
626     AC_MSG_RESULT(yes)
627     FCFLAGS_SRCEXT="${PREPFLAG}"
628     AC_SUBST(FCFLAGS_SRCEXT)
629     else
630     AC_MSG_RESULT(no)
631     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor flag])
632     fi
633     fi
634     ])
635    
636    
637     AC_DEFUN(ACX_PROG_F90_PREPDEFFLAG,
638     [
639     AC_REQUIRE([AC_PROG_FC])
640     AC_REQUIRE([AC_CANONICAL_HOST])
641    
642     # Try to determine native compiler flags that allow us to use F90 suffix
643     # for preprocessed f90 source with -D type defines
644    
645     if test "$ac_test_PREPDEFFLAG" != "set"; then
646     PREPDEFFLAG=""
647     case "${host_cpu}-${host_os}" in
648    
649     *linux*) if test "$FC" = ifc -o "$FC" = ifort; then
650     PREPDEFFLAG=" "
651     fi;;
652     *aix*) if test "$FC" = xlf90 -o "$FC" = f90 -o "$FC" = xlf95; then
653     PREPDEFFLAG="-WF,"
654     fi;;
655     *darwin*)
656     if test "$FC" = f90 -o "$FC" = xlf90 -o "$FC" = xlf95; then
657     PREPDEFFLAG="-WF,"
658     fi;;
659     esac
660    
661     if test -z "$PREPDEFFLAG"; then
662     AC_MSG_WARN("Using empty PREPDEFFLAG")
663     PREPDEFFLAG=" "
664     fi
665    
666     AC_MSG_CHECKING(to make sure F90 preprocessor define flag works)
667     AC_LANG_SAVE()
668     AC_LANG(Fortran)
669     ac_save_ext=$ac_ext
670     ac_ext=F90
671     ac_save_FCFLAGS=$FCFLAGS
672    
673     AS_IF([test "$PREPDEFFLAG"], [FCFLAGS="${FCFLAGS} ${PREPDEFFLAG}-DTEST"])
674     _AC_COMPILE_IFELSE([
675     AC_LANG_SOURCE([
676     program conftest
677     integer :: i
678     #ifdef TEST
679     i = 1
680     #else
681     choke me
682     #endif
683     end program conftest
684     ])], [prepdefflagworks=1], [prepdefflagworks=0])
685    
686     FCFLAGS=$ac_save_FCFLAGS
687     ac_ext=$ac_save_ext
688     AC_LANG_RESTORE()
689    
690     if test "$prepdefflagworks" = 1; then
691     AC_MSG_RESULT(yes)
692     AC_SUBST(PREPDEFFLAG)
693     else
694     AC_MSG_RESULT(no)
695     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor define flag])
696     fi
697     fi
698     ])
699    
700    
701    
702    
703     AC_DEFUN([adl_FUNC_GETOPT_LONG],
704     [AC_PREREQ(2.49)dnl
705     # clean out junk possibly left behind by a previous configuration
706     rm -f src/getopt.h
707     # Check for getopt_long support
708     AC_CHECK_HEADERS([getopt.h])
709     AC_CHECK_FUNCS([getopt_long],,
710     [# FreeBSD has a gnugetopt library for this
711     AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
712     [# use the GNU replacement
713     AC_LIBOBJ(getopt)
714     AC_LIBOBJ(getopt1)
715     AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
716    
717    
718     AC_DEFUN([ACX_CONFIG_HOME], [
719     myDir=${0%/*}
720     if [ "$myDir" = "$0" ]; then
721     # Ran from local directory
722     myDir=$PWD
723     fi
724     # Resolve symlinks.
725     myProgram="$0"
726     while [ -L "$myProgram" ]; do
727     ls=`/bin/ls -ld "$myProgram"`
728     link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
729     if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
730     myProgram="$link"
731     else
732     myProgram="`AS_DIRNAME([$myProgram])`/$link"
733     fi
734     done
735     myDir=`AS_DIRNAME([$myProgram])`
736     fi
737     CONFIG_HOME=$myDir
738     ])
739    
740     AC_DEFUN(BB_ENABLE_DOXYGEN,
741     [
742     AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
743     AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
744     AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
745     AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
746     if test "x$enable_doxygen" = xno; then
747     enable_doc=no
748     else
749     AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
750     if test "x$DOXYGEN" = x; then
751     if test "x$enable_doxygen" = xyes; then
752     AC_MSG_ERROR([could not find doxygen])
753     fi
754     enable_doc=no
755     else
756     enable_doc=yes
757     AC_PATH_PROG(DOT, dot, , $PATH)
758     fi
759     fi
760    
761     if test "x$enable_doc" = xyes; then
762     DOC=1
763     else
764     DOC=0
765     fi
766     AC_SUBST(DOC)
767    
768     if test x$DOT = x; then
769     if test "x$enable_dot" = xyes; then
770     AC_MSG_ERROR([could not find dot])
771     fi
772     enable_dot=no
773     else
774     enable_dot=yes
775     fi
776     AC_SUBST(enable_dot)
777     AC_SUBST(enable_html_docs)
778     AC_SUBST(enable_latex_docs)
779     ])
780     #
781     #
782     #
783     AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
784    
785     AC_PATH_PROG(PERLINTERP,perl,perl)
786     ac_cv_path_perlinterp="$PERLINTERP"
787     _sHpB='#!'
788    
789     AC_ARG_WITH(perl-shebang,
790     AC_HELP_STRING([--with-perl-shebang],
791     [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
792     ),
793     [opt_perl_shebang="$withval"]dnl
794     ,dnl
795     [opt_perl_shebang="not_set"]dnl
796     )dnl
797    
798     AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
799     ax_cv_opt_perl_shebang,
800     [ case "$opt_perl_shebang" in
801     not_set ) ax_cv_opt_perl_shebang=''
802     ;;
803     * )
804     ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
805     esac
806     ]dnl
807     )dnl
808    
809     if test "A$ax_cv_opt_perl_shebang" != "A"
810     then
811     ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
812     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
813     AC_SUBST(PERL_SHEBANG)dnl
814     AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
815    
816     # Automatic detection of sharpbang formula starts here
817     else dnl
818    
819     _somian_shbangperl=`$PERLINTERP -V:startperl`
820     negclass="[[^']]"; dnl
821     # must leave this comment: m4 will remove the outer brackets for us, heheh
822     AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
823     ac_cv_sys_kernshrpbang_perl,
824     [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
825     if test "x$_somian_kspb_perl" == x
826     then _somian_ksbp_warn_empty='durnit'
827     else
828     case "A$_somian_kspb_perl" in
829     A#!*perl* )
830     ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
831     ;;
832     A* ) _somian_ksbp_warn_defau='trouble'
833     ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
834     esac
835     fi
836     ])dnl Done with testing sharpbang
837    
838     # The above prints Checking ... result message to user.
839     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
840     AC_SUBST(PERL_SHEBANG)
841     if test A${_somian_ksbp_warn_empty+set} == Aset
842     then AC_MSG_WARN([dnl
843     In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
844     fi
845     # Inform user after printing result value
846     if test A${_somian_ksbp_warn_defau+set} == Aset
847     then AC_MSG_NOTICE([Maybe Not good -])
848     AC_MSG_WARN([dnl
849     In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
850     else AC_MSG_NOTICE([OK Good result - ])
851     AC_MSG_NOTICE([dnl
852     In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
853     dnl Done with user info messages
854     fi
855     dnl Outer loop checked for user override term here
856     fi dnl
857    
858     ])dnl EOMACRO DEF
859    
860     AC_DEFUN([ACX_CHECK_ZLIB],
861     #
862     # Handle user hints
863     #
864 gezelter 2754 [AC_ARG_WITH(zlib,
865     AC_HELP_STRING([--with-zlib=DIR],
866     [root directory path of zlib installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
867     ),
868     [zlib_dir="$withval"]dnl
869     ,dnl
870     [zlib_dir="not_set"]dnl
871     )dnl
872    
873     if test "$zlib_dir" != "no"; then
874    
875     if test "$zlib_dir" != "not_set" ; then
876     if test -d "$zlib_dir"
877 gezelter 2753 then
878 gezelter 2754 ZLIB_HOME="$zlib_dir"
879 gezelter 2753 else
880 gezelter 2754 AC_MSG_WARN([Sorry, $zlib_dir does not exist, checking usual places])
881 chuckv 3291 ZLIB_HOME=/usr/local
882     if test ! -f "${ZLIB_HOME}/include/zlib.h"
883     then
884     ZLIB_HOME=/usr
885     fi
886 gezelter 2753 fi
887 gezelter 2754 fi
888 gezelter 2753 #
889     # Locate zlib, if wanted
890     #
891     if test -n "${ZLIB_HOME}"
892     then
893     ZLIB_OLD_LDFLAGS=$LDFLAGS
894 chuckv 3291 ZLIB_OLD_CFLAGS=$CFLAGS
895 gezelter 2753 LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
896 chuckv 3291 CFLAGS="$CFLAGS -I${ZLIB_HOME}/include"
897 gezelter 2753 AC_LANG_SAVE
898     AC_LANG_C
899     AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
900     AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
901     AC_LANG_RESTORE
902 gezelter 2754
903     if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"; then
904     AC_DEFINE(HAVE_ZLIB_H, 1, [have zlib.h])
905     AC_DEFINE(HAVE_LIBZ, 1, [have libz.a])
906     ZLIB_INC_DIR="${ZLIB_HOME}/include"
907     ZLIB_LIB_DIR="${ZLIB_HOME}/lib"
908     ZLIB="-lz"
909 gezelter 2753 else
910     AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
911 gezelter 2754 ZLIB_INC_DIR=
912     ZLIB_LIB_DIR=
913     ZLIB=
914 gezelter 2753 LDFLAGS="$ZLIB_OLD_LDFLAGS"
915 chuckv 3291 CFLAGS="$ZLIB_OLD_CFLAGS"
916 gezelter 2753 AC_MSG_RESULT(failed)
917 gezelter 2754 echo ""
918     echo "*********************************************************"
919     echo "* WARNING: Could not find a working zlib installation *"
920     echo "* If you need OOPSE to be able to deal with compressed *"
921     echo "* trajectory dump files be sure to specify a valid zlib *"
922     echo "* installation with --with-zlib=DIR *"
923     echo "* *"
924     echo "* OOPSE will still work without zlib installed. *"
925     echo "*********************************************************"
926     echo ""
927 gezelter 2753 fi
928 gezelter 2754 AC_SUBST(ZLIB_INC_DIR)
929     AC_SUBST(ZLIB_LIB_DIR)
930     AC_SUBST(ZLIB)
931 gezelter 2753 fi
932 gezelter 2754 fi
933 gezelter 2753 ])
934    
935 chuckv 3291 AC_DEFUN([ACX_CHECK_QHULL],
936 gezelter 3467 #
937 chuckv 3291 # Handle user hints
938     #
939     [AC_ARG_WITH(qhull,
940 gezelter 3467 AC_HELP_STRING([--with-qhull=DIR],
941     [root directory path of qhull installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
942 chuckv 3291 ),
943 gezelter 3467 [qhull_dir="$withval"],
944     [qhull_dir="not_set"]dnl
945     )dnl
946 gezelter 2754
947 gezelter 3467 QHULL_INC_DIR=
948     QHULL_LIB_DIR=
949     QHULL=
950     USE_QHULL=no
951    
952 chuckv 3291 if test "$qhull_dir" != "no"; then
953 gezelter 3467 if test "$qhull_dir" != "not_set" ; then
954     if test -d "$qhull_dir"; then
955     QHULL_HOME="$qhull_dir"
956     else
957     AC_MSG_WARN([Sorry, $qhull_dir does not exist, checking usual places])
958     QHULL_HOME=/usr/local
959     if test ! -f "${QHULL_HOME}/include/qhull/qhull.h"; then
960     QHULL_HOME=/usr
961     fi
962     fi
963     fi
964     #
965     # Locate qhull, if wanted
966     #
967     if test -n "${QHULL_HOME}"; then
968     AC_MSG_NOTICE([Checking for qhull in ${QHULL_HOME}])
969 gezelter 3343 AC_LANG_SAVE
970     AC_LANG_C
971 chuckv 3291 QHULL_OLD_LDFLAGS=$LDFLAGS
972     QHULL_OLD_CFLAGS=$CFLAGS
973 gezelter 3343 QHULL_OLD_CPPFLAGS=$CPPFLAGS
974 chuckv 3291 LDFLAGS="$LDFLAGS -L${QHULL_HOME}/lib"
975     CFLAGS="$CFLAGS -I${QHULL_HOME}/include"
976 gezelter 3343 CPPFLAGS="$CPPFLAGS -I${QHULL_HOME}/include"
977     AC_CHECK_HEADER(qhull/qhull.h, [qhull_cv_qhull_h=yes], [qhull_cv_qhull_h=no])
978 chuckv 3291 AC_CHECK_LIB(qhull, qh_qhull, [qhull_cv_libqhull=yes], [qhull_cv_libqhull=no])
979 gezelter 3343 LDFLAGS="$QHULL_OLD_LDFLAGS"
980     CFLAGS="$QHULL_OLD_CFLAGS"
981     CPPFLAGS="$QHULL_OLD_CPPFLAGS"
982 chuckv 3291 AC_LANG_RESTORE
983    
984     if test "$qhull_cv_libqhull" = "yes" -a "$qhull_cv_qhull_h" = "yes"; then
985 gezelter 3467 AC_DEFINE(HAVE_QHULL_H, 1, [have qhull.h])
986     AC_DEFINE(HAVE_QHULL, 1, [have libqhull.a])
987     USE_QHULL=yes
988     QHULL_INC_DIR="${QHULL_HOME}/include"
989     QHULL_LIB_DIR="${QHULL_HOME}/lib"
990     QHULL="-lqhull"
991     AC_MSG_RESULT([Working qhull found, will proceed.])
992 chuckv 3291 else
993 gezelter 3467 AC_MSG_WARN([])
994     AC_MSG_WARN([Could not find a working qhull installation])
995     AC_MSG_WARN([If you need OOPSE to be able to deal with convex ])
996     AC_MSG_WARN([hulls be sure to specify a valid qhull installation ])
997     AC_MSG_WARN([with --with-qhull=DIR ])
998     AC_MSG_WARN([])
999     AC_MSG_WARN([OOPSE will still work without qhull installed. ])
1000     AC_MSG_WARN([])
1001 chuckv 3291 fi
1002 gezelter 3467 fi
1003 chuckv 3291 fi
1004 gezelter 3467 AC_SUBST(QHULL_INC_DIR)
1005     AC_SUBST(QHULL_LIB_DIR)
1006     AC_SUBST(QHULL)
1007     AC_SUBST(USE_QHULL)
1008 chuckv 3291 ])
1009    
1010 gezelter 3319 AC_DEFUN([ACX_CHECK_OPENBABEL],
1011     #
1012     # Handle user hints
1013     #
1014     [AC_ARG_WITH(openbabel,
1015     AC_HELP_STRING([--with-openbabel=DIR],
1016     [root directory path of openbabel-2.x installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1017     ),
1018     [openbabel_dir="$withval"]dnl
1019     ,dnl
1020     [openbabel_dir="not_set"]dnl
1021     )dnl
1022 chuckv 3291
1023 gezelter 3319 if test "$openbabel_dir" != "no"; then
1024    
1025     if test "$openbabel_dir" != "not_set" ; then
1026     if test -d "$openbabel_dir"
1027     then
1028     OPENBABEL_HOME="$openbabel_dir"
1029     else
1030     AC_MSG_WARN([Sorry, $openbabel_dir does not exist, checking usual places])
1031     OPENBABEL_HOME=/usr/local
1032     if test ! -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/babelconfig.h" -a -f "${OPENBABEL_HOME}/include/openbabel-2.0/openbabel/obconversion.h"
1033     then
1034     OPENBABEL_HOME=/usr
1035     fi
1036     fi
1037     fi
1038     #
1039     # Locate openbabel, if wanted
1040     #
1041     if test -n "${OPENBABEL_HOME}"
1042     then
1043     AC_LANG_SAVE
1044     AC_LANG_CPLUSPLUS
1045     OPENBABEL_OLD_LDFLAGS=$LDFLAGS
1046     OPENBABEL_OLD_CPPFLAGS=$CPPFLAGS
1047     LDFLAGS="$LDFLAGS -L${OPENBABEL_HOME}/lib -lopenbabel"
1048     CPPFLAGS="$CPPFLAGS -I${OPENBABEL_HOME}/include/openbabel-2.0"
1049 gezelter 3332 AC_CHECK_HEADER(openbabel/babelconfig.h, [openbabel_cv_openbabel_h=yes], [openbabel_cv_openbabel_h=no])
1050     AC_CHECK_HEADER(openbabel/obconversion.h, [openbabel_cv_obconversion_h=yes], [openbabel_cv_obconversion_h=no])
1051 gezelter 3319 AC_LINK_IFELSE([
1052     AC_LANG_PROGRAM(
1053     [[
1054     @%:@include <openbabel/babelconfig.h>
1055     @%:@include <openbabel/obconversion.h>
1056     using namespace std;
1057     using namespace OpenBabel;
1058     ]],
1059     [[
1060     OBConversion Conv(&cin, &cout);
1061     ]]
1062     )],
1063     [
1064     openbabel_lib_found="yes"
1065     AC_MSG_RESULT([found])
1066     ],
1067     [
1068     openbabel_lib_found="no"
1069     AC_MSG_RESULT([not found])
1070     ]
1071     )
1072     AC_LANG_RESTORE
1073     LDFLAGS="$OPENBABEL_OLD_LDFLAGS"
1074     CPPFLAGS="$OPENBABEL_OLD_CPPFLAGS"
1075    
1076     if test "$openbabel_lib_found" = "yes" -a "$openbabel_cv_openbabel_h" = "yes" -a "$openbabel_cv_obconversion_h" = "yes"; then
1077     USE_OPENBABEL=yes
1078     OPENBABEL_INC_DIR="${OPENBABEL_HOME}/include/openbabel-2.0"
1079     OPENBABEL_LIB_DIR="${OPENBABEL_HOME}/lib"
1080     OPENBABEL_LIB="-lopenbabel"
1081     else
1082     AC_MSG_CHECKING(openbabel in ${OPENBABEL_HOME})
1083     OPENBABEL_INC_DIR=
1084     OPENBABEL_LIB_DIR=
1085     OPENBABEL_LIB=
1086     USE_OPENBABEL=no
1087     AC_MSG_RESULT(failed)
1088     echo ""
1089     echo "*********************************************************"
1090     echo "* WARNING: Could not find a working openbabel-2.x *"
1091     echo "* installation If you need OOPSE to be able to convert *"
1092     echo "* xyz or pdb files you need to specify a valid *"
1093     echo "* openbabel-2.x installation with --with-openbabel=DIR *"
1094     echo "* *"
1095     echo "* OOPSE will still work without openbabel installed. *"
1096     echo "*********************************************************"
1097     echo ""
1098     fi
1099     AC_SUBST(OPENBABEL_INC_DIR)
1100     AC_SUBST(OPENBABEL_LIB_DIR)
1101     AC_SUBST(OPENBABEL_LIB)
1102     AC_SUBST(USE_OPENBABEL)
1103     fi
1104     fi
1105     ])
1106    
1107    
1108 gezelter 2753 AC_DEFUN([ACX_CHECK_FFTW],
1109     #
1110     # Handle user hints
1111     #
1112     [AC_ARG_WITH(fftw,
1113 xsun 2932 AC_HELP_STRING([--with-fftw=DIR],
1114     [root directory path of fftw installation (defaults to /usr/local or /usr if not found in /usr/local)]dnl
1115 gezelter 2753 ),
1116 xsun 2932 [fftw_dir="$withval"]dnl
1117 gezelter 2753 ,dnl
1118 xsun 2932 [fftw_dir="not_set"]dnl
1119 gezelter 2753 )dnl
1120    
1121     if test "$fftw_dir" != "no"; then
1122 xsun 2932 if test "$fftw_dir" != "not_set" ; then
1123     if test -d "$fftw_dir"; then
1124     FFTW_HOME="$fftw_dir"
1125     else
1126     AC_MSG_WARN([Sorry, $fftw_dir does not exist, checking usual places])
1127     FFTW_HOME=/usr/local
1128     if test ! -f "${FFTW_HOME}/include/fftw3.h" -o -f "${FFTW_HOME}/include/fftw.h" -o -f "${FFTW_HOME}/include/dfftw.h"; then
1129 gezelter 2753 FFTW_HOME=/usr
1130 xsun 2932 fi
1131     fi
1132     #
1133     # Locate fftw, if wanted
1134     #
1135     if test -n "${FFTW_HOME}"; then
1136     FFTW_OLD_LDFLAGS=$LDFLAGS
1137 chuckv 3291 FFTW_OLD_CFLAGS=$CFLAGS
1138 xsun 2932 LDFLAGS="$LDFLAGS -L${FFTW_HOME}/lib"
1139 chuckv 3291 CFLAGS="$CFLAGS -I${FFTW_HOME}/include"
1140 xsun 2932 AC_LANG_SAVE
1141     AC_LANG_C
1142     AC_CHECK_LIB(fftw3, fftw_execute, [fftw_cv_libfftw3=yes], [fftw_cv_libfftw3=no])
1143     AC_CHECK_HEADER(fftw3.h, [fftw_cv_fftw3_h=yes], [fftw_cv_fftw3_h=no])
1144     if test "$fftw_cv_libfftw3" = "no" -o "$fftw_cv_fftw3_h" = "no"; then
1145     AC_CHECK_LIB(fftw, fftwnd_one, [fftw_cv_libfftw=yes], [fftw_cv_libfftw=no])
1146     AC_CHECK_HEADER(fftw.h, [fftw_cv_fftw_h=yes], [fftw_cv_fftw_h=no])
1147     if test "$fftw_cv_libfftw" = "no" -o "$fftw_cv_fftw_h" = "no"; then
1148     AC_CHECK_LIB(dfftw, fftwnd_one, [fftw_cv_libdfftw=yes], [fftw_cv_libdfftw=no])
1149     AC_CHECK_HEADER(dfftw.h, [fftw_cv_dfftw_h=yes], [fftw_cv_dfftw_h=no])
1150     fi
1151     fi
1152     AC_LANG_RESTORE
1153     if test "$fftw_cv_libfftw3" = "yes" -a "$fftw_cv_fftw3_h" = "yes"; then
1154     AC_DEFINE(HAVE_FFTW3_H, 1, [have fftw3.h])
1155     FFTW_INC_DIR="${FFTW_HOME}/include"
1156     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1157     FFTW_LIBS="-lfftw3"
1158     else
1159     if test "$fftw_cv_libfftw" = "yes" -a "$fftw_cv_fftw_h" = "yes"; then
1160     AC_DEFINE(HAVE_FFTW_H, 1, [have fftw.h])
1161     FFTW_INC_DIR="${FFTW_HOME}/include"
1162     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1163     FFTW_LIBS="-lfftw"
1164 gezelter 2753 else
1165 xsun 2932 if test "$fftw_cv_libdfftw" = "yes" -a "$fftw_cv_dfftw_h" = "yes"; then
1166     AC_DEFINE(HAVE_DFFTW_H, 1, [have dfftw.h])
1167     FFTW_INC_DIR="${FFTW_HOME}/include"
1168     FFTW_LIB_DIR="${FFTW_HOME}/lib"
1169     FFTW_LIBS="-ldfftw"
1170     else
1171     AC_MSG_CHECKING(fftw in ${FFTW_HOME})
1172     FFTW_INC_DIR=
1173     FFTW_LIB_DIR=
1174     FFTW_LIBS=
1175     LDFLAGS="$FFTW_OLD_LDFLAGS"
1176 chuckv 3291 CFLAGS="$FFTW_OLD_CFLAGS"
1177 xsun 2932 AC_MSG_RESULT(failed)
1178     echo ""
1179     echo "*********************************************************"
1180     echo "* WARNING: Could not find a working FFTW installation *"
1181     echo "* If you need the staticProps program to be able to *"
1182     echo "* compute undulation spectra, be sure to specify a *"
1183     echo "* valid fftw installation with --with-fftw=DIR *"
1184     echo "* *"
1185     echo "* OOPSE will still work without fftw installed. *"
1186     echo "*********************************************************"
1187     echo ""
1188     fi
1189 gezelter 2753 fi
1190 xsun 2932 fi
1191     AC_SUBST(FFTW_INC_DIR)
1192     AC_SUBST(FFTW_LIB_DIR)
1193     AC_SUBST(FFTW_LIBS)
1194     fi
1195     fi
1196 gezelter 2753 fi
1197     ])
1198    
1199     # AC_F90_MODULE_NAMES
1200     # -------------------
1201     #
1202     # Figure out how the Fortran 90 compiler constructs module file names
1203     #
1204     AC_DEFUN([AC_F90_MODULE_NAMES],
1205     [AC_REQUIRE([AC_PROG_FC])dnl
1206     AC_CACHE_CHECK([for Fortran 90 module file names],
1207     ac_cv_f90_module_names,
1208     [AC_LANG_PUSH(Fortran)
1209     # carry out the test in a new directory, so that we don't miss anything
1210     mkdir conftest
1211     cd conftest
1212     AC_COMPILE_IFELSE(
1213     [MODULE Bar
1214     END MODULE Bar],
1215     ac_cv_f90_module_names=
1216     [ac_file_list=*
1217     for ac_file in $ac_file_list; do
1218     case $ac_file in
1219     # don't care for original source and object files
1220     conftest.$ac_ext | conftest.$ac_objext | conftest.err )
1221     :
1222     ;;
1223     # look for new files derived from the file name
1224     *conftest*)
1225     ac_pat=`echo $ac_file | sed s/conftest/%FILE%/`
1226     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1227     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1228     ;;
1229     # look for new files derived from the module name,
1230     # with different case translation schemes
1231     *Bar*)
1232     ac_pat=`echo $ac_file | sed s/Bar/%Module%/`
1233     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1234     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1235     ;;
1236     *bar*)
1237     ac_pat=`echo $ac_file | sed s/bar/%module%/`
1238     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1239     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1240     ;;
1241     *BAR*)
1242     ac_pat=`echo $ac_file | sed s/BAR/%MODULE%/`
1243     _AC_LIST_MEMBER_IF($ac_pat, $ac_cv_f90_module_names,,
1244     ac_cv_f90_module_names="$ac_cv_f90_module_names $ac_pat")
1245     ;;
1246     # Other files - we have no idea how they are generated
1247     *)
1248     AC_MSG_WARN([Bogus file found: $ac_file])
1249     ;;
1250     esac
1251     done
1252     if test "x$ac_cv_f90_module_names" = "x"; then
1253     AC_MSG_WARN([Couldn't determine module file names])
1254     fi
1255     ],
1256     [ac_cv_f90_module_names=
1257     AC_MSG_WARN([Couldn't determine module file names])])
1258     cd ..
1259     # cleanup
1260     rm -rf conftest
1261     AC_LANG_POP()dnl
1262     ]) # AC_CACHE_CHECK
1263    
1264     # We now generate a shell script that will help us to figure out the correct
1265     # module file names, using the value of ac_cv_f90_module_names
1266    
1267     echo "Generating shell script modnam"
1268    
1269     cat > scripts/modnam << EOF
1270     #! /bin/sh
1271     # This script is auto-generated by configure
1272     #
1273     usage="\\
1274     Usage: \$[0] [[FILES]]
1275    
1276     [[FILES]] are Fortran 90 source files.
1277     The output is a list of module file names that the Fortran 90 compiler
1278     generates when compiling [[FILES]]."
1279    
1280     list=
1281     empty=
1282    
1283     if test \$[@%:@] -eq 0; then
1284     echo "\$usage"; exit 0
1285     fi
1286    
1287     while test \$[@%:@] != 0; do
1288    
1289     file=\$[1]
1290     shift
1291    
1292     # strip suffix
1293     base=\`echo \$file | sed 's/[[.]][[^.]]*$//'\`
1294    
1295     test ! -f \$file && continue
1296    
1297     # Look for module definitions and transform them to upper / lower case
1298     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/'\`
1299     upper=\`echo \$mods | tr a-z A-Z\`
1300     lower=\`echo \$mods | tr A-Z a-z\`
1301    
1302     # Here, the patterns for generating module file names were inserted by configure
1303     for trans in $ac_cv_f90_module_names; do
1304    
1305     pat=\`echo \$trans | sed 's/.*\(%.*%\).*/\1/'\`
1306     var=empty
1307     case \$pat in
1308     %MODULE%)
1309     var=upper ;;
1310     %Module%)
1311     var=mods ;;
1312     %module%)
1313     var=lower ;;
1314     %FILE%)
1315     test -n "\$mods" && var=base ;;
1316     esac
1317     new=\`eval '(for i in \$'\$var '; do echo \$trans | sed s/\$pat/\$i/; done)'\`
1318     list="\$list \$new"
1319     done
1320     done
1321    
1322     echo \$list
1323     # end of configure-generated script
1324     EOF
1325     chmod 755 scripts/modnam
1326     ]) # AC_F90_MODULE_NAMES
1327    
1328     dnl
1329     dnl These functions were taken from the GRASS GIS toolkit:
1330     dnl
1331     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1332     dnl
1333    
1334     AC_DEFUN(LOC_CHECK_USE,[
1335     AC_MSG_CHECKING(whether to use $2)
1336     AC_MSG_RESULT("$with_$1")
1337     case "$with_$1" in
1338     "no") $3= ;;
1339     "yes") $3="1" ;;
1340     *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
1341     esac
1342    
1343     ])
1344    
1345     AC_DEFUN(LOC_CHECK_INC_PATH,[
1346     AC_MSG_CHECKING(for location of $2 includes)
1347     case "$with_$1_includes" in
1348     y | ye | yes | n | no)
1349     AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.])
1350     ;;
1351     esac
1352     AC_MSG_RESULT($with_$1_includes)
1353    
1354     if test -n "$with_$1_includes" ; then
1355     for dir in $with_$1_includes; do
1356     if test -d "$dir"; then
1357     $3="$$3 -I$dir"
1358     else
1359     AC_MSG_ERROR([*** $2 includes directory $dir does not exist.])
1360     fi
1361     done
1362     fi
1363     ])
1364    
1365     AC_DEFUN(LOC_CHECK_LIB_PATH,[
1366     AC_MSG_CHECKING(for location of $2 library)
1367     case "$with_$1_libs" in
1368     y | ye | yes | n | no)
1369     AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.])
1370     ;;
1371     esac
1372     AC_MSG_RESULT($with_$1_libs)
1373    
1374     if test -n "$with_$1_libs"; then
1375     for dir in $with_$1_libs; do
1376     if test -d "$dir"; then
1377     $3="$$3 -L$dir"
1378     else
1379     AC_MSG_ERROR([*** $2 library directory $dir does not exist.])
1380     fi
1381     done
1382     fi
1383     ])
1384    
1385     AC_DEFUN(LOC_CHECK_SHARE_PATH,[
1386     AC_MSG_CHECKING(for location of $2 data files)
1387     case "$with_$1_share" in
1388     y | ye | yes | n | no)
1389     AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.])
1390     ;;
1391     esac
1392     AC_MSG_RESULT($with_$1_share)
1393    
1394     if test -n "$with_$1_share" ; then
1395     if test -d "$with_$1_share"; then
1396     $3="$with_$1_share"
1397     else
1398     AC_MSG_ERROR([*** $2 data directory $dir does not exist.])
1399     fi
1400     fi
1401     ])
1402    
1403     AC_DEFUN(LOC_CHECK_INCLUDES,[
1404     ac_save_cppflags="$CPPFLAGS"
1405     CPPFLAGS="$3 $CPPFLAGS"
1406     AC_CHECK_HEADERS($1, [], ifelse($4,[],[
1407     AC_MSG_ERROR([*** Unable to locate $2 includes.])
1408     ], $4))
1409     CPPFLAGS=$ac_save_cppflags
1410     ])
1411    
1412     dnl autoconf undefines "shift", so use "builtin([shift], ...)"
1413    
1414     define(LOC_SHIFT1,[builtin([shift],$*)])
1415     define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))])
1416     define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))])
1417     define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))])
1418     define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))])
1419    
1420     dnl $1 = library
1421     dnl $2 = function
1422     dnl $3 = descriptive name
1423     dnl $4 = LDFLAGS initialiser
1424     dnl $5 = result variable
1425     dnl $6 = mandatory dependencies (not added to $5)
1426     dnl $7 = mandatory dependencies (added to $5)
1427     dnl $8 = ACTION-IF-NOT-FOUND
1428     dnl $9+ = optional dependencies
1429    
1430     define(LOC_CHECK_LIBS_0,[
1431     AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[
1432     [$8]
1433     ],$6 $7)
1434     ])
1435    
1436     define(LOC_CHECK_LIBS_1,[
1437     ifelse($9,[],
1438     LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8),
1439     [
1440     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1441     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)),
1442     LOC_SHIFT9($*))
1443     ]
1444     )
1445     ])
1446    
1447     define(LOC_CHECK_LIBS,[
1448     ac_save_ldflags="$LDFLAGS"
1449     LDFLAGS="$4 $LDFLAGS"
1450     LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7,
1451     LDFLAGS=${ac_save_ldflags}
1452     ifelse($8,[],[
1453     AC_MSG_ERROR([*** Unable to locate $3 library.])
1454     ],$8),LOC_SHIFT8($*))
1455     LDFLAGS=${ac_save_ldflags}
1456     ])
1457    
1458     AC_DEFUN(LOC_CHECK_VERSION_STRING,[
1459     AC_MSG_CHECKING($3 version)
1460     ac_save_cppflags="$CPPFLAGS"
1461     CPPFLAGS="$5 $CPPFLAGS"
1462     AC_TRY_RUN([
1463     #include <stdio.h>
1464     #include <$1>
1465     int main(void) {
1466     FILE *fp = fopen("conftestdata","w");
1467     fputs($2, fp);
1468     return 0;
1469     }
1470     ],
1471     [ $4=`cat conftestdata`
1472     AC_MSG_RESULT($$4)],
1473     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1474     [ $4=$6
1475     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1476     CPPFLAGS=$ac_save_cppflags
1477     ])
1478    
1479     AC_DEFUN(LOC_CHECK_SHARE,[
1480     AC_CHECK_FILE($3/$1, [], ifelse($4,[],[
1481     AC_MSG_ERROR([*** Unable to locate $2 data files.])
1482     ], $4))
1483     ])
1484    
1485     AC_DEFUN(LOC_CHECK_VERSION_INT,[
1486     AC_MSG_CHECKING($3 version)
1487     ac_save_cppflags="$CPPFLAGS"
1488     CPPFLAGS="$5 $CPPFLAGS"
1489     AC_TRY_RUN([
1490     #include <stdio.h>
1491     #include <$1>
1492     int main(void) {
1493     FILE *fp = fopen("conftestdata","w");
1494     fprintf(fp, "%d", $2);
1495     return 0;
1496     }
1497     ],
1498     [ $4=`cat conftestdata`
1499     AC_MSG_RESULT($$4)],
1500     [ AC_MSG_ERROR([*** Could not determine $3 version.]) ],
1501     [ $4=$6
1502     AC_MSG_RESULT([unknown (cross-compiling)]) ])
1503     CPPFLAGS=$ac_save_cppflags
1504     ])
1505    
1506     dnl autoconf undefines "eval", so use "builtin([eval], ...)"
1507    
1508     AC_DEFUN(LOC_PAD,[$1[]ifelse(builtin([eval],len($1) > 23),1,[
1509     ],substr([ ],len($1)))])
1510    
1511     AC_DEFUN(LOC_ARG_WITH,[
1512     AC_ARG_WITH($1,
1513     LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],,
1514     [with_$1=]ifelse([$3],,yes,[$3]))
1515     ])
1516    
1517     AC_DEFUN(LOC_ARG_WITH_INC,[
1518     AC_ARG_WITH($1-includes,
1519     LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS])
1520     ])
1521    
1522     AC_DEFUN(LOC_ARG_WITH_LIB,[
1523     AC_ARG_WITH($1-libs,
1524     LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS])
1525     ])
1526    
1527     AC_DEFUN(LOC_ARG_WITH_SHARE,[
1528     AC_ARG_WITH($1-share,
1529     LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR])
1530     ])
1531    
1532     AC_DEFUN(LOC_OPTIONAL,[
1533     AC_MSG_CHECKING(whether to build $1)
1534     if test -n "$USE_$2" ; then
1535     AC_MSG_RESULT(yes)
1536     BUILD_$3="$4"
1537     else
1538     AC_MSG_RESULT(no)
1539     BUILD_$3=
1540     fi
1541     AC_SUBST(BUILD_$3)
1542     ])
1543    
1544     AC_DEFUN(LOC_MSG,[
1545     echo "$1"
1546     ])
1547    
1548     AC_DEFUN(LOC_PAD_26,[substr([ ],len($1))])
1549    
1550     AC_DEFUN(LOC_YES_NO,[if test -n "${$1}" ; then echo yes ; else echo no ; fi])
1551    
1552     AC_DEFUN(LOC_MSG_USE,[
1553     [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"])