ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/ac-tools/aclocal.m4
Revision: 2505
Committed: Fri Dec 9 17:11:12 2005 UTC (18 years, 9 months ago) by gezelter
File size: 37404 byte(s)
Log Message:
added some checks for pathscale compiler

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 gezelter 2505 #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
466     no;
467     #else
468 gezelter 1490 yes;
469     #endif
470     #endif
471     EOF
472     if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
473     ac_cv_prog_really_gcc=yes
474     else
475     ac_cv_prog_really_gcc=no
476     fi
477     ])
478     if test "$ac_cv_prog_really_gcc" = yes; then
479     :
480     $1
481     else
482     :
483     $2
484     fi
485     ])
486    
487     AC_DEFUN(ACX_PROG_REALLY_GXX,
488     [
489     AC_REQUIRE([AC_PROG_CXX])
490     AC_CACHE_CHECK(whether we are *really* using GNU c++, ac_cv_prog_really_gxx,
491     [
492     dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp.
493     cat > conftest.cpp <<EOF
494 gezelter 2505 #ifdef __GNUC__
495     #if defined(__INTEL_COMPILER) || defined(__PATHCC__)
496     no;
497     #else
498 gezelter 1490 yes;
499     #endif
500     #endif
501     EOF
502     if AC_TRY_COMMAND(${CXX-c++} -E conftest.cpp) | egrep yes >/dev/null 2>&1; then
503     ac_cv_prog_really_gxx=yes
504     else
505     ac_cv_prog_really_gxx=no
506     fi
507     ])
508     if test "$ac_cv_prog_really_gxx" = yes; then
509     :
510     $1
511     else
512     :
513     $2
514     fi
515     ])
516    
517    
518     AC_DEFUN(ACX_PROG_CC_MAXOPT,
519     [
520     AC_REQUIRE([AC_PROG_CC])
521     AC_REQUIRE([AC_CANONICAL_HOST])
522    
523     ACX_PROG_REALLY_GCC
524    
525     # Try to determine "good" native compiler flags if none specified on command
526     # line
527     if test "$ac_test_CFLAGS" != "set"; then
528     CFLAGS=""
529     case "${host_cpu}-${host_os}" in
530    
531     *linux*) if test "$CC" = icc; then
532     CFLAGS="-O"
533     fi;;
534     sparc-solaris2*) if test "$CC" = cc; then
535     CFLAGS="-native -fast -xO5 -dalign"
536     fi;;
537    
538     alpha*-osf*) if test "$CC" = cc; then
539     CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host -arch host -std1"
540     fi;;
541    
542     hppa*-hpux*) if test "$CC" = cc; then
543     CFLAGS="-Ae +O3 +Oall"
544     fi;;
545    
546     rs6000*-aix*) if test "$CC" = cc -o "$CC" = xlc; then
547     CFLAGS="-O3 -qtune=auto -qansialias -w"
548     fi;;
549     powerpc*-aix*)
550     if test "$CC" = cc -o "$CC" = xlc; then
551     CFLAGS="-O3 -qtune=auto -qansialias -w"
552     echo "*******************************************************"
553     echo "* You have AIX on an unknown powerpc system. It is *"
554     echo "* recommended that you use *"
555     echo "* *"
556     echo "* CFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
557     echo "* ^^^ *"
558     echo "* where xxx is 601, 603, 604, or whatever kind of *"
559     echo "* PowerPC CPU you have. For more info, man cc. *"
560     echo "*******************************************************"
561     fi;;
562     *darwin*)
563     if test "$CC" = xlc -o "$CC" = cc; then
564 chuckv 1579 CFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
565 gezelter 1490 fi;;
566     esac
567    
568     # use default flags for gcc on all systems
569     if test $ac_cv_prog_really_gcc = yes; then
570     CFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic"
571     fi
572    
573     # test for gcc-specific flags:
574     if test $ac_cv_prog_really_gcc = yes; then
575     # -malign-double for x86 systems
576     ACX_CHECK_CC_FLAGS(-malign-double,align_double, CFLAGS="$CFLAGS -malign-double")
577     # -fstrict-aliasing for gcc-2.95+
578     ACX_CHECK_CC_FLAGS(-fstrict-aliasing,fstrict_aliasing, CFLAGS="$CFLAGS -fstrict-aliasing")
579     fi
580    
581     CPU_FLAGS=""
582     if test $ac_cv_prog_really_gcc = yes; then
583     dnl try to guess correct CPU flags, at least for linux
584     case "${host_cpu}" in
585     i586*) ACX_CHECK_CC_FLAGS(-mcpu=pentium,cpu_pentium,
586     [CPU_FLAGS=-mcpu=pentium],
587     [ACX_CHECK_CC_FLAGS(-mpentium,pentium,
588     [CPU_FLAGS=-mpentium])])
589     ;;
590     i686*) ACX_CHECK_CC_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
591     [CPU_FLAGS=-mcpu=pentiumpro],
592     [ACX_CHECK_CC_FLAGS(-mpentiumpro,pentiumpro,
593     [CPU_FLAGS=-mpentiumpro])])
594     ;;
595     powerpc*)
596     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
597     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
598     if test -n "$is60x"; then
599     ACX_CHECK_CC_FLAGS(-mcpu=$cputype,m_cpu_60x,
600     CPU_FLAGS=-mcpu=$cputype)
601     elif test "$cputype" = 750; then
602     ACX_PROG_GCC_VERSION(2,95,
603     ACX_CHECK_CC_FLAGS(-mcpu=750,m_cpu_750,
604     CPU_FLAGS=-mcpu=750))
605     fi
606     if test -z "$CPU_FLAGS"; then
607     ACX_CHECK_CC_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
608     CPU_FLAGS=-mcpu=powerpc)
609     fi
610     if test -z "$CPU_FLAGS"; then
611     ACX_CHECK_CC_FLAGS(-mpowerpc,m_powerpc,
612     CPU_FLAGS=-mpowerpc)
613     fi
614     esac
615     fi
616    
617     if test -n "$CPU_FLAGS"; then
618     CFLAGS="$CFLAGS $CPU_FLAGS"
619     fi
620    
621     if test -z "$CFLAGS"; then
622     echo ""
623     echo "********************************************************"
624     echo "* WARNING: Don't know the best CFLAGS for this system *"
625     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
626     echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
627     echo "********************************************************"
628     echo ""
629     CFLAGS="-O3"
630     fi
631    
632     ACX_CHECK_CC_FLAGS(${CFLAGS}, guessed_cflags, , [
633     echo ""
634     echo "********************************************************"
635     echo "* WARNING: The guessed CFLAGS don't seem to work with *"
636     echo "* your compiler. *"
637     echo "* Use make CFLAGS=..., or edit the top level Makefile *"
638     echo "********************************************************"
639     echo ""
640     CFLAGS=""
641     ])
642    
643     fi
644     ])
645    
646     AC_DEFUN(ACX_PROG_CXX_MAXOPT,
647     [
648     AC_REQUIRE([AC_PROG_CXX])
649     AC_REQUIRE([AC_CANONICAL_HOST])
650    
651     ACX_PROG_REALLY_GXX
652    
653     # Try to determine "good" native compiler flags if none specified on command
654     # line
655     if test "$ac_test_CXXFLAGS" != "set"; then
656     CXXFLAGS=""
657     case "${host_cpu}-${host_os}" in
658    
659     *linux*) if test "$CXX" = icc -o "$CXX" = icpc; then
660     CXXFLAGS="-O"
661     fi;;
662     sparc-solaris2*) if test "$CXX" = CC; then
663     CXXFLAGS="-native -fast -xO5 -dalign"
664     fi;;
665     rs6000*-aix*) if test "$CXX" = xlC; then
666     CXXFLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
667     fi;;
668     powerpc*-aix*)
669     if test "$CXX" = xlC; then
670     CXXFLAGS="-O3 -qarch=ppc -qansialias -w"
671     echo "*******************************************************"
672     echo "* You have AIX on an unknown powerpc system. It is *"
673     echo "* recommended that you use *"
674     echo "* *"
675     echo "* CXXFLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
676     echo "* ^^^ *"
677     echo "* where xxx is 601, 603, 604, or whatever kind of *"
678     echo "* PowerPC CPU you have. For more info, man cc. *"
679     echo "*******************************************************"
680     fi;;
681     *darwin*)
682 gezelter 2022 if test "$CXX" = xlc++ -o "$CXX" = xlC ; then
683 chuckv 1579 CXXFLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto -qaltivec"
684 gezelter 1490 fi;;
685     esac
686    
687     # use default flags for gcc on all systems
688     if test $ac_cv_prog_really_gxx = yes; then
689     CXXFLAGS="-O6 -fomit-frame-pointer -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic"
690     fi
691    
692     # test for gcc-specific flags:
693     if test $ac_cv_prog_really_gxx = yes; then
694     # -malign-double for x86 systems
695     ACX_CHECK_CXX_FLAGS(-malign-double,align_double, CXXFLAGS="$CXXFLAGS -malign-double")
696     # -fstrict-aliasing for gcc-2.95+
697     ACX_CHECK_CXX_FLAGS(-fstrict-aliasing,fstrict_aliasing, CXXFLAGS="$CXXFLAGS -fstrict-aliasing")
698     fi
699    
700     CPU_FLAGS=""
701     if test $ac_cv_prog_really_gxx = yes; then
702     dnl try to guess correct CPU flags, at least for linux
703     case "${host_cpu}" in
704     i586*) ACX_CHECK_CXX_FLAGS(-mcpu=pentium,cpu_pentium,
705     [CPU_FLAGS=-mcpu=pentium],
706     [ACX_CHECK_CXX_FLAGS(-mpentium,pentium,
707     [CPU_FLAGS=-mpentium])])
708     ;;
709     i686*) ACX_CHECK_CXX_FLAGS(-mcpu=pentiumpro,cpu_pentiumpro,
710     [CPU_FLAGS=-mcpu=pentiumpro],
711     [ACX_CHECK_CXX_FLAGS(-mpentiumpro,pentiumpro,
712     [CPU_FLAGS=-mpentiumpro])])
713     ;;
714     powerpc*)
715     cputype=`(grep cpu /proc/cpuinfo | head -1 | cut -d: -f2 | sed 's/ //g') 2> /dev/null`
716     is60x=`echo $cputype | egrep "^60[0-9]e?$"`
717     if test -n "$is60x"; then
718     ACX_CHECK_CXX_FLAGS(-mcpu=$cputype,m_cpu_60x,
719     CPU_FLAGS=-mcpu=$cputype)
720     elif test "$cputype" = 750; then
721     ACX_PROG_GXX_VERSION(2,95,
722     ACX_CHECK_CXX_FLAGS(-mcpu=750,m_cpu_750,
723     CPU_FLAGS=-mcpu=750))
724     fi
725     if test -z "$CPU_FLAGS"; then
726     ACX_CHECK_CXX_FLAGS(-mcpu=powerpc,m_cpu_powerpc,
727     CPU_FLAGS=-mcpu=powerpc)
728     fi
729     if test -z "$CPU_FLAGS"; then
730     ACX_CHECK_CXX_FLAGS(-mpowerpc,m_powerpc,
731     CPU_FLAGS=-mpowerpc)
732     fi
733     esac
734     fi
735    
736     if test -n "$CPU_FLAGS"; then
737     CXXFLAGS="$CXXFLAGS $CPU_FLAGS"
738     fi
739    
740     if test -z "$CXXFLAGS"; then
741     echo ""
742     echo "**********************************************************"
743     echo "* WARNING: Don't know the best CXXFLAGS for this system *"
744     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
745     echo "* (otherwise, a default of CXXFLAGS=-O3 will be used) *"
746     echo "**********************************************************"
747     echo ""
748     CXXFLAGS="-O3"
749     fi
750    
751     ACX_CHECK_CXX_FLAGS(${CXXFLAGS}, guessed_cxxflags, , [
752     echo ""
753     echo "**********************************************************"
754     echo "* WARNING: The guessed CXXFLAGS don't seem to work with *"
755     echo "* your compiler. *"
756     echo "* Use make CXXFLAGS=..., or edit the top level Makefile *"
757     echo "**********************************************************"
758     echo ""
759     CXXFLAGS=""
760     ])
761    
762     fi
763     ])
764    
765     AC_DEFUN(ACX_PROG_F90_MAXOPT,
766     [
767     AC_REQUIRE([AC_PROG_F90])
768     AC_REQUIRE([AC_CANONICAL_HOST])
769    
770     # Try to determine "good" native compiler flags if none specified on command
771     # line
772    
773     if test x"$F90FLAGS" = x ; then
774     F90FLAGS=""
775     case "${host_cpu}-${host_os}" in
776    
777     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
778     F90FLAGS="-O"
779     fi;;
780     rs6000*-aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
781     F90FLAGS="-O3 -qarch=pwrx -qtune=pwrx -qansialias -w"
782     fi;;
783     powerpc*-aix*)
784     if test "$F90" = f90 -o "$F90" = xlf90; then
785     F90FLAGS="-O3 -qarch=ppc -qansialias -w"
786     echo "*******************************************************"
787     echo "* You have AIX on an unknown powerpc system. It is *"
788     echo "* recommended that you use *"
789     echo "* *"
790     echo "* F90FLAGS=-O3 -qarch=ppc -qtune=xxx -qansialias -w *"
791     echo "* ^^^ *"
792     echo "* where xxx is 601, 603, 604, or whatever kind of *"
793     echo "* PowerPC CPU you have. For more info, man xlf. *"
794     echo "*******************************************************"
795     fi;;
796     *darwin*)
797     if test "$F90" = f90 -o "$F90" = xlf90 -o "$F90" = xlf95; then
798 chuckv 1579 F90FLAGS="-qthreaded -O -qtune=auto -qarch=auto -qunroll=auto"
799 gezelter 1490 fi;;
800     esac
801    
802     if test -n "$CPU_FLAGS"; then
803     F90FLAGS="$F90FLAGS $CPU_FLAGS"
804     fi
805    
806     if test -z "$F90FLAGS"; then
807     echo ""
808     echo "**********************************************************"
809     echo "* WARNING: Don't know the best F90FLAGS for this system *"
810     echo "* Use make F90FLAGS=..., or edit the top level Makefile *"
811     echo "* (otherwise, a default of F90FLAGS=-O3 will be used) *"
812     echo "**********************************************************"
813     echo ""
814     F90FLAGS="-O3"
815     fi
816    
817     ACX_CHECK_F90_FLAGS(${F90FLAGS}, guessed_f90flags, , [
818     echo ""
819     echo "**********************************************************"
820     echo "* WARNING: The guessed F90FLAGS don't seem to work with *"
821     echo "* your compiler. *"
822     echo "* Use make F90FLAGS=..., or edit the top level Makefile *"
823     echo "**********************************************************"
824     echo ""
825     F90FLAGS=""
826     ])
827    
828     fi
829     ])
830    
831     AC_DEFUN(ACX_PROG_F90_PREPFLAG,
832     [
833     AC_REQUIRE([AC_PROG_F90])
834     AC_REQUIRE([AC_CANONICAL_HOST])
835    
836     # Try to determine native compiler flags that allow us to use F90 suffix
837     # for preprocessed f90 source.
838    
839     if test "$ac_test_PREPFLAG" != "set"; then
840     PREPFLAG=""
841     case "${host_cpu}-${host_os}" in
842    
843     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
844     PREPFLAG="-fpp1 "
845     fi;;
846     *aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
847     PREPFLAG="-qsuffix=cpp=F90 "
848     fi;;
849     *darwin*)
850     if test "$F90" = f90 -o "$F90" = xlf90; then
851     PREPFLAG="-qsuffix=cpp=F90 "
852     fi;;
853     esac
854    
855     if test -z "$PREPFLAG"; then
856     AC_MSG_WARN("Using empty PREPFLAG")
857     PREPFLAG=""
858     fi
859    
860     AC_MSG_CHECKING(to make sure F90 preprocessor flag works)
861     AC_LANG_SAVE()
862     AC_LANG([Fortran 90])
863     ac_save_ext=$ac_ext
864     ac_ext=F90
865     ac_save_F90FLAGS=$F90FLAGS
866    
867     AS_IF([test "$PREPFLAG"], [F90FLAGS="${F90FLAGS} ${PREPFLAG}-DTEST"])
868     _AC_COMPILE_IFELSE([
869     AC_LANG_PROGRAM([
870     integer :: i
871     i = 1
872     ])], [prepflagworks=1], [prepflagworks=0])
873    
874     F90FLAGS=$ac_save_F90FLAGS
875     ac_ext=$ac_save_ext
876     AC_LANG_RESTORE()
877    
878     if test "$prepflagworks" = 1; then
879     AC_MSG_RESULT(yes)
880     AC_SUBST(PREPFLAG)
881     else
882     AC_MSG_RESULT(no)
883     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor flag])
884     fi
885     fi
886     ])
887    
888    
889     AC_DEFUN(ACX_PROG_F90_PREPDEFFLAG,
890     [
891     AC_REQUIRE([AC_PROG_F90])
892     AC_REQUIRE([AC_CANONICAL_HOST])
893    
894     # Try to determine native compiler flags that allow us to use F90 suffix
895     # for preprocessed f90 source with -D type defines
896    
897     if test "$ac_test_PREPDEFFLAG" != "set"; then
898     PREPDEFFLAG=""
899     case "${host_cpu}-${host_os}" in
900    
901     *linux*) if test "$F90" = ifc -o "$F90" = ifort; then
902     PREPDEFFLAG=" "
903     fi;;
904     *aix*) if test "$F90" = xlf90 -o "$F90" = f90; then
905     PREPDEFFLAG="-WF,"
906     fi;;
907     *darwin*)
908     if test "$F90" = f90 -o "$F90" = xlf90; then
909     PREPDEFFLAG="-WF,"
910     fi;;
911     esac
912    
913     if test -z "$PREPDEFFLAG"; then
914     AC_MSG_WARN("Using empty PREPDEFFLAG")
915     PREPDEFFLAG=" "
916     fi
917    
918     AC_MSG_CHECKING(to make sure F90 preprocessor define flag works)
919     AC_LANG_SAVE()
920     AC_LANG([Fortran 90])
921     ac_save_ext=$ac_ext
922     ac_ext=F90
923     ac_save_F90FLAGS=$F90FLAGS
924    
925     AS_IF([test "$PREPDEFFLAG"], [F90FLAGS="${F90FLAGS} ${PREPFLAG} ${PREPDEFFLAG}-DTEST"])
926     _AC_COMPILE_IFELSE([
927     AC_LANG_PROGRAM([
928     integer :: i
929     #ifdef TEST
930     i = 1
931     #else
932     choke me
933     #endif
934     ])], [prepdefflagworks=1], [prepdefflagworks=0])
935    
936     F90FLAGS=$ac_save_F90FLAGS
937     ac_ext=$ac_save_ext
938     AC_LANG_RESTORE()
939    
940    
941     if test "$prepdefflagworks" = 1; then
942     AC_MSG_RESULT(yes)
943     AC_SUBST(PREPDEFFLAG)
944     else
945     AC_MSG_RESULT(no)
946     AC_MSG_ERROR([Can't figure out working Fortran90 preprocessor define flag])
947     fi
948     fi
949     ])
950    
951     dnl check for the required MPI library
952     AC_DEFUN([ACX_MPI], [
953    
954     # Set variables...
955     MPI_LIB_DIR="$MPI/lib"
956     MPI_INC_DIR="$MPI/include"
957     AC_SUBST([MPI_LIB_DIR])
958     AC_SUBST([MPI_INC_DIR])
959    
960     AC_MSG_CHECKING([for mpi.h])
961     have_mpi_h=0
962 gezelter 2265 rm -f conftest*
963 gezelter 1490 echo '#include <mpi.h>' > conftest.cc
964 gezelter 2265 if ${CXX} -I${MPI_INC_DIR} -c conftest.cc 2>&1 ; then
965 gezelter 1490 AC_MSG_RESULT(yes)
966     have_mpi_h=1
967     else
968 gezelter 2265 if test -s conftest.out ; then
969     cat conftest.out >> config.log
970     fi
971 gezelter 1490 AC_MSG_RESULT(no! Check MPI include paths)
972     USE_MPI="no"
973     fi
974     rm -f conftest*
975     if test "$have_mpi_h" = 1; then
976     AC_DEFINE(HAVE_MPI_H, 1, [have mpi.h])
977     fi
978    
979     AC_MSG_CHECKING([whether mpif.h is usable])
980     have_mpif_h=0
981     rm -f conftest*
982     cat >conftest.f90 <<EOF
983     program main
984     include 'mpif.h'
985     end
986     EOF
987     if $F90 -I$MPI_INC_DIR -c conftest.f90 > conftest.out 2>&1 ; then
988     AC_MSG_RESULT(yes)
989     MPI_F90_INC="$MPI_INC_DIR"
990     have_mpif_h=1
991     else
992     if test -s conftest.out ; then
993     cat conftest.out >> config.log
994     fi
995     AC_MSG_RESULT([no! Check MPI include paths])
996     USE_MPI="no"
997     fi
998     rm -f conftest*
999     AC_SUBST(MPI_F90_INC)
1000     if test "$have_mpif_h" = 1; then
1001     AC_DEFINE(HAVE_MPIF_H, 1, [have mpif.h])
1002     fi
1003    
1004     AC_LANG_PUSH(C)
1005     ac_save_LDFLAGS=$LDFLAGS
1006     LDFLAGS="${LDFLAGS} -L${MPI_LIB_DIR} "
1007    
1008     if test x = x"$MPI_LIB"; then
1009     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich"])
1010     fi
1011     if test x = x"$MPI_LIB"; then
1012     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi"])
1013     fi
1014     $as_unset ac_cv_lib_mpi_MPI_Init
1015     if test x = x"$MPI_LIB"; then
1016     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam"], [],
1017     "-llam")
1018     fi
1019 chuckv 1619 $as_unset ac_cv_lib_mpich_MPI_Init
1020     if test x = x"$MPI_LIB"; then
1021     AC_CHECK_LIB(mpich, MPI_Init, [MPI_LIB="-lmpich -lpmpich"], [],
1022     "-lpmpich")
1023     fi
1024 gezelter 1490
1025     $as_unset ac_cv_lib_mpi_MPI_Init
1026     if test x = x"$MPI_LIB"; then
1027     AC_CHECK_LIB(mpi, MPI_Init, [MPI_LIB="-lmpi -llam -lpthread"],[
1028     AC_MSG_ERROR([Didn't find liblam, libmpi, or libmpich; check path for MPI package first...])
1029     USE_MPI="no"
1030     ],
1031     [-llam -lpthread])
1032     fi
1033    
1034     AC_SUBST(MPI_LIB)
1035    
1036     AC_MSG_CHECKING([for MPI Fortran library])
1037     MPI_F90_LIB=""
1038     if test -f "$MPI_LIB_DIR/libfmpich.a" ; then
1039     MPI_F90_LIB="-lfmpich"
1040     elif test -f "$MPI_LIB_DIR/liblamf77mpi.a" ; then
1041     MPI_F90_LIB="-llamf77mpi"
1042     else
1043     dnl nothing special found, we'll assume that the C
1044     dnl library is all we need
1045     MPI_F90_LIB=" "
1046     fi
1047     AC_MSG_RESULT([found $MPI_F90_LIB])
1048     AC_SUBST(MPI_F90_LIB)
1049     ])dnl ACX_MPI
1050    
1051    
1052     dnl check for the required SPRNG library
1053     AC_DEFUN([ACX_SPRNG], [
1054    
1055     # Set variables...
1056     SPRNG_LIB_DIR="$SPRNG/lib"
1057     SPRNG_INC_DIR="$SPRNG/include"
1058     AC_SUBST([SPRNG_LIB_DIR])
1059     AC_SUBST([SPRNG_INC_DIR])
1060    
1061     AC_MSG_CHECKING([for sprng.h])
1062     have_sprng_h=0
1063     echo '#include <sprng.h>' > conftest.cc
1064     if test -z "`${CXX} -I${SPRNG_INC_DIR} -c conftest.cc 2>&1`"; then
1065     AC_MSG_RESULT(yes)
1066     have_sprng_h=1
1067     else
1068     AC_MSG_RESULT([no! Check SPRNG include path!])
1069     USE_SPRNG="no"
1070     fi
1071     rm -f conftest*
1072     if test "$have_sprng_h" = 1; then
1073     AC_DEFINE(HAVE_SPRNG_H, 1, [have sprng.h])
1074     fi
1075    
1076     AC_LANG_PUSH(C)
1077     ac_save_LDFLAGS=$LDFLAGS
1078     LDFLAGS="${LDFLAGS} -L${SPRNG_LIB_DIR} "
1079    
1080     AC_CHECK_LIB(sprng, init_rng, [SPRNG_LIB="-lsprng"], [
1081     AC_MSG_ERROR([Didn't find libsprng; check path for SPRNG package first...])
1082     USE_SPRNG="no"
1083     ])
1084    
1085     if test "$USE_SPRNG" = "no"; then
1086     AC_MSG_ERROR(No working SPRNG library found)
1087     fi
1088     AC_SUBST(SPRNG_LIB)
1089     ])dnl ACX_SPRNG
1090    
1091     AC_DEFUN([adl_FUNC_GETOPT_LONG],
1092     [AC_PREREQ(2.49)dnl
1093     # clean out junk possibly left behind by a previous configuration
1094 gezelter 1947 rm -f src/getopt.h
1095 gezelter 1490 # Check for getopt_long support
1096     AC_CHECK_HEADERS([getopt.h])
1097     AC_CHECK_FUNCS([getopt_long],,
1098     [# FreeBSD has a gnugetopt library for this
1099     AC_CHECK_LIB([gnugetopt],[getopt_long],[AC_DEFINE([HAVE_GETOPT_LONG])],
1100     [# use the GNU replacement
1101     AC_LIBOBJ(getopt)
1102     AC_LIBOBJ(getopt1)
1103 gezelter 1947 AC_CONFIG_LINKS([src/getopt.h:src/utils/gnugetopt.h])])])])
1104 gezelter 1516
1105    
1106     AC_DEFUN([ACX_CONFIG_HOME], [
1107     myDir=${0%/*}
1108     if [ "$myDir" = "$0" ]; then
1109     # Ran from local directory
1110     myDir=$PWD
1111     fi
1112     # Resolve symlinks.
1113     myProgram="$0"
1114     while [ -L "$myProgram" ]; do
1115     ls=`/bin/ls -ld "$myProgram"`
1116     link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
1117     if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
1118     myProgram="$link"
1119     else
1120     myProgram="`AS_DIRNAME([$myProgram])`/$link"
1121     fi
1122     done
1123     myDir=`AS_DIRNAME([$myProgram])`
1124     fi
1125     CONFIG_HOME=$myDir
1126     ])
1127 gezelter 1540
1128     AC_DEFUN(BB_ENABLE_DOXYGEN,
1129     [
1130     AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)])
1131     AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)])
1132     AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])
1133     AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no])
1134     if test "x$enable_doxygen" = xno; then
1135     enable_doc=no
1136     else
1137     AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
1138     if test "x$DOXYGEN" = x; then
1139     if test "x$enable_doxygen" = xyes; then
1140     AC_MSG_ERROR([could not find doxygen])
1141     fi
1142     enable_doc=no
1143     else
1144     enable_doc=yes
1145     AC_PATH_PROG(DOT, dot, , $PATH)
1146     fi
1147     fi
1148    
1149     if test "x$enable_doc" = xyes; then
1150     DOC=1
1151     else
1152     DOC=0
1153     fi
1154     AC_SUBST(DOC)
1155    
1156     if test x$DOT = x; then
1157     if test "x$enable_dot" = xyes; then
1158     AC_MSG_ERROR([could not find dot])
1159     fi
1160     enable_dot=no
1161     else
1162     enable_dot=yes
1163     fi
1164     AC_SUBST(enable_dot)
1165     AC_SUBST(enable_html_docs)
1166     AC_SUBST(enable_latex_docs)
1167     ])
1168 gezelter 2199 #
1169     #
1170     #
1171     AC_DEFUN([AX_SYS_PERLSHARPBANG],[dnl
1172 gezelter 1540
1173 gezelter 2199 AC_PATH_PROG(PERLINTERP,perl,perl)
1174     ac_cv_path_perlinterp="$PERLINTERP"
1175     _sHpB='#!'
1176    
1177     AC_ARG_WITH(perl-shebang,
1178     AC_HELP_STRING([--with-perl-shebang],
1179     [override what perl thinks is the way for the kernel to start it (seldom needed)]dnl
1180     ),
1181     [opt_perl_shebang="$withval"]dnl
1182     ,dnl
1183     [opt_perl_shebang="not_set"]dnl
1184     )dnl
1185    
1186     AC_CACHE_CHECK([whether explicit instead of detected sharpbang is to be used],
1187     ax_cv_opt_perl_shebang,
1188     [ case "$opt_perl_shebang" in
1189     not_set ) ax_cv_opt_perl_shebang=''
1190     ;;
1191     * )
1192     ax_cv_opt_perl_shebang=`echo "$opt_perl_shebang" | sed -e's|^#!\s*\(.*\)$|\1|'`
1193     esac
1194     ]dnl
1195     )dnl
1196    
1197     if test "A$ax_cv_opt_perl_shebang" != "A"
1198     then
1199     ac_cv_sys_kernshrpbang_perl="$ax_cv_opt_perl_shebang"
1200     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1201     AC_SUBST(PERL_SHEBANG)dnl
1202     AC_MSG_NOTICE([OK - PERL_SHEBANG is $_sHpB$PERL_SHEBANG.])
1203    
1204     # Automatic detection of sharpbang formula starts here
1205     else dnl
1206    
1207     _somian_shbangperl=`$PERLINTERP -V:startperl`
1208     negclass="[[^']]"; dnl
1209     # must leave this comment: m4 will remove the outer brackets for us, heheh
1210     AC_CACHE_CHECK([for kernel sharpbang invocation to start perl],
1211     ac_cv_sys_kernshrpbang_perl,
1212     [_somian_kspb_perl=`echo "$_somian_shbangperl" | sed -ne"s|.*='\($negclass*\)';$|\1|p"`
1213     if test "x$_somian_kspb_perl" == x
1214     then _somian_ksbp_warn_empty='durnit'
1215     else
1216     case "A$_somian_kspb_perl" in
1217     A#!*perl* )
1218     ac_cv_sys_kernshrpbang_perl=`echo "$_somian_kspb_perl" | sed -e's|#!\(.*\)$|\1|'`
1219     ;;
1220     A* ) _somian_ksbp_warn_defau='trouble'
1221     ac_cv_sys_kernshrpbang_perl="$PERLINTERP"
1222     esac
1223     fi
1224     ])dnl Done with testing sharpbang
1225    
1226     # The above prints Checking ... result message to user.
1227     PERL_SHEBANG="$ac_cv_sys_kernshrpbang_perl"
1228     AC_SUBST(PERL_SHEBANG)
1229     if test A${_somian_ksbp_warn_empty+set} == Aset
1230     then AC_MSG_WARN([dnl
1231     In last check, doing $PERLINTERP -V:startperl yielded empty result! That should not happen.])
1232     fi
1233     # Inform user after printing result value
1234     if test A${_somian_ksbp_warn_defau+set} == Aset
1235     then AC_MSG_NOTICE([Maybe Not good -])
1236     AC_MSG_WARN([dnl
1237     In last check perl's Config query did not work so we bunted: $_sHpB$PERLINTERP])
1238     else AC_MSG_NOTICE([OK Good result - ])
1239     AC_MSG_NOTICE([dnl
1240     In last check we got a proper-looking answer from perl's Config: $_somian_shbangperl])
1241     dnl Done with user info messages
1242     fi
1243     dnl Outer loop checked for user override term here
1244     fi dnl
1245    
1246     ])dnl EOMACRO DEF
1247 gezelter 2315
1248     AC_DEFUN([ACX_CHECK_ZLIB],
1249     #
1250     # Handle user hints
1251     #
1252     [AC_MSG_CHECKING(if zlib is wanted)
1253     AC_ARG_WITH(zlib,
1254     [ --with-zlib=DIR root directory path of zlib installation [defaults to
1255     /usr/local or /usr if not found in /usr/local]
1256     --without-zlib to disable zlib usage completely],
1257     [if test "$withval" != no ; then
1258     AC_MSG_RESULT(yes)
1259     if test -d "$withval"
1260     then
1261     ZLIB_HOME="$withval"
1262     else
1263     AC_MSG_WARN([Sorry, $withval does not exist, checking usual places])
1264     fi
1265     else
1266     AC_MSG_RESULT(no)
1267     fi])
1268    
1269     ZLIB_HOME=/usr/local
1270     if test ! -f "${ZLIB_HOME}/include/zlib.h"
1271     then
1272     ZLIB_HOME=/usr
1273     fi
1274    
1275     #
1276     # Locate zlib, if wanted
1277     #
1278     if test -n "${ZLIB_HOME}"
1279     then
1280     ZLIB_OLD_LDFLAGS=$LDFLAGS
1281     ZLIB_OLD_CPPFLAGS=$LDFLAGS
1282     LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib"
1283     CPPFLAGS="$CPPFLAGS -I${ZLIB_HOME}/include"
1284     AC_LANG_SAVE
1285     AC_LANG_C
1286     AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
1287     AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
1288     AC_LANG_RESTORE
1289     if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes"
1290     then
1291     #
1292     # If both library and header were found, use them
1293     #
1294     AC_CHECK_LIB(z, inflateEnd)
1295     AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
1296     AC_MSG_RESULT(ok)
1297     else
1298     #
1299     # If either header or library was not found, revert and bomb
1300     #
1301     AC_MSG_CHECKING(zlib in ${ZLIB_HOME})
1302     LDFLAGS="$ZLIB_OLD_LDFLAGS"
1303     CPPFLAGS="$ZLIB_OLD_CPPFLAGS"
1304     AC_MSG_RESULT(failed)
1305     AC_MSG_ERROR(either specify a valid zlib installation with --with-zlib=DIR or disable zlib usage with --without-zlib)
1306     fi
1307     fi
1308    
1309     ])