=================================================================== RCS file: /home/cvs/OpenXM_contrib/pari-2.2/Attic/Configure,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- OpenXM_contrib/pari-2.2/Attic/Configure 2002/07/26 01:09:11 1.2 +++ OpenXM_contrib/pari-2.2/Attic/Configure 2002/09/11 07:26:37 1.3 @@ -18,6 +18,7 @@ # The Configure included in Perl distribution (written by Larry Wall), as # well as GNU autoconfig package were of much help in writing these config # files. +# $Id: Configure,v 1.3 2002/09/11 07:26:37 noro Exp $ TOP=`pwd` dflt_conf_file=dft.Config.in @@ -36,6 +37,7 @@ extract_dir_list="$doc_dir $emacs_dir $misc_dir" # Version number and patch level. . $config_dir/version version=$VersionMajor.$VersionMinor +pari_release="$VersionMajor.$VersionMinor.$patch" if test `expr $VersionMinor % 2` = 1; then echo "Configuring pari-$version.$patch (STABLE)" libpari_base=pari @@ -121,7 +123,8 @@ Options: some names can be abbreviated to one characte -v, --verbhelp a longer help message Build Options: --host= target achitecture - --graphic= graphic library used (default X11) (none X11 gnuplot) + --graphic= graphic library used (default X11) (none X11 gnuplot + gnuplot-dynamic builtin.X11-gnuplot builtin.X11-gnuplot-dynamic) Additional developer options: -g creates debugging version (in Oxxx.dbg) -pg creates profiling version (in Oxxx.prf) @@ -307,7 +310,6 @@ case "$arch" in i?86) asmarch=ix86 ; pretty=$arch ;; hppa) asmarch=none ; pretty=HP case "$osname-`uname -r`" in - hpux-?.09.*) asmarch=none ;; hpux-?.10.*) asmarch=$arch ;; esac ;; alpha) asmarch=$arch; pretty=Alpha ;; @@ -322,9 +324,9 @@ esac # Modifications for pretty name and asm file # case "$osname" in - cygwin*|linux|freebsd|os2) pretty="$pretty running $osname";; - nextstep) pretty="$pretty running $osname"; - if test "$arch" = m68k; then asmarch=none; fi ;; + nextstep|cygwin*|linux|freebsd|os2) + pretty="$pretty running $osname"; + if test "$arch" = m68k; then asmarch=none; fi ;; esac if test "$kernel" = no; then @@ -374,345 +376,6 @@ case "$osname-$arch" in *) ln_s="ln -s"; make_sh="/bin/sh"; exe_suff=; extraflag="" ;; esac -####################### CONFIGURE - LIBRARIES ############################### -# -# Looking for libraries now -# -case "$osname" in - cygwin*) ver=`uname -r | cut -d. -f1` - cygtop=/cygdrive/c - if test ! -d $cygtop; then - cygtop=/Cygnus/cygwin/B$ver - if test ! -d $cygtop; then - cygtop=/Cygnus/cygwin-B$ver - if test ! -d $cygtop; then - cygtop=/usr/${arch}-pc-cygwin - if test ! -d $cygtop; then - echo ..."I could not find Cygwin top directory" >&2 - fi - fi - fi - fi;; -esac -readline_enabledp="nil" -if test "$optimization" != profiling; then -# First, construct the PATHs - case "$osname" in - cygwin*) if test "$cygtop" = /cygdrive/c; then -# cygnus for version 1.* - libpth=" - /usr/local/lib\ - /lib\ - " -# this must be a bug. -# cygtop=/ - cygtop= - else -# cygnus for version 0.* - libpth=" - $cygtop/H-${arch}-cygwin32/lib\ - $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/lib\ - " - fi;; - os2) libpth=`echo $LIBRARY_PATH | sed 's/;/ /g' | sed 's,\\\\,/,g'`;; - *) libpth="\ - /usr/local/lib\ - /lib\ - /usr/lib\ - /opt/lib\ - /opt/local/lib\ - /opt/gnu/lib\ - /lib/pa1.1\ - /usr/lib/large\ - /lib/large\ - /usr/lib/small\ - /lib/small\ - /usr/ccs/lib\ - /usc/ucblib\ - /usr/shlib\ - .\ - ";; - esac - - if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then - eval `make gp-X11 2> /dev/null | grep -v make` - rm -f Makefile Makefile.bak - x11pth="$usrlibdir $libdir"; - fi - -# We want these libraries: -# - echo Checking for optional libraries and headers... -# LIB: X11 - pth=$x11pth - lib=X11; . ./locatelib - if test -f $Xincroot/X11/Xos.h -a -z "$graph_cmd"; then - which_graphic_lib=X11 - test -n "$extralib" && echo ..."Extra Libraries are $extralib" - echo ..."Found X11 header files in $Xincroot/X11" - fi - - pth=$libpth -# LIB: gnuplot - opth="$pth" - pth="$TOP/gnuplot-$osname-$arch $TOP/gnuplot $TOP/../gnuplot-$osname-$arch $TOP/../gnuplot $TOP/../../gnuplot-$osname-$arch $TOP/../../gnuplot $pth" - gpth="$pth" - lib=gnuplot; . ./locatelib - gnuplot_fullpath="$try" - pth="$opth" - gnuplot_libs= - case $gnuplot in - /*|[c-z]:/*) - addgnuplot=gnuplot - for lib in vga vesa jmgraph linuxvga gd png z - do - . ./locatelib - eval "elib=\$$lib" - case $elib in - /*|[c-z]:/*) gnuplot_libs="$gnuplot_libs -l$lib";; - esac - done - if test "$which_graphic_lib" = gnuplot; then - if test -z "$gnuplot_libs"; then - echo "...I expect that no libraries are needed for gnuplot" - else - echo "...I expect that libraries $gnuplot_libs are needed for gnuplot" - fi - fi - ;; - *) - if test "$which_graphic_lib" = gnuplot; then - echo "###" - echo "### Could not find gnuplot library in:" - echo "### ./gnuplot-$osname-$arch ./gnuplot" - echo "### ../gnuplot-$osname-$arch ../gnuplot" - echo "### ../../gnuplot-$osname-$arch ../../gnuplot" - echo "### $pth" - echo "###" - case "$osname" in - os2) tlib=gnuplot.a ;; - *) tlib=libgnuplot.a ;; - esac - echo "### You may need to execute" - echo "### ar cr $tlib version.o util.o term.o bitmap.o stdfn.o" - echo "### In the build directory of gnuplot-3.7, and move" - echo "### $tlib to ./gnuplot-$osname-$arch or ./gnuplot subdirs" - echo "### or to similarly-named directories up the directory tree." - echo "###" - fi - ;; - esac - -# LIB: GNU ReadLine - readline_add="$GP_READLINE $TOP/readline-$osname-$arch $TOP/readline" - pth="$readline_add $pth" - lib=readline; . ./locatelib - rl_fullname=$try - - if test -n "$readline"; then -# Readline -- TermCap - lib=$rl_fullname; sym=tgetent; . ./locatesymbol - if test -n "$try"; then # tgetent needed - lib=ncurses; . ./locatelib - if test -n "$try"; then # ncurses found. Does it contain tgetent ? - lib=$try; . ./locatesymbol - fi - if test -n "$try"; then - rl_ncurses=$ncurses - else - lib=termcap; . ./locatelib - rl_termcap=$termcap - fi - fi -# Readline -- Allocation - lib=$rl_fullname; sym=alloca; . ./locatesymbol - if test -n "$try"; then # alloca needed - lib=iberty; . ./locatelib - rl_liberty="$try" - fi -# Readline -- Headers - case "$osname" in - os2) incpth=`echo $C_INCLUDE_PATH | sed -e 's/\([^;]\)$/\1;/g' -e 's%;%/readline %g' -e 's,\\\\,/,g'` ;; - cygwin*) incpth="\ - $cygtop/usr/local/include/readline\ - $cygtop/usr/local/include\ - $cygtop/usr/include/readline\ - $cygtop/usr/include\ - $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/include\ - ";; - *) incpth="\ - /usr/local/include/readline\ - /usr/include/readline\ - /opt/include/readline\ - /opt/local/include/readline\ - /opt/gnu/include/readline\ - /usr/unsupported/include/readline\ - /usr/local/include\ - /usr/include\ - /opt/include\ - /opt/local/include\ - /opt/gnu/include\ - ";; - esac - pth="$readline_add $incpth" - x=`./locate 'readline.h' '' $pth` - CPPF_defined= - case $x in - ?:/*|/*) rl_include=`echo $x | sed 's,/readline.h,,'` - if (grep CPPFunction $x > /dev/null 2>&1); then CPPF_defined=yes; fi - if (grep rl_message $x > /dev/null 2>&1); then rl_message=yes; fi - if (grep rl_completion_matches $x > /dev/null 2>&1); then - rl_completion_matches=yes; - fi - if (grep rl_completion_func_t $x > /dev/null 2>&1); then - rl_completion_func_t=yes; - fi - if (grep "rl_refresh_line *()" $x > /dev/null 2>&1); then - rl_refresh_line_oldproto=yes - fi - if (grep rl_completion_append_character $x > /dev/null 2>&1); then - rl_appendchar=yes - fi - if (grep rl_generic_bind $x > /dev/null 2>&1); then - rl_genericbind=yes - fi - if (grep rl_save_prompt $x > /dev/null 2>&1); then - rl_save_prompt=yes; - else - lib=$rl_fullname; sym=rl_save_prompt; . ./locatesymbol - _rl_save_prompt=$try - fi;; - *) echo ..."But no header file has been found" - readline=;; - esac - fi - - if test -n "$readline"; then - echo ..."Found GNU readline header in $rl_include" - if (echo $rl_include | grep "readline$" > /dev/null); then - rl_include=`echo $rl_include | sed 's,/readline$,,'` - RLINCLUDE="-I$rl_include" - else -# in case headers are not installed correctly - RLINCLUDE="-I$rl_include -DREADLINE_LIBRARY" - fi - RLLIBS="-L$readline -lreadline" - if test -n "$rl_ncurses"; then - echo ..."Library ncurses needed by readline" - RLLIBS="$RLLIBS -lncurses" - fi - if test -n "$rl_termcap"; then - echo ..."Library termcap needed by readline" - RLLIBS="$RLLIBS -ltermcap" - fi - if test -n "$rl_liberty"; then - echo ..."Library liberty needed by readline" - RLLIBS="$RLLIBS -liberty" - fi - if test -z "$rl_appendchar"; then - echo ..."Library readline does not have completion_append_char" - fi - if test -z "$rl_genericbind"; then - echo ..."Library readline does not have rl_generic_bind" - fi - if test -z "$rl_save_prompt"; then - echo ..."Library readline does not have rl_save_prompt" - if test -n "$_rl_save_prompt"; then - echo ......"but it has _rl_save_prompt" - fi - fi - - if test "$fastread" != yes; then - cat << EOM -========================================================================== -EOM - echo $n "Do you want to use GNU readline library within GP ? $c" - rep='y n'; dflt=y; . ./myread - case $ans in - n) readline=;; - esac - fi - fi - - if test -n "$readline"; then readline_enabledp="t"; fi - -# Graphic libs now. -# - if test "$fastread" != yes; then - if test -n "$X11"; then addX11=X11; fi - cat << EOT -========================================================================== -GP contains high resolution plotting functions. Choose among - none $addX11 $addgnuplot -EOT - echo $n ..."Use which graphic library (\"none\" means no hi-res plot) ? $c" - rep="none $addX11 $addgnuplot"; - dflt=$which_graphic_lib; . ./myread - which_graphic_lib=$ans - - case "$which_graphic_lib" in - X11) - gnuplot=; - # If xmkmf did not give the right answer - # X11 -- Headers - if test ! -f $Xincroot/X11/Xos.h; then - x11pth="\ - /usr/openwin/share/lib\ - /usr/openwin/lib\ - /usr/X11R6/lib\ - /usr/X11R5/lib\ - /usr/X11R4/lib\ - /usr/lib/X11R6\ - /usr/lib/X11R5\ - /usr/lib/X11R4\ - /usr/local/X11R6/lib\ - /usr/local/X11R5/lib\ - /usr/local/X11R4/lib\ - /usr/local/lib/X11R6\ - /usr/local/lib/X11R5\ - /usr/local/lib/X11R4\ - /usr/X11/lib\ - /usr/lib/X11\ - /usr/local/X11/lib\ - /usr/local/lib/X11\ - /usr/X386/lib\ - /usr/x386/lib\ - /usr/XFree86/lib/X11\ - /usr/lib\ - /usr/local/lib\ - /usr/unsupported/lib\ - /usr/athena/lib\ - /usr/local/x11r5/lib\ - /usr/lpp/Xamples/lib\ - "; - pth=`echo $x11pth | s,/lib,/include,g` - x=`./locate X11/Xos.h '' $pth` - case $x in - /*) Xincroot=`echo $x | sed 's,/X11/Xos.h,,'`;; - *) Xincroot=;; - esac - if test -n "$Xincroot"; then - echo ..."Found X11 header files in $Xincroot/X11" - fi - fi - # X11 -- Lib - if test -f $Xincroot/X11/Xos.h -a -z "$X11"; then - pth=$x11pth; - lib=X11; . ./locatelib - fi ;; - gnuplot);; - *)gnuplot=;; - esac - else # fastread = yes - if test "$which_graphic_lib" = none -a -z "$graph_cmd" -a -n "$gnuplot"; then - which_graphic_lib=gnuplot - fi - if test -z "$X11" -a -z "$gnuplot" -a -z "$readline"; then - echo ...none - fi - fi -fi - ####################### CONFIGURE - COMPILATION ############################# # # Which optimization ? @@ -769,13 +432,14 @@ if test -z "$CC"; then if test -n "$__gnuc__"; then CC=$gcc; else CC=$cc; fi fi -if test "$which_graphic_lib" = gnuplot -a -z "$gcc"; then +if test -z "$gcc"; then + case "$which_graphic_lib" in + *gnuplot) lib=$gnuplot_fullpath; sym=_eprintf; . ./locatesymbol if test -n "$try"; then echo "...Looks like gcc-compiled gnuplot. I add -lgcc to graphic libraries" _ogcc="$gcc" - opth="$pth" - pth="$pth /opt/local/gnu/lib /usr/local/gnu/lib" + pth="$libpth /opt/local/gnu/lib /usr/local/gnu/lib" gcclibspec="`gcc -v 2>&1 | grep specs | sed 's/.*specs from //'`" if test -n "$gcclibspec"; then pth="`dirname $gcclibspec` $pth" @@ -789,22 +453,23 @@ if test "$which_graphic_lib" = gnuplot -a -z "$gcc"; t echo "...### PLOTLIBS = ..." echo "...### line in your architecture-Makefile." fi - pth="$opth" gcc="$_ogcc" gnuplot_libs="$gnuplot_libs -lgcc" fi + ;; + esac fi if test "$fastread" != yes; then cat << EOT ========================================================================== -Only ANSI C and C++ compilers are supported. Choosing the GNU compiler +Only ANSI C and C++ compilers are supported. Choosing the GNU compiler gcc/g++ enables the inlining of kernel routines (about 20% speedup; if you -use a recent g++, it is a good idea to include the -fpermissive flag). -If you choose not to use gcc, the C++ version of Pari will be a little -faster because of general inlining, but can be used in library mode only -with C++ programs (we **really** recommand using gcc all the way through). +use g++, it is a good idea to include the -fpermissive flag). If you choose +not to use gcc, the C++ version of Pari will be a little faster because of +general inlining, but can be used in library mode only with C++ programs (we +_really_ recommand using gcc all the way through). EOT echo $n ..."Which C compiler shall I use ? $c" dflt=$CC; rep=; . ./myread @@ -818,15 +483,29 @@ if test "$CC" != "$gcc"; then __gnuc__=; fi if test -z "$__gnuc__"; then exe=$osname-$arch-gnu$$ $CC $extraflag -o $exe gnu.c - if $exe; then __gnuc__=yes; fi + if $exe; then + __gnuc__=`$CC -v 2>&1 | sed -n 's/.*version //p'` + echo GNU compiler version $__gnuc__ + fi rm -f $exe fi +ASMINLINE= if test -n "$__gnuc__"; then __GNUC__="-D__GNUC__" warn="-Wall -Wno-implicit" - OPTFLAGS="-O3 -DGCC_INLINE $warn" - DBGFLAGS="-g $warn" + OPTFLAGS=-O3 + ASMINLINE=yes + case "$asmarch" in + alpha) + case "$__gnuc__" in + 2.95.3*|3.*) OPTFLAGS=-O;; # avoid optimizer bugs + *) ASMINLINE=;; # doesn't work with 2.95.2. + esac + ;; + esac + OPTFLAGS="$OPTFLAGS -DGCC_INLINE $warn" + DBGFLAGS=${DBGFLAGS:-"-g $warn"} # Some architectures need -fPIC for building dynamic lib case "$osname-$arch" in hpux-*) DLCFLAGS=-fPIC;; esac # Specific optimisations for some architectures @@ -843,8 +522,8 @@ if test -n "$__gnuc__"; then esac else cflags= - DBGFLAGS="-g" - PRFFLAGS="-pg" + DBGFLAGS=${DBGFLAGS:-'-g'} + PRFFLAGS='-pg' case "$osname-$arch" in hpux-*) # -Aa is for ANSI C, +z for PIC code (for commercial HPUX compilers) OPTFLAGS=-O; cflags=-Aa; DLCFLAGS=+z;; @@ -874,7 +553,7 @@ esac if test "$fastread" != yes; then echo $n ..."With which flags ? $c" - dflt=${CFLAGS:-cflags}; rep=; . ./myread + dflt=${CFLAGS:-$cflags}; rep=; . ./myread cflags=$ans fi @@ -923,7 +602,7 @@ echo "Assembler is $AS $ASFLAGS" case "$osname" in nextstep) cppfl="-traditional-cpp" ;; freebsd) - if test $PORTOBJFORMAT = "elf"; then + if test "$PORTOBJFORMAT" = "elf"; then cppfl="-DUSE_ELF" FREEBSD_ELF=1 else @@ -942,7 +621,7 @@ case "$osname" in darwin) LIBS= ;; esac case "$osname-$arch" in - linux-*|cygwin*) + linux-*|cygwin*|freebsd-*) LD=$CC; LDFLAGS="$cflags -Xlinker -export-dynamic" runpathprefix='-Xlinker -rpath -Xlinker ';; osf1-alpha) @@ -984,17 +663,18 @@ if test "$optimization" = profiling; then DLLD=; else # Some others (SunOS 5) need a link from a .so # Some others (HPUX 09) do not want version numbers. # - soname=$soname_num + soname=.$soname_num case "$osname-$arch" in # aix-*) DLSUFFIX=a ;; dynamic linking does not work! - sunos-*) sodest=$VersionMajor$VersionMinor.$patch + sunos-*) sodest=.$VersionMajor$VersionMinor.$patch soname=$sodest;; *-alpha|solaris-*|linux-*|freebsd-*) case $libpari_base in - pari) sodest=$version.$patch;; # released versions - *) sodest=$patch.0.0;; # unstable versions + pari) sodest=.$version.$patch;; # released versions + *) sodest=.$patch.0.0;; # unstable versions esac ;; - cygwin*) soname= ; sodest= ; DLSUFFIX=dll;; +# FIXME: gp-dyn.exe crashes on startup +# cygwin*) soname= ; sodest= ; DLSUFFIX=dll;; hpux-*) soname= ; sodest= ; DLSUFFIX=sl;; irix-*) soname= ; sodest= ;; *) DLLD=;; @@ -1035,6 +715,9 @@ if test -n "$DLLD"; then *) DLLD=;; esac fi + case "$osname" in + freebsd|linux|sunos|solaris) DLLDFLAGS="$DLLDFLAGS -lc -lm";; + esac if test "$fastread" != yes; then echo $n ..."Which flags for linker? $c" @@ -1066,49 +749,63 @@ in the Makefile EOT fi -####################### CONFIGURE - READLINE VERSION ######################## -if test -n "$readline"; then - exe=$osname-$arch-rlv$$ - $CC $extraflag $RLINCLUDE -o $exe rl_version.c $RLLIBS 2>/dev/null - if test -r $exe; then readline=`$exe`; else readline=1.0; fi - rm -f $exe $exe$exe_suff -fi - ####################### CONFIGURE - LIBC #################################### # -# Long integer ? +# sizeof(long), double format # -endian=4321; +doubleformat=4321; exe=$osname-$arch-endian$$ -if ($CC $extraflag endian.c -o $exe 2>/dev/null); then - endian=`$exe`; +if ($CC $cflags $extraflag endian.c -o $exe 2>/dev/null); then + doubleformat=`$exe`; fi rm -f $exe $exe$exe_suff +case "$doubleformat" in + *IEEE*) + echo "***************************************************************" + echo "Your 'double' type does not follow the IEEE754 format. Aborting" + echo "PLEASE REPORT! (dbltor/rtodbl need to be fixed)"; exit 1;; + -) sizeof_long=8; pretty="$pretty 64-bit version";; + *) sizeof_long=4; pretty="$pretty 32-bit version";; +esac +echo "Given the previous choices, sizeof(long) is $sizeof_long chars." if test "$fastread" != yes; then cat << EOT -Determining sizeof(long) and endianness. If your hardware supports different -size of longs (e.g SGI/MIPS), you can decide to use a particular word size -by specifying endianness (e.g answer 4321 instead of the proposed 87654321). -You'll probably have to specify some exotic compilation flag (e.g -o32,-n32) -============================================================================ +If your hardware supports different size of longs (e.g SGI/MIPS), and you +want to use a different word size than the above. You should probably have +specified some exotic compilation flag CFLAG (e.g -o32,-n32). + EOT - echo $n "What is the internal byte representation of long integer ? $c" - dflt=$endian; rep='12345678 87654321 1234 4321'; . ./myread - endian=$ans -fi -echo "The internal byte representation of your long integers is $endian." -case $endian in - *8|8*) sizeof_long=8; pretty="$pretty 64-bit version";; - *) sizeof_long=4; pretty="$pretty 32-bit version";; -esac + if test $doubleformat != "-"; then +cat << EOT +For 32-bit architecture, PARI needs to know the format of your 'double' type. +PARI assumes doubles are stored in IEEE754 format [ (sign, exponent, mantissa +high) on one word, (mantissa low) on another ]; assuming a + union { double d; ulong l[2]; } x; +are the double exponent and sign stored on x.i[0] (0) or on x.i[1] (1) ? - +Using \$CC \$CFLAGS with + CC =$CC + CFLAGS=$cflags +the answer is: $doubleformat. +EOT + fi +fi +case $doubleformat in + 0) _format='l[0], l[1]';; + 1) _format='l[1], l[0]';; + -) _format='not needed (64bit)';; +esac +cat <&2 + fi + fi + fi + fi;; +esac +readline_enabledp="nil" +if test "$optimization" != profiling; then +# First, construct the PATHs + case "$osname" in + cygwin*) if test "$cygtop" = /cygdrive/c; then +# cygnus for version 1.* + libpth=" + /usr/local/lib\ + /lib\ + " + cygtop=/ + else +# cygnus for version 0.* + libpth=" + $cygtop/H-${arch}-cygwin32/lib\ + $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/lib\ + " + fi;; + os2) libpth=`echo $LIBRARY_PATH | sed 's/;/ /g' | sed 's,\\\\,/,g'`;; + *) libpth="\ + /usr/local/lib\ + /lib\ + /usr/lib\ + /opt/lib\ + /opt/local/lib\ + /opt/gnu/lib\ + /lib/pa1.1\ + /usr/lib/large\ + /lib/large\ + /usr/lib/small\ + /lib/small\ + /usr/ccs/lib\ + /usc/ucblib\ + /usr/shlib\ + .\ + ";; + esac + + tdir=$osname-$arch-X11$$ + mkdir $tdir; cp Imakefile $tdir; cd $tdir + if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then + eval `make gp-X11 2> /dev/null | grep -v make` + rm -f Makefile Makefile.bak + x11pth="$usrlibdir $libdir"; + fi + cd ..; rm -rf $tdir + +# We want these libraries: +# + echo Checking for optional libraries and headers... + +# ======== GRAPHICS environment search ============== + +# At this moment $which_graphic_lib is either none, or the argument to +# --graphic option; $graph_cmd is "" unless --graphic option was specified. + +# LIB: X11 + pth=$x11pth + lib=X11; . ./locatelib + if test -f $Xincroot/X11/Xos.h -a -z "$graph_cmd"; then + which_graphic_lib=X11 + test -n "$extralib" && echo ..."Extra Libraries are $extralib" + echo ..."Found X11 header files in $Xincroot/X11" + fi + +# LIB: gnuplot +# Look for it unconditionally, without read/write of +# $which_graphic_lib or $graph_cmd + pth="$TOP/gnuplot-$osname-$arch $TOP/gnuplot\ + $TOP/../gnuplot-$osname-$arch $TOP/../gnuplot\ + $TOP/../../gnuplot-$osname-$arch $TOP/../../gnuplot $libpth" + lib=gnuplot; . ./locatelib + gnuplot_fullpath="$try" + gnuplot_libs= + case $gnuplot in + /*|[c-z]:/*) + addgnuplot=gnuplot + for lib in vga vesa jmgraph linuxvga gd png z + do + . ./locatelib + eval "elib=\$$lib" + case $elib in + /*|[c-z]:/*) gnuplot_libs="$gnuplot_libs -l$lib";; + esac + done + if test "$which_graphic_lib" = gnuplot; then + if test -z "$gnuplot_libs"; then + echo "...I expect that no libraries are needed for gnuplot" + else + echo "...I expect that libraries $gnuplot_libs are needed for gnuplot" + fi + fi + ;; + *) + if test "$which_graphic_lib" = gnuplot; then + pth=`echo $pth | sed -e "s,$TOP,.,g"` + echo "###" + echo "### Could not find gnuplot library in $pth" + echo "###" + case "$osname" in + os2) tlib=gnuplot.a ;; + *) tlib=libgnuplot.a ;; + esac + echo "### You may need to execute" + echo "### ar cr $tlib version.o util.o term.o bitmap.o stdfn.o" + echo "### In the build directory of gnuplot-3.7, and move" + echo "### $tlib to ./gnuplot-$osname-$arch or ./gnuplot subdirs" + echo "### or to similarly-named directories up the directory tree." + echo "###" + fi + ;; + esac + +# ======== END of GRAPHICS environment search ============== + +# LIB: GNU ReadLine + readline_add="$GP_READLINE $TOP/readline-$osname-$arch $TOP/readline" + pth="$readline_add $libpth" + lib=readline; . ./locatelib + rl_fullname=$try + + if test -n "$readline"; then +# Readline -- Headers + case "$osname" in + os2) incpth=`echo $C_INCLUDE_PATH | sed -e 's/\([^;]\)$/\1;/g' -e 's%;%/readline %g' -e 's,\\\\,/,g'` ;; + cygwin*) incpth="\ + $cygtop/usr/local/include/readline\ + $cygtop/usr/local/include\ + $cygtop/usr/include/readline\ + $cygtop/usr/include\ + $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/include\ + ";; + *) incpth="\ + /usr/local/include/readline\ + /usr/include/readline\ + /opt/include/readline\ + /opt/local/include/readline\ + /opt/gnu/include/readline\ + /usr/unsupported/include/readline\ + /usr/local/include\ + /usr/include\ + /opt/include\ + /opt/local/include\ + /opt/gnu/include\ + ";; + esac + pth="$readline_add $incpth" + x=`./locate 'readline.h' '' $pth` + CPPF_defined= + case $x in + ?:/*|/*) rl_include=`echo $x | sed 's,/readline.h,,'` + echo ..."Found readline header in $rl_include" + if (grep CPPFunction $x > /dev/null 2>&1); then CPPF_defined=yes; fi + if (grep rl_message $x > /dev/null 2>&1); then rl_message=yes; fi + if (grep rl_completion_matches $x > /dev/null 2>&1); then + rl_completion_matches=yes; + fi + if (grep rl_completion_func_t $x > /dev/null 2>&1); then + rl_completion_func_t=yes; + fi + if (grep "rl_refresh_line *()" $x > /dev/null 2>&1); then + rl_refresh_line_oldproto=yes + fi + if (grep rl_completion_append_character $x > /dev/null 2>&1); then + rl_appendchar=yes + fi + if (grep rl_generic_bind $x > /dev/null 2>&1); then + rl_genericbind=yes + fi + if (grep rl_save_prompt $x > /dev/null 2>&1); then + rl_save_prompt=yes; + else # might be defined but not declared (old readline) + lib=$rl_fullname; sym=rl_save_prompt; . ./locatesymbol + _rl_save_prompt=$try + fi;; + *) echo ..."But no header file has been found" + readline=;; + esac + fi + + pth="$readline_add $libpth" + if test -n "$readline"; then +# Readline -- Allocation + lib=$rl_fullname; sym=alloca; . ./locatesymbol + if test -n "$try"; then # alloca needed + lib=iberty; . ./locatelib + rl_liberty="$try" + fi +# Readline -- TermCap + lib=$rl_fullname; sym=tgetent; . ./locatesymbol + need_tgetent="$try" + if test -n "$need_tgetent"; then + lib=ncurses; . ./locatelib + if test -n "$try"; then # ncurses found. Does it contain tgetent ? + lib=$try; . ./locatesymbol + fi + if test -n "$try"; then + rl_ncurses=$ncurses + need_tgetent= + else # give termcap a try + lib=termcap; . ./locatelib + if test -n "$try"; then + rl_termcap=$termcap + need_tgetent= + fi + fi + fi +# Readline -- CFLAGS + if (echo $rl_include | grep "readline$" > /dev/null); then + rl_include=`echo $rl_include | sed 's,/readline$,,'` + RLINCLUDE="-I$rl_include" + else # in case headers are not installed correctly + RLINCLUDE="-I$rl_include -DREADLINE_LIBRARY" + fi + RLLIBS="-L$readline -lreadline" + if test -n "$rl_ncurses"; then + echo ..."Library ncurses needed by readline" + RLLIBS="$RLLIBS -L$rl_ncurses -lncurses" + fi + if test -n "$rl_termcap"; then + echo ..."Library termcap needed by readline" + RLLIBS="$RLLIBS -L$rl_termcap -ltermcap" + fi + if test -n "$rl_liberty"; then + echo ..."Library liberty needed by readline" + RLLIBS="$RLLIBS -L$rl_liberty -liberty" + fi +# Readline -- last chance for tgetent + if test -n "$need_tgetent"; then # try to compile anyway (in libc?) + list=readline; extra_flags="$RLLIBS $RLINCLUDE"; ./look + if test "$has_readline" = no; then + echo "cannot use readline: please install libncurses or libtermcap." + readline= + fi + fi + fi + + if test -z "$readline"; then + echo "### Building without GNU readline support" + else + if test "$fastread" = yes; then + exe=$osname-$arch-rlv$$ + $CC $extraflag $RLINCLUDE -o $exe rl_version.c $RLLIBS 2> /dev/null + if test -r $exe; then readline=`$exe`; else readline=1.0; fi + rm -f $exe $exe$exe_suff + echo "Using GNU readline, version $readline" + fi + if test -z "$rl_appendchar"; then + echo ..."Library readline does not have completion_append_char" + fi + if test -z "$rl_genericbind"; then + echo ..."Library readline does not have rl_generic_bind" + fi + if test -z "$rl_save_prompt"; then + echo ..."Library readline does not have rl_save_prompt" + if test -n "$_rl_save_prompt"; then + echo ......"but it has _rl_save_prompt" + fi + fi + + if test "$fastread" != yes; then + cat << EOM +========================================================================== +EOM + echo $n "Do you want to use GNU readline library within GP ? $c" + rep='y n'; dflt=y; . ./myread + case $ans in + n) readline=;; + esac + fi + fi + + if test -n "$readline"; then readline_enabledp="t"; fi + +# Graphic libs now. +# + if test "$fastread" != yes; then + if test -n "$X11"; then addX11="X11 builtin.X11-gnuplot-dynamic"; fi + if test -n "$X11" -a -n "$addgnuplot"; then + addX11="$addX11 builtin.X11-gnuplot" + fi + cat << EOT +========================================================================== +GP contains high resolution plotting functions. Choose among + none $addX11 $addgnuplot gnuplot-dynamic +EOT + echo $n ..."Use which graphic library (\"none\" means no hi-res plot) ? $c" + rep="none $addX11 $addgnuplot gnuplot-dynamic"; + dflt=$which_graphic_lib; . ./myread + which_graphic_lib=$ans + + case "$which_graphic_lib" in + *X11*) + # If xmkmf did not give the right answer + # X11 -- Headers + if test ! -f $Xincroot/X11/Xos.h; then + x11pth="\ + /usr/openwin/share/lib\ + /usr/openwin/lib\ + /usr/X11R6/lib\ + /usr/X11R5/lib\ + /usr/X11R4/lib\ + /usr/lib/X11R6\ + /usr/lib/X11R5\ + /usr/lib/X11R4\ + /usr/local/X11R6/lib\ + /usr/local/X11R5/lib\ + /usr/local/X11R4/lib\ + /usr/local/lib/X11R6\ + /usr/local/lib/X11R5\ + /usr/local/lib/X11R4\ + /usr/X11/lib\ + /usr/lib/X11\ + /usr/local/X11/lib\ + /usr/local/lib/X11\ + /usr/X386/lib\ + /usr/x386/lib\ + /usr/XFree86/lib/X11\ + /usr/lib\ + /usr/local/lib\ + /usr/unsupported/lib\ + /usr/athena/lib\ + /usr/local/x11r5/lib\ + /usr/lpp/Xamples/lib\ + "; + pth=`echo $x11pth | s,/lib,/include,g` + x=`./locate X11/Xos.h '' $pth` + case $x in + /*) Xincroot=`echo $x | sed 's,/X11/Xos.h,,'`;; + *) Xincroot=;; + esac + if test -n "$Xincroot"; then + echo ..."Found X11 header files in $Xincroot/X11" + fi + fi + # X11 -- Lib + if test -f $Xincroot/X11/Xos.h -a -z "$X11"; then + pth=$x11pth; + lib=X11; . ./locatelib + fi ;; + esac + case "$which_graphic_lib" in + *gnuplot*) ;; + *)gnuplot=;; + esac + else # fastread = yes + # TEST: --graphic was not given, X11 not found, and gnuplot library found + if test "$which_graphic_lib" = none -a -z "$graph_cmd" -a -n "$gnuplot"; then + which_graphic_lib=gnuplot + fi + if test -z "$X11" -a -z "$gnuplot" -a -z "$readline" -a "X$which_graphic_lib" != Xgnuplot-dynamic; then + echo ...none + fi + fi +fi + ####################### CONFIGURE - MAKE #################################### dflt=$prefix; rep= test "$fastread" = yes || cat <\> $dflt_conf_file done