ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/ac-tools/aclocal.m4
Revision: 2199
Committed: Thu Apr 14 21:41:56 2005 UTC (19 years, 2 months ago) by gezelter
File size: 35405 byte(s)
Log Message:
configure now searches for perl to use with filepp

File Contents

# User Rev Content
1 gezelter 2190 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 gezelter 1490 dnl
5 gezelter 2190 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     dnl
25 gezelter 1490 dnl AC_CHECK_MODSUFFIX
26     dnl
27     AC_DEFUN([AC_CHECK_MODSUFFIX],[
28    
29     AC_MSG_CHECKING(for module suffix)
30     rm -f conftest*
31     # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
32     rm -f work*
33     cat >conftest.f90 <<EOF
34     module conftest
35     integer n
36     parameter (n=1)
37     end module conftest
38     EOF
39     # SGI and absoft compilers generates module name in upper case!
40     testname="conftest"
41     modcase="lower"
42     if $F90 -c conftest.f90 > conftest.out 2>&1 ; then
43     MOD=`ls conftest* | grep -v conftest.f | grep -v conftest.o`
44     MOD=`echo "$MOD" | sed -e 's/conftest\.//g'`
45     if test -z "$MOD" ; then
46     MOD=`ls CONFTEST* 2>/dev/null \
47     | grep -v CONFTEST.f | grep -v CONFTEST.o`
48     MOD=`echo "$MOD" | sed -e 's/CONFTEST\.//g'`
49     if test -n "$MOD" ; then
50     testname="CONFTEST"
51     modcase="upper"
52     fi
53     fi
54     if test -z "$MOD" ; then
55     AC_MSG_RESULT(unknown)
56     # Use mod if we can't figure it out
57     MOD="mod"
58     else
59     AC_MSG_RESULT($MOD)
60     fi
61     if test -s work.pcl ; then
62     AC_MSG_WARN([Compiler generates auxillery files!])
63     fi
64     else
65     AC_MSG_RESULT(unknown)
66     fi
67     AC_SUBST(MOD)
68    
69     ])
70    
71    
72     dnl
73     dnl AC_CHECK_MODDIRFLAG
74     dnl
75     AC_DEFUN([AC_CHECK_MODDIRFLAG],[
76    
77     # Check for module include path (some use -I, some (Solaris) use -M, some
78     # (absoft) use -p).
79     # Intel compilers use a wierd system: -cl,filename.pcl . If no file is
80     # specified, work.pcl and work.pc are created. However, if you specify
81     # a file, it must contain a the name of a file ending in .pc . Ugh!
82     # Use the module made above
83     AC_MSG_CHECKING(for module directory path flag)
84     rm -f conftest*
85     # Intel ifc compiler generates files by the name of work.pc and work.pcl (!)
86     rm -f work*
87     cat >conftest.f90 <<EOF
88     module conftest
89     integer n
90     parameter (n=1)
91     end module conftest
92     EOF
93     # SGI and absoft compilers generates module name in upper case!
94     testname="conftest"
95     if $F90 -c conftest.f90 > conftest.out 2>&1 ; then
96     mod=`ls CONFTEST* 2>/dev/null | grep -v CONFTEST.f | grep -v CONFTEST.o`
97     mod=`echo "$mod" | sed -e 's/CONFTEST\.//g'`
98     if test -n "$mod" ; then
99     testname="CONFTEST"
100     fi
101     madedir=0
102     if test ! -d conf ; then mkdir conf ; madedir=1; fi
103     cp $testname.$MOD conf
104     rm -f conftest* CONFTEST*
105     cat >conftest1.f90 <<EOF
106     program main
107     use conftest
108     print *, n
109     end
110     EOF
111     F90_WORK_FILES_ARG=""
112     F90MODINCSPEC=""
113     if $F90 -c -Iconf conftest1.f90 > conftest.out 2>&1 ; then
114     MODDIRFLAG="-I"
115     F90MODINCSPEC="-I<dir>"
116     AC_MSG_RESULT(-I)
117     elif $F90 -c -Mconf conftest1.f90 >> conftest.out 2>&1 ; then
118     MODDIRFLAG="-M"
119     F90MODINCSPEC="-M<dir>"
120     AC_MSG_RESULT(-M)
121     elif $F90 -c -pconf conftest1.f90 >> conftest.out 2>&1 ; then
122     MODDIRFLAG="-p"
123     F90MODINCSPEC="-p<dir>"
124     AC_MSG_RESULT(-p)
125     elif test -s work.pc ; then
126     cp work.pc conf/mpimod.pc
127     echo "mpimod.pc" > conf/mpimod.pcl
128     echo "`pwd`/conf/mpimod.pc" >> conf/mpimod.pcl
129     if $F90 -c -cl,conf/mpimod.pcl conftest1.f >>conftest.out 2>&1 ; then
130     MODDIRFLAG='-cl,mpimod.pcl'
131     AC_MSG_RESULT([-cl,filename where filename contains a list of files and directories])
132     F90_WORK_FILES_ARG="-cl,mpimod.pcl"
133     F90MODINCSPEC="-cl,<dir>/<file>mod.pcl"
134     AC_SUBST(F90_WORK_FILES_ARG)
135     else
136     # The version of the Intel compiler that I have refuses to let
137     # you put the "work catalog" list anywhere but the current
138     # directory. For example, you cannot in
139     :
140     fi
141     fi
142     if test -z "MODDIRFLAG" ; then
143     AC_MSG_RESULT(unknown)
144     fi
145     AC_SUBST(MODDIRFLAG)
146     AC_SUBST(F90MODINCSPEC)
147     rm -f conftest* conf/conftest* conf/CONFTEST* CONFTEST* conf/mpimod*
148     if test $madedir = 1 ; then rmdir conf ; fi
149     fi
150    
151     ])
152    
153    
154     dnl
155     dnl AC_CHECK_MPI_F90MOD
156     dnl
157     AC_DEFUN([AC_CHECK_MPI_F90MOD],[
158    
159     AC_ARG_WITH(mpi_f90_mods, [ --with-mpi_f90_mods=<dir>
160     Location where MPI f90 modules are installed ],
161     mpi_f90_mods="$withval",
162     mpi_f90_mods="/usr/local/include/f90choice")
163    
164     AC_MSG_CHECKING(for MPI F90 modules)
165     AC_LANG_SAVE()
166     AC_LANG([Fortran 90])
167     ac_save_F90FLAGS=$F90FLAGS
168    
169     AS_IF([test "$mpi_f90_mods"], [F90FLAGS="${F90FLAGS} ${MODDIRFLAG}${mpi_f90_mods}"])
170     _AC_COMPILE_IFELSE([
171     AC_LANG_PROGRAM([
172     use mpi
173     integer :: ierr
174     call MPI_Init(ierr)
175     ])], [HAVE_MPI_MOD=1], [HAVE_MPI_MOD=0])
176    
177     F90FLAGS=$ac_save_F90FLAGS
178     AC_LANG_RESTORE()
179    
180     if test "$HAVE_MPI_MOD" = 1; then
181     AC_MSG_RESULT(yes)
182     AC_DEFINE(MPI_MOD, 1, [have mpi module])
183     MPI_F90_MODS="${mpi_f90_mods}"
184     AC_SUBST(MPI_F90_MODS)
185     # The library name:
186     if test -z "$MPI_LIB" ; then
187     MPI_LIBNAME=-lmpich
188     else
189     MPI_LIBNAME="$MPI_LIB"
190     fi
191     if test -z "$MPIMODLIBNAME" ; then
192     MPIMODLIBNAME="${MPI_LIBNAME}f90"
193     fi
194     AC_SUBST(MPIMODLIBNAME)
195     else
196     AC_MSG_RESULT(no)
197     AC_MSG_WARN([Couldn't locate MPI F90 Modules])
198     fi
199    
200     ])
201    
202    
203    
204    
205     dnl
206     dnl AM_PATH_SPRNG
207     dnl
208     AC_DEFUN([AM_PATH_SPRNG],[
209    
210     AC_ARG_WITH(sprng_prefix, [ --with-sprng_prefix=PREFIX
211     Prefix where SPRNG is installed ],
212     sprng_prefix="$withval",
213     sprng_prefix="/usr/local")
214     AC_ARG_WITH(sprng-libdir, [ --with-sprng-libdir=PREFIX SPRNG library directory],
215     sprng_libdir="$withval",
216     sprng_libdir="/usr/local/lib")
217     AC_ARG_WITH(sprng-include, [ --with-sprng-include=PREFIX
218     SPRNG include directory],
219     sprng_include="$withval",
220     sprng_include="/usr/local/include/sprng")
221    
222     if test x$sprng_libdir = x ; then
223     sprng_libdir=${sprng_prefix}/lib
224     fi
225    
226     if test x$sprng_include = x ; then
227     sprng_include=${sprng_prefix}/include
228     fi
229    
230     AC_MSG_CHECKING(for SPRNG include files in $sprng_include)
231     if test -f ${sprng_include}/sprng.h; then
232     have_sprngincl=yes
233     AC_MSG_RESULT(yes)
234     else
235     have_sprngincl=no
236     AC_MSG_RESULT(no)
237     AC_MSG_ERROR(Could not locate the SPRNG include files)
238     fi
239    
240     AC_MSG_CHECKING(for SPRNG libraries in $sprng_libdir)
241     if test -f ${sprng_libdir}/libsprng.a; then
242     have_sprnglib=yes
243     AC_MSG_RESULT(yes)
244     else
245     have_sprnglib=no
246     AC_MSG_RESULT(no)
247     AC_MSG_ERROR(Could not locate the SPRNG libraries)
248     fi
249    
250     AC_LANG_SAVE()
251     AC_LANG([C])
252     ac_save_CPPFLAGS=$CPPFLAGS
253     CPPFLAGS="${CPPFLAGS} -I${sprng_include}"
254     ac_save_LDFLAGS=$LDFLAGS
255     LDFLAGS="${LDFLAGS} -L${sprng_libdir} -lsprng"
256     AC_CHECK_HEADER(sprng.h, [
257     AC_CHECK_LIB(sprng,
258     init_rng,
259     [SPRNG_LIBDIR="${sprng_libdir}"
260     SPRNG_LIB="-lsprng" SPRNG_INC="-I${sprng_include}"
261     HAVE_SPRNG="yes"])])
262     CPPFLAGS=$ac_save_CPPFLAGS
263     LDFLAGS=$ac_save_LDFLAGS
264     AC_LANG_RESTORE()
265    
266     if test x_$HAVE_SPRNG != x_yes; then
267     AC_MSG_ERROR(Can't build with SPRNG)
268     fi
269     AC_SUBST(SPRNG_LIBDIR)
270     AC_SUBST(SPRNG_LIB)
271     AC_SUBST(SPRNG_INC)
272     AC_SUBST(HAVE_SPRNG)
273     ])
274    
275     dnl
276     dnl CHECK_MKL
277     dnl
278     AC_DEFUN([CHECK_MKL],
279     [AC_MSG_CHECKING(if MKL is wanted)
280     AC_ARG_WITH(mkl,
281     [ --with-mkl Do we want MKL [will check /usr/local/intel/mkl61 /opt/intel/mkl61]],
282     [ AC_MSG_RESULT(yes)
283     for dir in $withval /usr/local/intel/mkl61 /opt/intel/mkl61; do
284     mkldir="$dir"
285     if test -f "$dir/include/mkl.h"; then
286     found_mkl="yes";
287     break;
288     fi
289     done
290     if test x_$found_mkl != x_yes; then
291     AC_MSG_ERROR(Cannot find MKL includes)
292     else
293     printf "MKL includes found in $mkldir/include\n";
294     fi
295    
296     AC_LANG_SAVE()
297     AC_LANG([C])
298     ac_save_CPPFLAGS=$CPPFLAGS
299     CPPFLAGS="${CPPFLAGS} -I${mkldir}/include"
300     ac_save_LDFLAGS=$LDFLAGS
301     LDFLAGS="${LDFLAGS} -L${mkldir}/lib/32 -lmkl -lvml -lguide"
302     AC_CHECK_HEADER(mkl.h, [
303     AC_CHECK_LIB(mkl,
304     vslNewStream,
305     [MKL_LIBDIR="${mkldir}/lib/32",
306     MKL_LIB="-lmkl -lvml -lguide",
307     HAVE_MKL="yes"])
308     ], [MKL_INC="-I${mkldir}/include"])
309     CPPFLAGS=$ac_save_CPPFLAGS
310     LDFLAGS=$ac_save_LDFLAGS
311     AC_LANG_RESTORE()
312    
313     if test x_$HAVE_MKL != x_yes; then
314     AC_MSG_ERROR(Can't build with MKL)
315     fi
316     AC_SUBST(MKL_LIBDIR)
317     AC_SUBST(MKL_LIB)
318     AC_SUBST(MKL_INC)
319     AC_SUBST(HAVE_MKL)
320     ],
321     [
322     AC_MSG_RESULT(no)
323     ])
324     ])
325     dnl
326    
327    
328     AC_DEFUN(ACX_CHECK_CC_FLAGS,
329     [
330     AC_REQUIRE([AC_PROG_CC])
331     AC_CACHE_CHECK(whether ${CC-cc} accepts $1, ac_$2,
332     [echo 'void f(){}' > conftest.c
333     if test -z "`${CC-cc} $1 -c conftest.c 2>&1`"; then
334     ac_$2=yes
335     else
336     ac_$2=no
337     fi
338     rm -f conftest*
339     ])
340     if test "$ac_$2" = yes; then
341     :
342     $3
343     else
344     :
345     $4
346     fi
347     ])
348    
349     AC_DEFUN(ACX_CHECK_CXX_FLAGS,
350     [
351     AC_REQUIRE([AC_PROG_CXX])
352     AC_CACHE_CHECK(whether ${CXX-c++} accepts $1, ac_$2,
353     [echo 'void f(){}' > conftest.cpp
354     if test -z "`${CXX-c++} $1 -c conftest.cpp 2>&1`"; then
355     ac_$2=yes
356     else
357     ac_$2=no
358     fi
359     rm -f conftest*
360     ])
361     if test "$ac_$2" = yes; then
362     :
363     $3
364     else
365     :
366     $4
367     fi
368     ])
369    
370     dnl -------------------------------------------------------------------------
371     dnl ACX_CHECK_F90_FLAGS()
372     dnl
373     dnl Check for optimizer flags the Fortran compiler can use.
374     dnl
375     AC_DEFUN(ACX_CHECK_F90_FLAGS,
376     [
377     AC_CACHE_CHECK(whether ${F90-f90} accepts $1, ac_$2,
378     [
379     AC_LANG_SAVE
380     AC_LANG([Fortran 90])
381     echo 'program main' > conftest.$ac_ext
382     echo 'end program main' >> conftest.$ac_ext
383     ac_compile='${F90-f90} -c $1 $F90FLAGS conftest.$ac_ext 1>&AC_FD_CC'
384     if AC_TRY_EVAL(ac_compile); then
385     ac_$2=yes
386     else
387     ac_$2=no
388     fi
389     rm -f conftest*
390     AC_LANG_RESTORE()
391     ])
392     if test "$ac_$2" = yes; then
393     :
394     $3
395     else
396     :
397     $4
398     fi
399     ])
400    
401     AC_DEFUN(ACX_PROG_GCC_VERSION,
402     [
403     AC_REQUIRE([AC_PROG_CC])
404     AC_CACHE_CHECK(whether we are using gcc $1.$2 or later, ac_cv_prog_gcc_$1_$2,
405     [
406     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
407     cat > conftest.c <<EOF
408     #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
409     # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
410     yes;
411     # endif
412     #endif
413     EOF
414     if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
415     ac_cv_prog_gcc_$1_$2=yes
416     else
417     ac_cv_prog_gcc_$1_$2=no
418     fi
419     ])
420     if test "$ac_cv_prog_gcc_$1_$2" = yes; then
421     :
422     $3
423     else
424     :
425     $4
426     fi
427     ])
428    
429     AC_DEFUN(ACX_PROG_GXX_VERSION,
430     [
431     AC_REQUIRE([AC_PROG_CXX])
432     AC_CACHE_CHECK(whether we are using g++ $1.$2 or later, ac_cv_prog_gxx_$1_$2,
433     [
434     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
435     cat > conftest.cpp <<EOF
436     #ifdef __GNUC__ && !defined (__INTEL_COMPILER)
437     # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ >= $2)
438     yes;
439     # endif
440     #endif
441     EOF
442     if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
443     ac_cv_prog_gxx_$1_$2=yes
444     else
445     ac_cv_prog_gxx_$1_$2=no
446     fi
447     ])
448     if test "$ac_cv_prog_gxx_$1_$2" = yes; then
449     :
450     $3
451     else
452     :
453     $4
454     fi
455     ])
456    
457     AC_DEFUN(ACX_PROG_REALLY_GCC,
458     [
459     AC_REQUIRE([AC_PROG_CC])
460     AC_CACHE_CHECK(whether we are *really* using GNU cc, ac_cv_prog_really_gcc,
461     [
462     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
463     cat > conftest.c <<EOF
464     #ifdef __GNUC__
465     #ifndef __INTEL_COMPILER
466     yes;
467     #endif
468     #endif
469     EOF
470     if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
471     ac_cv_prog_really_gcc=yes
472     else
473     ac_cv_prog_really_gcc=no
474     fi
475     ])
476     if test "$ac_cv_prog_really_gcc" = yes; then
477     :
478     $1
479     else
480     :
481     $2
482     fi
483     ])
484    
485     AC_DEFUN(ACX_PROG_REALLY_GXX,
486     [
487     AC_REQUIRE([AC_PROG_CXX])
488     AC_CACHE_CHECK(whether we are *really* using GNU c++, ac_cv_prog_really_gxx,
489     [
490     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
491     cat > conftest.cpp <<EOF
492     #ifdef __GNUC__
493     #ifndef __INTEL_COMPILER
494     yes;
495     #endif
496     #endif
497     EOF
498     if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
499     ac_cv_prog_really_gxx=yes
500     else
501     ac_cv_prog_really_gxx=no
502     fi
503     ])
504     if test "$ac_cv_prog_really_gxx" = yes; then
505     :
506     $1
507     else
508     :
509     $2
510     fi
511     ])
512    
513    
514     AC_DEFUN(ACX_PROG_CC_MAXOPT,
515     [
516     AC_REQUIRE([AC_PROG_CC])
517     AC_REQUIRE([AC_CANONICAL_HOST])
518    
519     ACX_PROG_REALLY_GCC
520    
521     # Try to determine "good" native compiler flags if none specified on command
522     # line
523     if test "$ac_test_CFLAGS" != "set"; then
524     CFLAGS=""
525     case "${host_cpu}-${host_os}" in
526    
527     *linux*) if test "$CC" = icc; then
528     CFLAGS="-O"
529     fi;;
530     sparc-solaris2*) if test "$CC" = cc; then
531     CFLAGS="-native -fast -xO5 -dalign"
532     fi;;
533    
534     alpha*-osf*) if test "$CC" = cc; then
535     CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host -arch host -std1"
536     fi;;
537    
538     hppa*-hpux*) if test "$CC" = cc; then
539     CFLAGS="-Ae +O3 +Oall"
540     fi;;
541    
542     rs6000*-aix*) if test "$CC" = cc -o "$CC" = xlc; then
543     CFLAGS="-O3 -qtune=auto -qansialias -w"
544     fi;;
545     powerpc*-aix*)
546     if test "$CC" = cc -o "$CC" = xlc; then
547     CFLAGS="-O3 -qtune=auto -qansialias -w"
548     echo "*******************************************************"
549     echo "* You have AIX on an unknown powerpc system. It is *"
550     echo "* recommended that you use *"
551     echo "* *"
552     echo "* CFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
553     echo "* ^^^ *"
554     echo "* where xxx is 601, 603, 604, or whatever kind of *"
555     echo "* PowerPC CPU you have. For more info, man cc. *"
556     echo "*******************************************************"
557     fi;;
558     *darwin*)
559     if test "$CC" = xlc -o "$CC" = cc; then
560 chuckv 1579 CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
561 gezelter 1490 fi;;
562     esac
563    
564     # use default flags for gcc on all systems
565     if test $ac_cv_prog_really_gcc = yes; then
566     CFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic"
567     fi
568    
569     # test for gcc-specific flags:
570     if test $ac_cv_prog_really_gcc = yes; then
571     # -malign-double for x86 systems
572     ACX_CHECK_CC_FLAGS(-malign-double,align_double, CFLAGS="$CFLAGS -malign-double")
573     # -fstrict-aliasing for gcc-2.95+
574     ACX_CHECK_CC_FLAGS(-fstrict-aliasing,fstrict_aliasing, CFLAGS="$CFLAGS -fstrict-aliasing")
575     fi
576    
577     CPU_FLAGS=""
578     if test $ac_cv_prog_really_gcc = yes; then
579     dnl try to guess correct CPU flags, at least for linux
580     case "${host_cpu}" in
581     i586*) ACX_CHECK_CC_FLAGS(-mcpu=pentium,cpu_pentium,
582     [CPU_FLAGS=-mcpu=pentium],
583     [ACX_CHECK_CC_FLAGS(-mpentium,pentium,
584     [CPU_FLAGS=-mpentium])])
585     ;;
586     i686*) ACX_CHECK_CC_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
587     [CPU_FLAGS=-mcpu=pentiumpro],
588     [ACX_CHECK_CC_FLAGS(-mpentiumpro,pentiumpro,
589     [CPU_FLAGS=-mpentiumpro])])
590     ;;
591     powerpc*)
592     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
593     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
594     if test -n "$is60x"; then
595     ACX_CHECK_CC_FLAGS(-mcpu=$cputype,m_cpu_60x,
596     CPU_FLAGS=-mcpu=$cputype)
597     elif test "$cputype" = 750; then
598     ACX_PROG_GCC_VERSION(2,95,
599     ACX_CHECK_CC_FLAGS(-mcpu=750,m_cpu_750,
600     CPU_FLAGS=-mcpu=750))
601     fi
602     if test -z "$CPU_FLAGS"; then
603     ACX_CHECK_CC_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
604     CPU_FLAGS=-mcpu=powerpc)
605     fi
606     if test -z "$CPU_FLAGS"; then
607     ACX_CHECK_CC_FLAGS(-mpowerpc,m_powerpc,
608     CPU_FLAGS=-mpowerpc)
609     fi
610     esac
611     fi
612    
613     if test -n "$CPU_FLAGS"; then
614     CFLAGS="$CFLAGS $CPU_FLAGS"
615     fi
616    
617     if test -z "$CFLAGS"; then
618     echo ""
619     echo "********************************************************"
620     echo "* WARNING: Don't know the best CFLAGS for this system *"
621     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
622     echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
623     echo "********************************************************"
624     echo ""
625     CFLAGS="-O3"
626     fi
627    
628     ACX_CHECK_CC_FLAGS(${CFLAGS}, guessed_cflags, , [
629     echo ""
630     echo "********************************************************"
631     echo "* WARNING: The guessed CFLAGS don't seem to work with *"
632     echo "* your compiler. *"
633     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
634     echo "********************************************************"
635     echo ""
636     CFLAGS=""
637     ])
638    
639     fi
640     ])
641    
642     AC_DEFUN(ACX_PROG_CXX_MAXOPT,
643     [
644     AC_REQUIRE([AC_PROG_CXX])
645     AC_REQUIRE([AC_CANONICAL_HOST])
646    
647     ACX_PROG_REALLY_GXX
648    
649     # Try to determine "good" native compiler flags if none specified on command
650     # line
651     if test "$ac_test_CXXFLAGS" != "set"; then
652     CXXFLAGS=""
653     case "${host_cpu}-${host_os}" in
654    
655     *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
656     CXXFLAGS="-O"
657     fi;;
658     sparc-solaris2*) if test "$CXX" = CC; then
659     CXXFLAGS="-native -fast -xO5 -dalign"
660     fi;;
661     rs6000*-aix*) if test "$CXX" = xlC; then
662     CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
663     fi;;
664     powerpc*-aix*)
665     if test "$CXX" = xlC; then
666     CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
667     echo "*******************************************************"
668     echo "* You have AIX on an unknown powerpc system. It is *"
669     echo "* recommended that you use *"
670     echo "* *"
671     echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
672     echo "* ^^^ *"
673     echo "* where xxx is 601, 603, 604, or whatever kind of *"
674     echo "* PowerPC CPU you have. For more info, man cc. *"
675     echo "*******************************************************"
676     fi;;
677     *darwin*)
678 gezelter 2022 if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
679 chuckv 1579 CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
680 gezelter 1490 fi;;
681     esac
682    
683     # use default flags for gcc on all systems
684     if test $ac_cv_prog_really_gxx = yes; then
685     CXXFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic"
686     fi
687    
688     # test for gcc-specific flags:
689     if test $ac_cv_prog_really_gxx = yes; then
690     # -malign-double for x86 systems
691     ACX_CHECK_CXX_FLAGS(-malign-double,align_double, CXXFLAGS="$CXXFLAGS -malign-double")
692     # -fstrict-aliasing for gcc-2.95+
693     ACX_CHECK_CXX_FLAGS(-fstrict-aliasing,fstrict_aliasing, CXXFLAGS="$CXXFLAGS -fstrict-aliasing")
694     fi
695    
696     CPU_FLAGS=""
697     if test $ac_cv_prog_really_gxx = yes; then
698     dnl try to guess correct CPU flags, at least for linux
699     case "${host_cpu}" in
700     i586*) ACX_CHECK_CXX_FLAGS(-mcpu=pentium,cpu_pentium,
701     [CPU_FLAGS=-mcpu=pentium],
702     [ACX_CHECK_CXX_FLAGS(-mpentium,pentium,
703     [CPU_FLAGS=-mpentium])])
704     ;;
705     i686*) ACX_CHECK_CXX_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
706     [CPU_FLAGS=-mcpu=pentiumpro],
707     [ACX_CHECK_CXX_FLAGS(-mpentiumpro,pentiumpro,
708     [CPU_FLAGS=-mpentiumpro])])
709     ;;
710     powerpc*)
711     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
712     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
713     if test -n "$is60x"; then
714     ACX_CHECK_CXX_FLAGS(-mcpu=$cputype,m_cpu_60x,
715     CPU_FLAGS=-mcpu=$cputype)
716     elif test "$cputype" = 750; then
717     ACX_PROG_GXX_VERSION(2,95,
718     ACX_CHECK_CXX_FLAGS(-mcpu=750,m_cpu_750,
719     CPU_FLAGS=-mcpu=750))
720     fi
721     if test -z "$CPU_FLAGS"; then
722     ACX_CHECK_CXX_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
723     CPU_FLAGS=-mcpu=powerpc)
724     fi
725     if test -z "$CPU_FLAGS"; then
726     ACX_CHECK_CXX_FLAGS(-mpowerpc,m_powerpc,
727     CPU_FLAGS=-mpowerpc)
728     fi
729     esac
730     fi
731    
732     if test -n "$CPU_FLAGS"; then
733     CXXFLAGS="$CXXFLAGS $CPU_FLAGS"
734     fi
735    
736     if test -z "$CXXFLAGS"; then
737     echo ""
738     echo "**********************************************************"
739     echo "* WARNING: Don't know the best CXXFLAGS for this system *"
740     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
741     echo "* (otherwise, a default of CXXFLAGS=-O3 will be used) *"
742     echo "**********************************************************"
743     echo ""
744     CXXFLAGS="-O3"
745     fi
746    
747     ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, guessed_cxxflags, , [
748     echo ""
749     echo "**********************************************************"
750     echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
751     echo "* your compiler. *"
752     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
753     echo "**********************************************************"
754     echo ""
755     CXXFLAGS=""
756     ])
757    
758     fi
759     ])
760    
761     AC_DEFUN(ACX_PROG_F90_MAXOPT,
762     [
763     AC_REQUIRE([AC_PROG_F90])
764     AC_REQUIRE([AC_CANONICAL_HOST])
765    
766     # Try to determine "good" native compiler flags if none specified on command
767     # line
768    
769     if test x"$F90FLAGS" = x ; then
770     F90FLAGS=""
771     case "${host_cpu}-${host_os}" in
772    
773     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
774     F90FLAGS="-O"
775     fi;;
776     rs6000*-aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
777     F90FLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
778     fi;;
779     powerpc*-aix*)
780     if test "$F90" = f90 -o "$F90" = xlf90; then
781     F90FLAGS="-O3 -qarch=ppc -qansialias -w"
782     echo "*******************************************************"
783     echo "* You have AIX on an unknown powerpc system. It is *"
784     echo "* recommended that you use *"
785     echo "* *"
786     echo "* F90FLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
787     echo "* ^^^ *"
788     echo "* where xxx is 601, 603, 604, or whatever kind of *"
789     echo "* PowerPC CPU you have. For more info, man xlf. *"
790     echo "*******************************************************"
791     fi;;
792     *darwin*)
793     if test "$F90" = f90 -o "$F90" = xlf90 -o "$F90" = xlf95; then
794 chuckv 1579 F90FLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto"
795 gezelter 1490 fi;;
796     esac
797    
798     if test -n "$CPU_FLAGS"; then
799     F90FLAGS="$F90FLAGS $CPU_FLAGS"
800     fi
801    
802     if test -z "$F90FLAGS"; then
803     echo ""
804     echo "**********************************************************"
805     echo "* WARNING: Don't know the best F90FLAGS for this system *"
806     echo "* Use make F90FLAGS=..., or edit the top level Makefile *"
807     echo "* (otherwise, a default of F90FLAGS=-O3 will be used) *"
808     echo "**********************************************************"
809     echo ""
810     F90FLAGS="-O3"
811     fi
812    
813     ACX_CHECK_F90_FLAGS(${F90FLAGS}, guessed_f90flags, , [
814     echo ""
815     echo "**********************************************************"
816     echo "* WARNING: The guessed F90FLAGS don't seem to work with *"
817     echo "* your compiler. *"
818     echo "* Use make F90FLAGS=..., or edit the top level Makefile *"
819     echo "**********************************************************"
820     echo ""
821     F90FLAGS=""
822     ])
823    
824     fi
825     ])
826    
827     AC_DEFUN(ACX_PROG_F90_PREPFLAG,
828     [
829     AC_REQUIRE([AC_PROG_F90])
830     AC_REQUIRE([AC_CANONICAL_HOST])
831    
832     # Try to determine native compiler flags that allow us to use F90 suffix
833     # for preprocessed f90 source.
834    
835     if test "$ac_test_PREPFLAG" != "set"; then
836     PREPFLAG=""
837     case "${host_cpu}-${host_os}" in
838    
839     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
840     PREPFLAG="-fpp1 "
841     fi;;
842     *aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
843     PREPFLAG="-qsuffix=cpp=F90 "
844     fi;;
845     *darwin*)
846     if test "$F90" = f90 -o "$F90" = xlf90; then
847     PREPFLAG="-qsuffix=cpp=F90 "
848     fi;;
849     esac
850    
851     if test -z "$PREPFLAG"; then
852     AC_MSG_WARN("Using empty PREPFLAG")
853     PREPFLAG=""
854     fi
855    
856     AC_MSG_CHECKING(to make sure F90 preprocessor flag works)
857     AC_LANG_SAVE()
858     AC_LANG([Fortran 90])
859     ac_save_ext=$ac_ext
860     ac_ext=F90
861     ac_save_F90FLAGS=$F90FLAGS
862    
863     AS_IF([test "$PREPFLAG"], [F90FLAGS="${F90FLAGS} ${PREPFLAG}-DTEST"])
864     _AC_COMPILE_IFELSE([
865     AC_LANG_PROGRAM([
866     integer :: i
867     i = 1
868     ])], [prepflagworks=1], [prepflagworks=0])
869    
870     F90FLAGS=$ac_save_F90FLAGS
871     ac_ext=$ac_save_ext
872     AC_LANG_RESTORE()
873    
874     if test "$prepflagworks" = 1; then
875     AC_MSG_RESULT(yes)
876     AC_SUBST(PREPFLAG)
877     else
878     AC_MSG_RESULT(no)
879     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor flag])
880     fi
881     fi
882     ])
883    
884    
885     AC_DEFUN(ACX_PROG_F90_PREPDEFFLAG,
886     [
887     AC_REQUIRE([AC_PROG_F90])
888     AC_REQUIRE([AC_CANONICAL_HOST])
889    
890     # Try to determine native compiler flags that allow us to use F90 suffix
891     # for preprocessed f90 source with -D type defines
892    
893     if test "$ac_test_PREPDEFFLAG" != "set"; then
894     PREPDEFFLAG=""
895     case "${host_cpu}-${host_os}" in
896    
897     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
898     PREPDEFFLAG=" "
899     fi;;
900     *aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
901     PREPDEFFLAG="-WF,"
902     fi;;
903     *darwin*)
904     if test "$F90" = f90 -o "$F90" = xlf90; then
905     PREPDEFFLAG="-WF,"
906     fi;;
907     esac
908    
909     if test -z "$PREPDEFFLAG"; then
910     AC_MSG_WARN("Using empty PREPDEFFLAG")
911     PREPDEFFLAG=" "
912     fi
913    
914     AC_MSG_CHECKING(to make sure F90 preprocessor define flag works)
915     AC_LANG_SAVE()
916     AC_LANG([Fortran 90])
917     ac_save_ext=$ac_ext
918     ac_ext=F90
919     ac_save_F90FLAGS=$F90FLAGS
920    
921     AS_IF([test "$PREPDEFFLAG"], [F90FLAGS="${F90FLAGS} ${PREPFLAG} ${PREPDEFFLAG}-DTEST"])
922     _AC_COMPILE_IFELSE([
923     AC_LANG_PROGRAM([
924     integer :: i
925     #ifdef TEST
926     i = 1
927     #else
928     choke me
929     #endif
930     ])], [prepdefflagworks=1], [prepdefflagworks=0])
931    
932     F90FLAGS=$ac_save_F90FLAGS
933     ac_ext=$ac_save_ext
934     AC_LANG_RESTORE()
935    
936    
937     if test "$prepdefflagworks" = 1; then
938     AC_MSG_RESULT(yes)
939     AC_SUBST(PREPDEFFLAG)
940     else
941     AC_MSG_RESULT(no)
942     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor define flag])
943     fi
944     fi
945     ])
946    
947     dnl check for the required MPI library
948     AC_DEFUN([ACX_MPI], [
949    
950     # Set variables...
951     MPI_LIB_DIR="$MPI/lib"
952     MPI_INC_DIR="$MPI/include"
953     AC_SUBST([MPI_LIB_DIR])
954     AC_SUBST([MPI_INC_DIR])
955    
956     AC_MSG_CHECKING([for mpi.h])
957     have_mpi_h=0
958     echo '#include <mpi.h>' > conftest.cc
959     if test -z "`${CXX} -I${MPI_INC_DIR} -c conftest.cc 2>&1`"; then
960     AC_MSG_RESULT(yes)
961     have_mpi_h=1
962     else
963     AC_MSG_RESULT(no! Check MPI include paths)
964     USE_MPI="no"
965     fi
966     rm -f conftest*
967     if test "$have_mpi_h" = 1; then
968     AC_DEFINE(HAVE_MPI_H, 1, [have mpi.h])
969     fi
970    
971     AC_MSG_CHECKING([whether mpif.h is usable])
972     have_mpif_h=0
973     rm -f conftest*
974     cat >conftest.f90 <<EOF
975     program main
976     include 'mpif.h'
977     end
978     EOF
979     if $F90 -I$MPI_INC_DIR -c conftest.f90 > conftest.out 2>&1 ; then
980     AC_MSG_RESULT(yes)
981     MPI_F90_INC="$MPI_INC_DIR"
982     have_mpif_h=1
983     else
984     if test -s conftest.out ; then
985     cat conftest.out >> config.log
986     fi
987     AC_MSG_RESULT([no! Check MPI include paths])
988     USE_MPI="no"
989     fi
990     rm -f conftest*
991     AC_SUBST(MPI_F90_INC)
992     if test "$have_mpif_h" = 1; then
993     AC_DEFINE(HAVE_MPIF_H, 1, [have mpif.h])
994     fi
995    
996     AC_LANG_PUSH(C)
997     ac_save_LDFLAGS=$LDFLAGS
998     LDFLAGS="${LDFLAGS} -L${MPI_LIB_DIR} "
999    
1000     if test x = x"$MPI_LIB"; then
1001     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"])
1002     fi
1003     if test x = x"$MPI_LIB"; then
1004     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"])
1005     fi
1006     $as_unset ac_cv_lib_mpi_MPI_Init
1007     if test x = x"$MPI_LIB"; then
1008     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [],
1009     "-llam")
1010     fi
1011 chuckv 1619 $as_unset ac_cv_lib_mpich_MPI_Init
1012     if test x = x"$MPI_LIB"; then
1013     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich -lpmpich"], [],
1014     "-lpmpich")
1015     fi
1016 gezelter 1490
1017     $as_unset ac_cv_lib_mpi_MPI_Init
1018     if test x = x"$MPI_LIB"; then
1019     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"],[
1020     AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])
1021     USE_MPI="no"
1022     ],
1023     [-llam -lpthread])
1024     fi
1025    
1026     AC_SUBST(MPI_LIB)
1027    
1028     AC_MSG_CHECKING([for MPI Fortran library])
1029     MPI_F90_LIB=""
1030     if test -f "$MPI_LIB_DIR/libfmpich.a" ; then
1031     MPI_F90_LIB="-lfmpich"
1032     elif test -f "$MPI_LIB_DIR/liblamf77mpi.a" ; then
1033     MPI_F90_LIB="-llamf77mpi"
1034     else
1035     dnl nothing special found, we'll assume that the C
1036     dnl library is all we need
1037     MPI_F90_LIB=" "
1038     fi
1039     AC_MSG_RESULT([found $MPI_F90_LIB])
1040     AC_SUBST(MPI_F90_LIB)
1041     ])dnl ACX_MPI
1042    
1043    
1044     dnl check for the required SPRNG library
1045     AC_DEFUN([ACX_SPRNG], [
1046    
1047     # Set variables...
1048     SPRNG_LIB_DIR="$SPRNG/lib"
1049     SPRNG_INC_DIR="$SPRNG/include"
1050     AC_SUBST([SPRNG_LIB_DIR])
1051     AC_SUBST([SPRNG_INC_DIR])
1052    
1053     AC_MSG_CHECKING([for sprng.h])
1054     have_sprng_h=0
1055     echo '#include <sprng.h>' > conftest.cc
1056     if test -z "`${CXX} -I${SPRNG_INC_DIR} -c conftest.cc 2>&1`"; then
1057     AC_MSG_RESULT(yes)
1058     have_sprng_h=1
1059     else
1060     AC_MSG_RESULT([no! Check SPRNG include path!])
1061     USE_SPRNG="no"
1062     fi
1063     rm -f conftest*
1064     if test "$have_sprng_h" = 1; then
1065     AC_DEFINE(HAVE_SPRNG_H, 1, [have sprng.h])
1066     fi
1067    
1068     AC_LANG_PUSH(C)
1069     ac_save_LDFLAGS=$LDFLAGS
1070     LDFLAGS="${LDFLAGS} -L${SPRNG_LIB_DIR} "
1071    
1072     AC_CHECK_LIB(sprng, init_rng, [SPRNG_LIB="-lsprng"], [
1073     AC_MSG_ERROR([Didn't find libsprng; check path for SPRNG package first...])
1074     USE_SPRNG="no"
1075     ])
1076    
1077     if test "$USE_SPRNG" = "no"; then
1078     AC_MSG_ERROR(No working SPRNG library found)
1079     fi
1080     AC_SUBST(SPRNG_LIB)
1081     ])dnl ACX_SPRNG
1082    
1083     AC_DEFUN([adl_FUNC_GETOPT_LONG],
1084     [AC_PREREQ(2.49)dnl
1085     # clean out junk possibly left behind by a previous configuration
1086 gezelter 1947 rm -f src/getopt.h
1087 gezelter 1490 # Check for getopt_long support
1088     AC_CHECK_HEADERS([getopt.h])
1089     AC_CHECK_FUNCS([getopt_long],,
1090     [# FreeBSD has a gnugetopt library for this
1091     AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
1092     [# use the GNU replacement
1093     AC_LIBOBJ(getopt)
1094     AC_LIBOBJ(getopt1)
1095 gezelter 1947 AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
1096 gezelter 1516
1097    
1098     AC_DEFUN([ACX_CONFIG_HOME], [
1099     myDir=${0%/*}
1100     if [ "$myDir" = "$0" ]; then
1101     # Ran from local directory
1102     myDir=$PWD
1103     fi
1104     # Resolve symlinks.
1105     myProgram="$0"
1106     while [ -L "$myProgram" ]; do
1107     ls=`/bin/ls -ld "$myProgram"`
1108     link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
1109     if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
1110     myProgram="$link"
1111     else
1112     myProgram="`AS_DIRNAME([$myProgram])`/$link"
1113     fi
1114     done
1115     myDir=`AS_DIRNAME([$myProgram])`
1116     fi
1117     CONFIG_HOME=$myDir
1118     ])
1119 gezelter 1540
1120     AC_DEFUN(BB_ENABLE_DOXYGEN,
1121     [
1122     AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
1123     AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
1124     AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
1125     AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
1126     if test "x$enable_doxygen" = xno; then
1127     enable_doc=no
1128     else
1129     AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
1130     if test "x$DOXYGEN" = x; then
1131     if test "x$enable_doxygen" = xyes; then
1132     AC_MSG_ERROR([could not find doxygen])
1133     fi
1134     enable_doc=no
1135     else
1136     enable_doc=yes
1137     AC_PATH_PROG(DOT, dot, , $PATH)
1138     fi
1139     fi
1140    
1141     if test "x$enable_doc" = xyes; then
1142     DOC=1
1143     else
1144     DOC=0
1145     fi
1146     AC_SUBST(DOC)
1147    
1148     if test x$DOT = x; then
1149     if test "x$enable_dot" = xyes; then
1150     AC_MSG_ERROR([could not find dot])
1151     fi
1152     enable_dot=no
1153     else
1154     enable_dot=yes
1155     fi
1156     AC_SUBST(enable_dot)
1157     AC_SUBST(enable_html_docs)
1158     AC_SUBST(enable_latex_docs)
1159     ])
1160 gezelter 2199 #
1161     #
1162     #
1163     AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
1164 gezelter 1540
1165 gezelter 2199 AC_PATH_PROG(PERLINTERP,perl,perl)
1166     ac_cv_path_perlinterp="$PERLINTERP"
1167     _sHpB='#!'
1168    
1169     AC_ARG_WITH(perl-shebang,
1170     AC_HELP_STRING([--with-perl-shebang],
1171     [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
1172     ),
1173     [opt_perl_shebang="$withval"]dnl
1174     ,dnl
1175     [opt_perl_shebang="not_set"]dnl
1176     )dnl
1177    
1178     AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
1179     ax_cv_opt_perl_shebang,
1180     [ case "$opt_perl_shebang" in
1181     not_set ) ax_cv_opt_perl_shebang=''
1182     ;;
1183     * )
1184     ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
1185     esac
1186     ]dnl
1187     )dnl
1188    
1189     if test "A$ax_cv_opt_perl_shebang" != "A"
1190     then
1191     ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
1192     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1193     AC_SUBST(PERL_SHEBANG)dnl
1194     AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
1195    
1196     # Automatic detection of sharpbang formula starts here
1197     else dnl
1198    
1199     _somian_shbangperl=`$PERLINTERP -V:startperl`
1200     negclass="[[^']]"; dnl
1201     # must leave this comment: m4 will remove the outer brackets for us, heheh
1202     AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
1203     ac_cv_sys_kernshrpbang_perl,
1204     [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
1205     if test "x$_somian_kspb_perl" == x
1206     then _somian_ksbp_warn_empty='durnit'
1207     else
1208     case "A$_somian_kspb_perl" in
1209     A#!*perl* )
1210     ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
1211     ;;
1212     A* ) _somian_ksbp_warn_defau='trouble'
1213     ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
1214     esac
1215     fi
1216     ])dnl Done with testing sharpbang
1217    
1218     # The above prints Checking ... result message to user.
1219     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1220     AC_SUBST(PERL_SHEBANG)
1221     if test A${_somian_ksbp_warn_empty+set} == Aset
1222     then AC_MSG_WARN([dnl
1223     In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
1224     fi
1225     # Inform user after printing result value
1226     if test A${_somian_ksbp_warn_defau+set} == Aset
1227     then AC_MSG_NOTICE([Maybe Not good -])
1228     AC_MSG_WARN([dnl
1229     In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
1230     else AC_MSG_NOTICE([OK Good result - ])
1231     AC_MSG_NOTICE([dnl
1232     In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
1233     dnl Done with user info messages
1234     fi
1235     dnl Outer loop checked for user override term here
1236     fi dnl
1237    
1238     ])dnl EOMACRO DEF