[BACK]Return to Configure CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari

Annotation of OpenXM_contrib/pari/Configure, Revision 1.1.1.1

1.1       maekawa     1: #! /bin/sh
                      2: #
                      3: #   Configuration file for GP/PARI. (c) K.B & Ptitboul.
                      4: #
                      5: #   Run Configure -help for Usage.
                      6: #
                      7: # The Configure included in Perl distribution (written by Larry Wall), as
                      8: # well as the autoconfig package (from the GNU team) were of much help in
                      9: # writing these config files. Thanks to all of them!
                     10: #
                     11: TOP=`pwd`
                     12: dflt_conf_file=dft.Config.in
                     13:
                     14: # Directories
                     15: config_dir=config
                     16: src_dir=src
                     17: emacs_dir=emacs
                     18: doc_dir=doc
                     19: data_dir=data
                     20:
                     21: extract_dir_list="$doc_dir $emacs_dir"
                     22:
                     23: #
                     24: # Version number and patch level.
                     25: #
                     26: . $config_dir/version
                     27: rcsrevision="$version"
                     28: if test "0$patch" != 0; then rcsrevision="$version.$patch"; fi
                     29:
                     30: cd $config_dir
                     31:
                     32: ####################### CONFIGURE - OPTIONS #################################
                     33: #
                     34: # Processing Options
                     35: #
                     36: fastread=yes
                     37: config_file=
                     38: optimization=full
                     39: prefix=/usr/local
                     40: which_graphic_lib=none
                     41: test -n "$GP_INSTALL_PREFIX" && prefix=$GP_INSTALL_PREFIX
                     42: while test $# -gt 0; do
                     43:   case "$1" in
                     44:   -l|-load) shift; initfile=$1;
                     45:      cd $TOP
                     46:      PATH=.:$PATH; export PATH
                     47:      if test -z "$1";then initfile=$dflt_conf_file; fi
                     48:      if test -r "$initfile"; then
                     49:        . $initfile
                     50:        if test ! -d $objdir; then mkdir $objdir; fi
                     51:        . $config_dir/extract_files
                     52:        exit 0
                     53:      else
                     54:        echo "Cannot read config file \"$initfile\"." >&2
                     55:        exit 1
                     56:      fi;;
                     57:   -p|-prefix)   shift; prefix=$1;;
                     58:   --prefix=*|--prefi=*|--pref=*|--pre=*|--pr=*|--p=*)
                     59:                prefix=`echo "$1" | sed -e 's/[-a-z]*=//'`;;
                     60:   --disable-kernel) kernel=no;;
                     61:   -a|-ask)     fastread=no;;
                     62:   -g)          optimization=debugging;;
                     63:   -pg)         optimization=profiling;;
                     64:   -rdll)       DYNRELOC=yes;;
                     65:   -h|-help|-\?)error=true;;
                     66:   -v|-verbhelp)error=verb;;
                     67:   -s|--static) DLLD=;;
                     68:   -graphic)   shift; which_graphic_lib=$1; graph_cmd=yes ;;
                     69:   --graphic=*|--graphi=*|--graph=*|--grap=*|--gra=*|--gr=*|--g=*)
                     70:               graph_cmd=yes
                     71:               which_graphic_lib=`echo "$1" | sed -e 's/[-a-z]*=//'`;;
                     72:   *) echo "*** Unrecognized option $1." >&2; error=true;;
                     73:   esac
                     74:   shift
                     75: done
                     76:
                     77: case "$error" in
                     78: true) cat >&2 <<EOT
                     79: Usage: Configure [-ask|-help|-g|-pg] [ -load <filename> ] [ --prefix=<dir> ]
                     80: Options: names can be abbreviated to one character (e.g -h = -help)
                     81:  -ask            interactively ask for answers (defaults are still computed)
                     82:  -help           this message
                     83:  -verbhelp       a longer help message
                     84:  -load           specify a default config file (default $dflt_conf_file)
                     85:  --static        build static GP binary only
                     86:  --prefix=<dir>  install files in <dir>/... (default $prefix)
                     87:  --graphic=<gr>  which graphic library to use (default X11)
                     88:                  (none X11 sunview gnuplot)
                     89:
                     90: Additional developer options:
                     91:  -g              creates debugging version
                     92:  -pg             creates profiling version
                     93:  -rdll           creates relocatable DLL (Cygwin32 only)
                     94: EOT
                     95: exit 1
                     96: ;;
                     97: verb) cat >&2 <<EOT
                     98: Architecture, operating system and asm kernel.
                     99:   Configure tries to detect what is the architecture of the machine (CPU type)
                    100:   and what operating system it is running. Then, it decides whether an asm
                    101:   kernel exists and should be used. You can override this with Configure -ask.
                    102: Which compiler will be used ?
                    103:   Depending on the machine (architecture and operating system) and on what is
                    104:   found in the path, a compiler is automatically chosen. If you set the
                    105:   environment variable CC before typing Configure, it will be used instead.
                    106: EOT
                    107: exit 1
                    108: ;;
                    109: esac
                    110:
                    111: test "$fastread" = yes || cat <<EOT
                    112: ==========================================================================
                    113:              Beginning configuration questions for GP/PARI.
                    114:
                    115: You will be asked some questions about your system. Most of the time, a list
                    116: of acceptable answers will be supplied as well as a default between brackets.
                    117: Type carriage return to accept these defaults.
                    118:
                    119: Though the present script strives to prevent any fatal mistake on your part,
                    120: there's currently no easy way out if you make one. Your best bet is to press
                    121: Ctrl-C, then start again.  Another possibility is to wait till the questions
                    122: end, edit the file "$dflt_conf_file", then run
                    123:
                    124:       Configure -load $dflt_conf_file
                    125:
                    126: (which can be abbreviated to simply "Configure -l")
                    127: ==========================================================================
                    128: EOT
                    129:
                    130: ####################### CONFIGURE - SHELL ###################################
                    131: if test -z "$OS2_SHELL"; then dir_sep=':' ; else dir_sep=';' ; fi
                    132:
                    133: #
                    134: # Proper PATH setting
                    135: #
                    136: pth="\
                    137:   /bin\
                    138:   /usr/bin\
                    139:   /usr/locateal/bin\
                    140:   /usr/ucb\
                    141:   /usr/locateal\
                    142:   /usr/lbin\
                    143:   /usr/5bin\
                    144:   /etc\
                    145:   /usr/etc\
                    146:   /usr/gnu/bin\
                    147:   /usr/new\
                    148:   /usr/new/bin\
                    149:   /usr/nbin\
                    150:   /sys5.3/bin\
                    151:   /sys5.3/usr/bin\
                    152:   /bsd4.3/bin\
                    153:   /bsd4.3/usr/ucb\
                    154:   /bsd4.3/usr/bin\
                    155:   /usr/bsd\
                    156:   /bsd43/bin\
                    157:   /opt/ansic/bin\
                    158:   /usr/ccs/bin\
                    159:   /usr/lib\
                    160:   /usr/ucblib\
                    161:   /lib\
                    162:   /usr/ccs/lib\
                    163:   /sbin\
                    164:   /usr/sbin\
                    165:   /usr/libexec\
                    166: "
                    167:
                    168: for p in $pth
                    169: do
                    170:   case "$dir_sep$PATH$dir_sep" in
                    171:     *$dir_sep$p$dir_sep*) ;;
                    172:     *) test -d $p && PATH=$PATH$dir_sep$p ;;
                    173:   esac
                    174: done
                    175: PATH=.$dir_sep$PATH; export PATH
                    176:
                    177: echo "Checking echo to see how to suppress newlines..."
                    178:
                    179: if (echo "hi\c"; echo " ") | grep c >/dev/null 2>&1 ; then
                    180:   echo "...using -n."; n=-n; c=
                    181: else
                    182:   cat <<EOM
                    183: ...using \c
                    184: EOM
                    185:   n=; c='\c'
                    186: fi
                    187: if test "$fastread" != yes; then
                    188:   echo $n ..."The star should be here-->$c"; echo '*'
                    189: fi
                    190:
                    191: #
                    192: #  We might need the following :
                    193: #
                    194: echo Looking for some tools first ...
                    195: list='ld zcat gzip ranlib perl emacs'
                    196: pathspace=`echo $PATH | sed -e "s/$dir_sep/ /g" | sed -e 's,\\\\,/,g'`
                    197:
                    198: for file in $list; do
                    199:   x=`./locate $file '' $pathspace`
                    200:   eval $file=$x
                    201:   case $x in
                    202: # support also DOS filesystems (hard drive prepended)
                    203:    ?:/*|/*) echo ..."$file is $x";;
                    204:       *) echo ..."I could not find $file." >&2;;
                    205:   esac
                    206: done
                    207: if test -z "$zcat" -a -n "$gzip"; then zcat="$gzip -dc"; fi
                    208:
                    209: ####################### CONFIGURE - ARCHITECTURE ############################
                    210: #
                    211: # Testing Architectures. Try uname to provide a default, then ask user.
                    212: #
                    213: arch=none; osname=unknown
                    214: myuname=`(uname -a) 2>/dev/null || arch 2>&1`
                    215: if test -d /NextApps; then myuname=nextstep; fi
                    216: if test -n "$myuname"; then
                    217:   myuname=`echo $myuname | sed -e 's/^[^=]*=//' -e 's,/,,g' | \
                    218:          tr '[A-Z]' '[a-z]' | tr '\012' ' '`
                    219:   set X $myuname; shift; osname=$1
                    220:   case "$osname" in
                    221:   irix*)    osname=irix;;
                    222:   fx2800)   arch=fx2800; osname=concentrix;;
                    223:   hp*)      arch=hppa; osname=hpux;;
                    224:   freebsd|os2)  arch=ix86;;
                    225:   ultrix)   arch=mips;;
                    226:   nextstep) arch=`file /bin/sh | sed 's/.*(for architecture \(.*\))/\1/'`;;
                    227:   osf1)     case "$5" in alpha) arch=alpha;; esac;;
                    228:   cygwin*)  arch=$HOSTTYPE;;
                    229:   linux)    arch=`uname -m`
                    230:            case "`cat /proc/cpuinfo`" in
                    231:            *TMS390Z5[05]*) arch=sparcv8_super;; # SuperSparc I or II
                    232:            *TMS390S1[05]*) arch=sparcv8_micro;; # MicroSparc I
                    233:            *MB86904*)      arch=sparcv8_micro;; # MicroSparc II
                    234:            *MB86907*)      arch=sparcv8_micro;; # TurboSparc
                    235:            *MB86934*)      arch=sparcv8_super;; # SparcLite
                    236:            *RT625*)        arch=sparcv8_super;; # HyperSparc
                    237:            *CY605*)        arch=sparcv8_super;;
                    238:            esac;;
                    239:   sunos)    case "$3" in 5*) osname=solaris;; esac
                    240:            case "$5" in
                    241:            sun3*)    arch=m68k;;
                    242:            sun4|sun4[ce]) arch=sparcv7;;
                    243:            sun4[dm]) cpu="TI,|FMI,|Cypress,|Ross,"
                    244:              case "`(prtconf||devinfo)2>&- |egrep $cpu`" in
                    245:              *TI,TMS390Z5[05]*) arch=sparcv8_super;; # SuperSparc I or II
                    246:              *TI,TMS390S1[05]*) arch=sparcv8_micro;; # MicroSparc I
                    247:              *FMI,MB86904*)     arch=sparcv8_micro;; # MicroSparc II
                    248:              *FMI,MB86907*)     arch=sparcv8_micro;; # TurboSparc
                    249:              *FMI,MB86934*)     arch=sparcv8_super;; # SparcLite
                    250:              *Ross,RT625*)      arch=sparcv8_super;; # HyperSparc
                    251:              *Cypress,CY605*)   arch=sparcv8_super;;
                    252:              *)                 arch=sparcv8;;
                    253:              esac;;
                    254:            sun4u)    arch=sparcv9;;
                    255:             i*pc) arch=ix86;;
                    256:             *) case "$4" in sun)  arch=m68k;; esac;;
                    257:            esac;;
                    258:   esac
                    259: fi
                    260:
                    261: if test "$fastread" != yes; then
                    262:   cat << EOM
                    263: ==========================================================================
                    264: Currently supported architectures:
                    265: EOM
                    266:   rep='none sparcv7 sparcv8_super sparcv8_micro sparcv9
                    267:        m68k ix86 i386 i486 i586 i686 hppa alpha mips fx2800'
                    268:   . ./display
                    269:   echo $n ..."Which of these apply, if any ? $c"
                    270:   dflt=$arch; . ./myread; arch=$ans
                    271: fi
                    272:
                    273: #
                    274: #   Test OS, using the info uname provided.
                    275: #
                    276: if test "$fastread" != yes; then
                    277:   cat << EOM
                    278: ==========================================================================
                    279: I know of the following Operating Systems
                    280: EOM
                    281:   rep='os2 freebsd cygwin linux hpux aix osf1 solaris sunos nextstep concentrix irix';
                    282:   . ./display
                    283:   echo $n ..."Any of these apply ? $c"
                    284:   dflt=$osname; . ./myread
                    285:   osname=$ans
                    286: fi
                    287:
                    288: #
                    289: #   A pretty name for the architecture
                    290: #   The asm file used (if any)
                    291: #
                    292: case "$arch" in
                    293:   sparc)         asmarch=sparcv8_micro; pretty=Sparc ;;
                    294:   sparcv7)       asmarch=$arch;         pretty=SparcV7 ;;
                    295:   sparcv8_micro) asmarch=$arch;         pretty=MicroSparc ;;
                    296:   sparcv8_super) asmarch=$arch;         pretty=SuperSparc ;;
                    297:   sparcv9)       asmarch=sparcv8_micro; pretty=UltraSparc ;;
                    298:   m68k)          asmarch=$arch;         pretty="MC680x0, x>=2" ;;
                    299:   i?86)          asmarch=ix86 ;         pretty=$arch ;;
                    300:   hppa)          asmarch=none ;         pretty=HP
                    301:         case "$osname-`uname -r`" in
                    302:         hpux-?.09.*)  asmarch=none  ;;
                    303:         hpux-?.10.*)  asmarch=$arch ;;
                    304:         esac ;;
                    305:   alpha)         asmarch=$arch;         pretty=Alpha ;;
                    306:   mips)          asmarch=none;          pretty=Mips ;;
                    307:   fx2800)        asmarch=none;          pretty="Alliant FX/2800" ;;
                    308:   none)          asmarch=none;          pretty="unknown" ;;
                    309:   *)             asmarch=none;          pretty=$arch
                    310:                  echo "        Warning ! architecture $arch not tested";;
                    311: esac
                    312:
                    313: #
                    314: #   Modifications for pretty name and asm file
                    315: #
                    316: case "$osname" in
                    317:   cygwin*|linux|freebsd|os2) pretty="$pretty running $osname";;
                    318:   nextstep) pretty="$pretty running $osname";
                    319:             if test "$arch" = m68k; then asmarch=none; fi ;;
                    320: esac
                    321:
                    322: if test "$kernel" = no; then
                    323:   asmarch=none;
                    324:   echo "assembler micro kernel disabled"
                    325: else
                    326:   if test "$fastread" != yes; then
                    327:   cat << EOM
                    328: ==========================================================================
                    329: An optimized Pari kernel is available for these architectures
                    330: ("none" means that we will use the portable C version of GP/PARI)
                    331: EOM
                    332:   rep='none sparcv7 sparcv8_super sparcv8_micro m68k ix86 alpha hppa'
                    333:   . ./display
                    334:   echo $n ..."Which of these apply, if any ? $c"
                    335:   dflt=$asmarch; . ./myread; asmarch=$ans
                    336:   cat << EOM
                    337: ==========================================================================
                    338: EOM
                    339:   fi
                    340: fi
                    341: case "$asmarch" in
                    342:   none)          prettyk="C portable";;
                    343:   sparcv7)       prettyk=SparcV7;;
                    344:   sparcv8_super) prettyk=SuperSparc;;
                    345:   sparcv8_micro) prettyk=MicroSparc;;
                    346:   m68k)          prettyk="MC680x0, x>=2";;
                    347:   ix86)          prettyk=ix86;;
                    348:   hppa)          prettyk=HPPA;;
                    349:   alpha)         prettyk=Alpha;;
                    350:   ppc)           prettyk=PPC;;
                    351:   *)             prettyk="$asmarch";;
                    352: esac
                    353: if test "$arch" != "$asmarch"; then
                    354:   pretty="$pretty ($prettyk kernel)"
                    355: fi
                    356: echo "Building for architecture: $pretty"
                    357:
                    358: case "$asmarch" in
                    359:   sparc*) kern=$TOP/$src_dir/kernel
                    360:     rm -f $kern/sparcv8_micro $kern/sparcv8_super
                    361:     ln -s $kern/sparcv8 $kern/sparcv8_micro
                    362:     ln -s $kern/sparcv8 $kern/sparcv8_super;;
                    363: esac
                    364:
                    365: #
                    366: # Which copy, SHELL ?
                    367: #
                    368: case "$osname-$arch" in
                    369:   os2-*)  ln_s=cp; make_sh=sh; exe_suff=.exe; extraflag="-Zexe" ;;
                    370:   cygwin*) ln_s="ln -s"; make_sh="/bin/sh"; exe_suff=.exe; extraflag="" ;;
                    371:   *)       ln_s="ln -s"; make_sh="/bin/sh"; exe_suff=; extraflag="" ;;
                    372: esac
                    373:
                    374: ####################### CONFIGURE - LIBRARIES ###############################
                    375: #
                    376: # Looking for libraries now
                    377: #
                    378: case "$osname" in
                    379:   cygwin*) ver=`uname -r | cut -d. -f1`
                    380:     cygtop=/Cygnus/cygwin/B$ver
                    381:     if test ! -d $cygtop; then
                    382:       cygtop=/Cygnus/cygwin-B$ver
                    383:       if test ! -d $cygtop; then
                    384:         echo ..."I could not find Cygwin top directory" >&2
                    385:       fi
                    386:     fi;;
                    387: esac
                    388: readline_enabledp="nil"
                    389: if test "$optimization" != profiling; then
                    390: # First, construct the PATHs
                    391:  case "$osname" in
                    392:    cygwin*) libpth="
                    393:        $cygtop/H-${arch}-cygwin32/lib\
                    394:        $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/lib\
                    395:      ";;
                    396:       os2) libpth=`echo $LIBRARY_PATH | sed 's/;/ /g' | sed 's,\\\\,/,g'`;;
                    397:        *) libpth="\
                    398:        /usr/local/lib\
                    399:        /lib\
                    400:        /usr/lib\
                    401:        /opt/lib\
                    402:        /opt/local/lib\
                    403:        /opt/gnu/lib\
                    404:        /lib/pa1.1\
                    405:        /usr/lib/large\
                    406:        /lib/large\
                    407:        /usr/lib/small\
                    408:        /lib/small\
                    409:        /usr/ccs/lib\
                    410:        /usc/ucblib\
                    411:        /usr/shlib\
                    412:        .\
                    413:      ";;
                    414:      esac
                    415:
                    416:   if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then
                    417:     eval `make gp-X11 2> /dev/null | grep -v make`
                    418:     rm -f Makefile Makefile.bak
                    419:     x11pth="$usrlibdir $libdir";
                    420:   fi
                    421:
                    422: # We want these libraries:
                    423: #
                    424:   echo Checking for optional libraries and headers...
                    425: #   LIB: X11
                    426:   pth=$x11pth
                    427:   lib=X11; . ./locatelib
                    428:   if test -f $Xincroot/X11/Xos.h -a -z "$graph_cmd"; then
                    429:     which_graphic_lib=X11
                    430:     test -n "$extralib" && echo ..."Extra Libraries are $extralib"
                    431:     echo ..."Found X11 header files in $Xincroot/X11"
                    432:   fi
                    433:
                    434:   pth=$libpth
                    435: #   LIB: gnuplot
                    436:   opth="$pth"
                    437:   pth="$TOP/gnuplot-$osname-$arch $TOP/gnuplot $pth"
                    438:   gpth="$pth"
                    439:   lib=gnuplot; . ./locatelib
                    440:   pth="$opth"
                    441:   gnuplot_libs=
                    442:   case $gnuplot in
                    443:     /*|[c-z]:/*)
                    444:         addgnuplot=gnuplot
                    445:        for lib in vga vesa jmgraph linuxvga gd png z
                    446:        do
                    447:            . ./locatelib
                    448:            eval "elib=\$$lib"
                    449:            case $elib in
                    450:              /*|[c-z]:/*) gnuplot_libs="$gnuplot_libs -l$lib";;
                    451:            esac
                    452:        done
                    453:        if test "$which_graphic_lib" = gnuplot; then
                    454:            if test -z "$gnuplot_libs"; then
                    455:                echo "...I expect that no libraries are needed for gnuplot"
                    456:            else
                    457:                echo "...I expect that libraries $gnuplot_libs are needed for gnuplot"
                    458:            fi
                    459:        fi
                    460:        ;;
                    461:     *)
                    462:        if test "$which_graphic_lib" = gnuplot; then
                    463:            echo "###"
                    464:            echo "### Could not find gnuplot library in:"
                    465:            echo "###   ./gnuplot-$osname-$arch ./gnuplot"
                    466:            echo "###   $pth"
                    467:            echo "###"
                    468:            case "$osname" in
                    469:                os2) tlib=gnuplot.a ;;
                    470:                *)   tlib=libgnuplot.a ;;
                    471:            esac
                    472:            echo "### You may need to execute"
                    473:            echo "###   ar cr $tlib version.o util.o term.o bitmap.o stdfn.o"
                    474:            echo "### In the build directory of gnuplot-3.7, and move"
                    475:            echo "### $tlib to ./gnuplot-$osname-$arch or ./gnuplot subdirs"
                    476:            echo "###"
                    477:        fi
                    478:        ;;
                    479:   esac
                    480:
                    481: #   LIB: GNU ReadLine
                    482:   readline_add="$GP_READLINE $TOP/readline-$osname-$arch $TOP/readline"
                    483:   pth="$readline_add $pth"
                    484:   lib=readline; . ./locatelib
                    485:   rl_fullname=$try
                    486:
                    487:   addsunview=sunview
                    488:   if test -n "$readline"; then
                    489: # Readline -- TermCap
                    490:     if test -n "`(nm $rl_fullname | grep tgetent)2>/dev/null`"; then
                    491:       lib=ncurses; . ./locatelib
                    492:       if test -n "$try" -a -n "`(nm $try | grep tgetent)2>/dev/null`"; then
                    493:         rl_ncurses=$ncurses
                    494:       else
                    495:         lib=termcap; . ./locatelib
                    496:         rl_termcap=$termcap
                    497:       fi
                    498:     fi
                    499: # Readline -- Allocation
                    500:     rl_liberty=`(nm $rl_fullname | grep alloca)2>/dev/null`
                    501:     if test -n "$rl_liberty"; then
                    502:       lib=iberty; . ./locatelib
                    503:       if test -z "$try"; then rl_liberty=; fi
                    504:     fi
                    505: # Readline -- Version
                    506:     if (nm $rl_fullname | grep "\<_rl_copy\>")2>/dev/null; then addsunview=; fi
                    507: # Readline -- Headers
                    508:     case "$osname" in
                    509:       os2) incpth=`echo $C_INCLUDE_PATH | sed -e 's/\([^;]\)$/\1;/g' -e 's%;%/readline %g' -e 's,\\\\,/,g'` ;;
                    510:       cygwin*) incpth="\
                    511:        $cygtop/include/readline\
                    512:        $cygtop/include\
                    513:        $cygtop/H-${arch}-cygwin32/${arch}-cygwin32/include\
                    514:      ";;
                    515:       *) incpth="\
                    516:       /usr/local/include/readline\
                    517:       /usr/include/readline\
                    518:       /opt/include/readline\
                    519:       /opt/local/include/readline\
                    520:       /opt/gnu/include/readline\
                    521:       /usr/unsupported/include/readline\
                    522:       /usr/local/include\
                    523:       /usr/include\
                    524:       /opt/include\
                    525:       /opt/local/include\
                    526:       /opt/gnu/include\
                    527:     ";;
                    528:     esac
                    529:     pth="$readline_add $incpth"
                    530:     x=`./locate 'readline.h' '' $pth`
                    531:     CPPF_defined=
                    532:     case $x in
                    533:      ?:/*|/*) rl_include=`echo $x | sed 's,/readline.h,,'`
                    534:          if (grep CPPFunction $x > /dev/null 2>&1); then CPPF_defined=yes; fi
                    535:          if (grep rl_message  $x > /dev/null 2>&1); then rl_message=yes; fi
                    536:          if (grep "rl_refresh_line *()" $x > /dev/null 2>&1); then
                    537:            rl_refresh_line_oldproto=yes
                    538:          fi
                    539:          if (grep rl_completion_append_character $x > /dev/null 2>&1); then
                    540:            rl_appendchar=yes
                    541:          fi
                    542:          if (grep rl_save_prompt $x > /dev/null 2>&1); then
                    543:            rl_save_prompt=yes;
                    544:          else
                    545:           _rl_save_prompt=`(nm $rl_fullname | grep rl_save_prompt)2>/dev/null`
                    546:          fi;;
                    547:       *) echo ..."But no header file has been found"
                    548:          readline=;;
                    549:     esac
                    550:   fi
                    551:
                    552:   if test -n "$readline"; then
                    553:     echo ..."Found GNU readline header in $rl_include"
                    554:     if (echo $rl_include | grep "readline$" > /dev/null); then
                    555:       rl_include=`echo $rl_include | sed 's,/readline$,,'`
                    556:       RLINCLUDE="-I$rl_include"
                    557:     else
                    558: # in case headers are not installed correctly
                    559:       RLINCLUDE="-I$rl_include -DREADLINE_LIBRARY"
                    560:     fi
                    561:     RLLIBS="-L$readline -lreadline"
                    562:     if test -n "$rl_ncurses"; then
                    563:       echo ..."Library ncurses needed by readline"
                    564:       RLLIBS="$RLLIBS -lncurses"
                    565:     fi
                    566:     if test -n "$rl_termcap"; then
                    567:       echo ..."Library termcap needed by readline"
                    568:       RLLIBS="$RLLIBS -ltermcap"
                    569:     fi
                    570:     if test -n "$rl_liberty"; then
                    571:       echo ..."Library liberty needed by readline"
                    572:       RLLIBS="$RLLIBS -liberty"
                    573:     fi
                    574:     if test -z "$rl_appendchar"; then
                    575:       echo ..."Library readline does not have completion_append_char"
                    576:     fi
                    577:     if test -z "$rl_save_prompt"; then
                    578:       echo ..."Library readline does not have rl_save_prompt"
                    579:       if test -n "$_rl_save_prompt"; then
                    580:         echo ......"but it has _rl_save_prompt"
                    581:       fi
                    582:     fi
                    583:
                    584:     if test "$fastread" != yes; then
                    585:       cat << EOM
                    586: ==========================================================================
                    587: EOM
                    588:      test -z "$addsunview" && cat <<EOT
                    589: Your readline library won't compile with sunview. You have four choices :
                    590: 1) Avoid choosing sunview as your graphic lib (by the way, I won't let you).
                    591: 2) Fetch a new readline (version number at least 2.0)
                    592: 3) Recompile your GNU readline library, replacing rl_copy in the file
                    593:    readline.c by some weird name (GNU chose rl_copy_text in later versions).
                    594: 4) Answer "n" to the following question (not recommended).
                    595: EOT
                    596:       echo $n "Do you want to use GNU readline library within GP ? $c"
                    597:       rep='y n'; dflt=y; . ./myread
                    598:       case $ans in
                    599:         n) addsunview=sunview; readline=;;
                    600:       esac
                    601:     fi
                    602:   fi
                    603:
                    604:   if test -n "$readline"; then readline_enabledp="t"; fi
                    605:
                    606: #  Graphic libs now.
                    607: #
                    608:   if test "$fastread" != yes; then
                    609:     if test -n "$X11"; then addX11=X11; fi
                    610:     cat << EOT
                    611: ==========================================================================
                    612: GP contains high resolution plotting functions. Choose among
                    613:        none       $addX11         $addsunview        $addgnuplot
                    614: EOT
                    615:     echo $n ..."Use which graphic library (\"none\" means no hi-res plot) ? $c"
                    616:     rep="none $addX11 $addsunview $addgnuplot";
                    617:     dflt=$which_graphic_lib; . ./myread
                    618:     which_graphic_lib=$ans
                    619:
                    620:   case "$which_graphic_lib" in
                    621:     X11)
                    622:       gnuplot=;
                    623:       # If xmkmf did not give the right answer
                    624:       # X11 -- Headers
                    625:       if test ! -f $Xincroot/X11/Xos.h; then
                    626:         x11pth="\
                    627:           /usr/openwin/share/lib\
                    628:           /usr/openwin/lib\
                    629:           /usr/X11R6/lib\
                    630:           /usr/X11R5/lib\
                    631:           /usr/X11R4/lib\
                    632:           /usr/lib/X11R6\
                    633:           /usr/lib/X11R5\
                    634:           /usr/lib/X11R4\
                    635:           /usr/local/X11R6/lib\
                    636:           /usr/local/X11R5/lib\
                    637:           /usr/local/X11R4/lib\
                    638:           /usr/local/lib/X11R6\
                    639:           /usr/local/lib/X11R5\
                    640:           /usr/local/lib/X11R4\
                    641:           /usr/X11/lib\
                    642:           /usr/lib/X11\
                    643:           /usr/local/X11/lib\
                    644:           /usr/local/lib/X11\
                    645:           /usr/X386/lib\
                    646:           /usr/x386/lib\
                    647:           /usr/XFree86/lib/X11\
                    648:           /usr/lib\
                    649:           /usr/local/lib\
                    650:           /usr/unsupported/lib\
                    651:           /usr/athena/lib\
                    652:           /usr/local/x11r5/lib\
                    653:           /usr/lpp/Xamples/lib\
                    654:         ";
                    655:         pth=`echo $x11pth | s,/lib,/include,g`
                    656:         x=`./locate X11/Xos.h '' $pth`
                    657:         case $x in
                    658:          /*) Xincroot=`echo $x | sed 's,/X11/Xos.h,,'`;;
                    659:          *)  Xincroot=;;
                    660:         esac
                    661:         if test -n "$Xincroot"; then
                    662:           echo ..."Found X11 header files in $Xincroot/X11"
                    663:         fi
                    664:       fi
                    665:       # X11 -- Lib
                    666:       if test -f $Xincroot/X11/Xos.h -a -z "$X11"; then
                    667:         pth=$x11pth;
                    668:         lib=X11; . ./locatelib
                    669:       fi ;;
                    670:     gnuplot);;
                    671:     *)gnuplot=;;
                    672:   esac
                    673:   else # fastread = yes
                    674:     if test "$which_graphic_lib" = none -a -z "$graph_cmd" -a -n "$gnuplot"; then
                    675:       which_graphic_lib=gnuplot
                    676:     fi
                    677:     if test -z "$X11" -a -z "$gnuplot" -a -z "$readline"; then
                    678:       echo ...none
                    679:     fi
                    680:   fi
                    681: fi
                    682:
                    683: ####################### CONFIGURE - COMPILATION #############################
                    684: #
                    685: # Which optimization ?
                    686: #
                    687: if test "$fastread" != yes; then
                    688:   cat << EOT
                    689: ==========================================================================
                    690: The default is to fully optimize the compilation. You may choose to build
                    691:   an executable for debugging or profiling instead. Choose among :
                    692:        full       debugging       profiling
                    693: EOT
                    694:   echo $n ..."Which optimization do you prefer ? $c"
                    695:   dflt=$optimization; rep='full debugging profiling'; . ./myread
                    696:   optimization=$ans
                    697: fi
                    698:
                    699: #
                    700: # Which Compiler ?
                    701: #
                    702: if test -z "$CC"; then
                    703:   echo Looking for the compilers ...
                    704:   # Native Compilers
                    705:   cc=`./locate cc '' $pathspace`
                    706:   case "$osname" in
                    707:     hpux) if test "$cc" = /usr/ccs/bin/cc -a -f /opt/ansic/bin/cc; then
                    708:             cc=/opt/ansic/bin/cc; fi ;;  # This is a better compiler
                    709:   esac
                    710:   case "$cc" in ?:/*|/*) echo ..."cc is $cc";;
                    711:       *) echo ..."I could not find cc.";; esac
                    712:   # GNU Compilers
                    713:   gcc=`./locate gcc '' $pathspace`
                    714:   if test -z "$gcc"; then
                    715:     exe=$osname-$arch-gnu$$
                    716:     $cc $extraflag -o $exe gnu.c
                    717:     if $exe; then gcc=$cc; fi; rm -f $exe
                    718:   fi
                    719:   case "$gcc" in
                    720: ?:/*|/*) echo ..."gcc is $gcc";;
                    721:       *) echo ..."I could not find gcc."; gcc=;;
                    722:   esac
                    723:   if test -n "$gcc"; then
                    724:     __gnuc__=`$gcc -v 2>&1 | sed -n 's/.*version //p'`
                    725:     if test -z "$__gnuc__"; then __gnuc__=unknown; fi
                    726:     echo GNU compiler version $__gnuc__
                    727:   fi
                    728:   case "$osname" in
                    729:     osf1|aix) __gnuc__=;; # Native compilers are faster
                    730:     hpux)     __gnuc__=;; # versions older than 2.7 cannot build PIC code
                    731:                             # gp built with recent versions has bugs
                    732:     concentrix) case "$__gnuc__" in 2.[78].*);; *)
                    733:               __gnuc__=;; esac;;
                    734:   esac
                    735:   # Choosing the compiler
                    736:   if test -n "$__gnuc__"; then CC=$gcc; else CC=$cc; fi
                    737: fi
                    738:
                    739: if test "$fastread" != yes; then
                    740:   cat << EOT
                    741: ==========================================================================
                    742: Only ANSI C and C++ compilers are supported. Choosing the GNU compiler
                    743: gcc/g++ enables the inlining of kernel routines (about 20% speedup; if you
                    744: use a recent g++, it's a good idea to include the -fpermissive flag).
                    745: If you choose not to use gcc, the C++ version of Pari will be a little
                    746: faster because of general inlining, but can be used in library mode only
                    747: with C++ programs (we really recommand using gcc all the way through).
                    748: EOT
                    749:   echo $n ..."Which C compiler shall I use ? $c"
                    750:   dflt=$CC; rep=; . ./myread
                    751:   CC=$ans
                    752: fi
                    753:
                    754: #
                    755: # Which Flags for Compiler ?
                    756: #
                    757: if test "$CC" != "$gcc"; then __gnuc__=; fi
                    758: if test -z "$__gnuc__"; then
                    759:   exe=$osname-$arch-gnu$$
                    760:   $CC $extraflag -o $exe gnu.c
                    761:   if $exe; then __gnuc__=yes; fi
                    762:   rm -f $exe
                    763: fi
                    764:
                    765: if test -n "$__gnuc__"; then
                    766:   __GNUC__="-D__GNUC__"
                    767:   OPTFLAGS="-O2 -DGCC_INLINE"
                    768:   DBGFLAGS="-g -Wall -Wno-implicit"
                    769:   PRFFLAGS="-pg"
                    770:   # Some architectures need -fPIC for building dynamic lib
                    771:   case "$osname-$arch" in hpux-*) DLCFLAGS=-fPIC;; esac
                    772:   # Specific optimisations for some architectures
                    773:   case "$osname-$arch" in
                    774:     linux-i?86|cygwin*) OPTFLAGS="-O3 -DGCC_INLINE -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2";;
                    775:   esac
                    776:   case "$osname-$asmarch" in *-sparcv8*) CFLAGS="$CFLAGS -mv8" ;; esac
                    777: else
                    778:   CFLAGS=
                    779:   DBGFLAGS="-g"
                    780:   PRFFLAGS="-pg"
                    781:   case "$osname-$arch" in
                    782:     hpux-*) # -Aa is for ANSI C, +z for PIC code (for commercial HPUX compilers)
                    783:                   OPTFLAGS=-O; CFLAGS=-Aa; DLCFLAGS=+z;;
                    784:     # best tuning option, even for PPC604:
                    785:     aix-*)        OPTFLAGS=-O2; CFLAGS='-qlanglvl=ansi -qtune=601';;
                    786:     cygwin*|linux-i?86|freebsd-i?86)
                    787:                   OPTFLAGS=-O2; CFLAGS=-m486;;
                    788:     osf1-*)       OPTFLAGS='-O4 -migrate -ifo -Olimit 9999';;
                    789:     sunos-*)      OPTFLAGS=-fast; PRFFLAGS='-pg -Bstatic';;
                    790:     solaris-*)    OPTFLAGS=-fast; PRFFLAGS=-xpg;;
                    791:     concentrix-*) OPTFLAGS=-Ogi;;
                    792:     *)            OPTFLAGS=-O;;
                    793:   esac
                    794: fi
                    795: CFLAGS="$CFLAGS $DLCFLAGS"
                    796:
                    797: case "$osname" in
                    798:   nextstep)  CFLAGS="-traditional-cpp $CFLAGS";;
                    799: esac
                    800:
                    801: case "$optimization" in
                    802:   full)      suffix=; cflags="$OPTFLAGS $CFLAGS";;
                    803:   profiling) suffix=.prf; cflags="$OPTFLAGS $CFLAGS $PRFFLAGS";;
                    804:   debugging) suffix=.dbg; cflags="-DMEMSTEP=1048576 $DBGFLAGS $CFLAGS";;
                    805: esac
                    806:
                    807: if test "$fastread" != yes; then
                    808:   echo $n ..."With which flags ? $c"
                    809:   dflt=$cflags; rep=; . ./myread
                    810:   cflags=$ans
                    811: fi
                    812:
                    813: # Here we should check it is an ANSI compiler...
                    814: echo "C compiler is          $CC  $cflags"
                    815:
                    816: #
                    817: # Which Assembler ?
                    818: #
                    819: if test -z "$AS"; then
                    820:   echo Looking for an assembler ...
                    821:   if test "$osname" = hpux
                    822:   then AS=`./locate as '' /usr/ccs/bin /bin`   # We don't want GNU as
                    823:   else AS=`./locate as '' $pathspace`
                    824:   fi
                    825:   case "$AS" in ?:/*|/*) echo ..."as is $AS";;
                    826:       *) echo ..."I could not find as." ;; esac
                    827: fi
                    828: gnuas=no
                    829: if (echo | $AS --version 2>&1 | grep GNU > /dev/null); then
                    830:   gnuas=yes
                    831: else
                    832:   if (echo | $AS -v 2>&1 | grep GNU > /dev/null); then
                    833:     gnuas=yes
                    834:   fi
                    835: fi
                    836: if test "$gnuas" = yes; then
                    837:   echo "...Hum, this looks like GNU as"
                    838:   case "$osname-$asmarch" in
                    839:     solaris-sparc*) KERNELCPPFLAGS="-DNO_UNDERSCORE $__GNUC__";;
                    840:   esac
                    841: else
                    842:   case "$osname-$asmarch" in
                    843:     osf1-alpha)     ASFLAGS="-O1";;
                    844:     sunos-sparc*)   ASFLAGS="-P -I. $__GNUC__";;
                    845:     solaris-sparc*) ASFLAGS="-P -I. $__GNUC__ -T";;
                    846:     hpux-hppa)      ASFLAGS="+DA1.1";;
                    847:     *)              ASFLAGS=;;
                    848:   esac
                    849: fi
                    850: echo "Assembler is           $AS  $ASFLAGS"
                    851:
                    852: #
                    853: # Which C PreProcessor ?
                    854: #
                    855: case "$osname" in
                    856:   nextstep) cppfl="-traditional-cpp" ;;
                    857:   freebsd)
                    858:     if test $PORTOBJFORMAT = "elf"; then
                    859:             cppfl="-DUSE_ELF"
                    860:     fi ;;
                    861: esac
                    862: CPP="$cc $cppfl -E -I."
                    863:
                    864: echo "C PreProcessor is      $CPP"
                    865:
                    866: #
                    867: # Which Executable Linker ?
                    868: #
                    869: LIBS=
                    870: case "$osname-$arch" in
                    871:   linux-*|cygwin*)
                    872:       LD=$CC; LDFLAGS="$cflags -Xlinker -export-dynamic"
                    873:       runpathprefix='-Xlinker -rpath -Xlinker ';;
                    874:   osf1-alpha)
                    875:       LD=$ld; LIBS='-lots -lc';runpathprefix='-rpath '
                    876:       case "$optimization" in
                    877:        full|profiling)
                    878:          LDFLAGS='-g0 -O4 -std0 -call_shared /usr/lib/cmplrs/cc/crt0.o';;
                    879:        debugging)
                    880:          LDFLAGS='-std0 -call_shared /usr/lib/cmplrs/cc/crt0.o';;
                    881:       esac;;
                    882:   solaris-*) LD=$CC; LDFLAGS=$cflags; runpathprefix=-R ;;
                    883:   os2-*)     LD=$CC; LDFLAGS="$cflags -Zexe" ;;
                    884:   *)         LD=$CC; LDFLAGS=$cflags ;;
                    885: esac
                    886:
                    887: if test "$fastread" != yes; then
                    888:   echo $n ..."Which linker for building executables ? $c"
                    889:   dflt=$LD; rep=; . ./myread
                    890:   LD=$ans
                    891: fi
                    892:
                    893: #
                    894: # Which Flags for Executable Linker?
                    895: #
                    896: if test "$fastread" != yes; then
                    897:   echo $n ..."With which flags ? $c"
                    898:   dflt=$LDFLAGS; rep=; . ./myread
                    899:   LDFLAGS=$ans
                    900: fi
                    901:
                    902: echo "Executable linker is   $LD  $LDFLAGS"
                    903:
                    904: if test "$optimization" = profiling; then DLLD=; else
                    905:   DLLD=${DLLD-ld}
                    906: # Which suffix for Dynamic Lib?
                    907: # Some linkers (SunOS 4) need minor and major lib version numbers.
                    908: # Some others (SunOS 5) need a link from a .so
                    909: # Some others (HPUX 09) do not want version numbers.
                    910: #
                    911:   case "$osname-$arch" in
                    912: #    aix-*)  DLSUFFIX=a  ;; dynamic linking does not work!
                    913:     hpux-*)  DLSUFFIX=sl ;;
                    914:     irix-*)  DLSUFFIX=so ;;
                    915:     sunos-*) DLSUFFIX=so; somake=.`echo $version| sed 's/\.//g'`.$patch ;;
                    916:     linux-*|solaris-*|*-alpha)
                    917:                DLSUFFIX=so; somake=.$version; sodest=.$patch ;;
                    918:     freebsd-*)
                    919:                if test $PORTOBJFORMAT = "elf"; then
                    920:                        somake=.`echo $version | sed 's/\..*//g'`
                    921:                        DLSUFFIX=so; sodest=.`echo $version | sed 's/.*\.//'`.$patch
                    922:                        FREEBSD_ELF=1
                    923:                else
                    924:                        DLSUFFIX=so; somake=.$version; sodest=.$patch
                    925:                        FREEBSD_ELF=0
                    926:
                    927:                fi ;;
                    928:     cygwin*) DLSUFFIX=dll; somake= ; sodest= ;;
                    929:     *) DLLD=;;
                    930:   esac
                    931:   somake=$DLSUFFIX$somake
                    932:   sodest=$somake$sodest
                    933: fi
                    934:
                    935: if test -n "$DLLD"; then
                    936: # Which Dynamic Lib Linker?
                    937: #
                    938:   if test $DLLD = ld -a -n "$ld"; then
                    939:     DLLD=$ld;
                    940:   fi
                    941:   if test "$fastread" != yes; then
                    942:     echo $n ..."Which linker for building dynamic libs? $c"
                    943:     dflt=$DLLD; rep=; . ./myread
                    944:     DLLD=$ans
                    945:   fi
                    946:
                    947: # Which Flags for Dynamic Lib Linker ?
                    948: #
                    949:   if ($DLLD -v 2>&1 | grep GNU > /dev/null); then
                    950:     echo "...Hum, this looks like GNU ld"
                    951:     DLLDFLAGS="-shared -soname \$@"
                    952:   else
                    953:     # not GNU ld
                    954:     case "$osname-$arch" in
                    955:       aix-*)      DLLDFLAGS="-r" ;;
                    956:       hpux-*)     DLLDFLAGS="-b -E" ;;
                    957:       freebsd-*)  DLLDFLAGS="-Bshareable -x" ;;
                    958:       linux-*)    DLLDFLAGS="-shared -soname \$@" ;;
                    959:       irix-*)     DLLDFLAGS="-shared -elf -no_unresolved -all" ;;
                    960:       *-alpha)    DLLDFLAGS="-shared"; EXTRADLLDFLAGS='${LIBS}'
                    961:          case "$optimization" in
                    962:            full) DLLDFLAGS="$DLLDFLAGS -O3" ;;
                    963:          esac;;
                    964:       sunos-*)    DLLDFLAGS="-assert nodefinitions" ;;
                    965:       solaris-*)  DLLDFLAGS="-G -h \$@" ;;
                    966:       *)          DLLD=;;
                    967:     esac
                    968:   fi
                    969:
                    970:   if test "$fastread" != yes; then
                    971:     echo $n ..."Which flags for linker? $c"
                    972:     dflt=$DLLDFLAGS; rep=; . ./myread
                    973:     DLLDFLAGS=$ans
                    974:   fi
                    975: fi
                    976:
                    977: if test -z "$DLLD"; then
                    978:   echo "No Dynamic Lib"
                    979:   static=y
                    980: else
                    981:   echo "Dynamic Lib linker is  $DLLD  $DLLDFLAGS"
                    982:   static=n
                    983: fi
                    984:
                    985: if test "$fastread" != yes; then
                    986:   cat << EOT
                    987: ==========================================================================
                    988: Should you change your mind, you only need to modify the lines
                    989:     CC="$CC"
                    990:     CFLAGS="$cflags"
                    991:     LD="$LD"
                    992:     LDFLAGS="$LDFLAGS"
                    993:     DLLD="$DLLD"
                    994:     DLLDFLAGS="$DLLDFLAGS"
                    995: in the Makefile
                    996: ==========================================================================
                    997: EOT
                    998: fi
                    999:
                   1000: ####################### CONFIGURE - READLINE VERSION ########################
                   1001: if test -n "$readline"; then
                   1002:   exe=$osname-$arch-rlv$$
                   1003:   $CC $extraflag $RLINCLUDE -o $exe rl_version.c $RLLIBS 2>/dev/null
                   1004:   if test -r $exe; then readline=`$exe`; else readline=1.0; fi
                   1005:   rm -f $exe
                   1006: fi
                   1007:
                   1008: ####################### CONFIGURE - LIBC ####################################
                   1009: #
                   1010: #  Long integer ?
                   1011: #
                   1012: endian=4321;
                   1013: exe=$osname-$arch-endian$$
                   1014: if ($CC $extraflag endian.c -o $exe 2>/dev/null); then
                   1015:   endian=`$exe`;
                   1016: fi
                   1017: rm -f $exe
                   1018:
                   1019: if test "$fastread" != yes; then
                   1020: cat << EOT
                   1021: Determining sizeof(long) and endianness. If your hardware supports different
                   1022: size of longs (e.g SGI/MIPS), you can decide to use a particular word size
                   1023: by specifying endianness (e.g answer 4321 instead of the proposed 87654321).
                   1024: You'll probably have to specify some exotic compilation flag (e.g -o32,-n32)
                   1025: ============================================================================
                   1026: EOT
                   1027:   echo $n "What is the internal byte representation of long integer ? $c"
                   1028:   dflt=$endian; rep='12345678 87654321 1234 4321'; . ./myread
                   1029:   endian=$ans
                   1030: fi
                   1031: echo "The internal byte representation of your long integers is $endian."
                   1032:
                   1033: case $endian in
                   1034:   *8|8*) sizeof_long=8; pretty="$pretty 64-bit version";;
                   1035:   *)     sizeof_long=4; pretty="$pretty 32-bit version";;
                   1036: esac
                   1037:
                   1038:
                   1039: #
                   1040: # Looking in C lib for some functions.
                   1041: #
                   1042: exe=$osname-$arch-tmp$$
                   1043: echo Checking some common types...
                   1044: list=ulong; . ./look
                   1045: echo Looking in C lib for some symbols...
                   1046: extra_flags=
                   1047: list=exp2; . ./look
                   1048: list=strftime; . ./look
                   1049: list='getrusage times ftime'; . ./look
                   1050: list='sigrelse sigsetmask'; . ./look
                   1051: list=TIOCGWINSZ; . ./look
                   1052:
                   1053: # For install(). Do we need libdl.so?
                   1054: # on irix and osf1 -ldl not needed
                   1055: extra_flags=
                   1056: list=dlopen; . ./look
                   1057: if test "$has_dlopen" = no; then
                   1058:   echo "Try again, with -ldl this time..."
                   1059:   extra_flags=-ldl; . ./look
                   1060:   if test "$has_dlopen" = yes; then
                   1061:     LIBS="-ldl $LIBS"
                   1062:   fi
                   1063: fi
                   1064:
                   1065: ####################### CONFIGURE - MAKE ####################################
                   1066:
                   1067: dflt=$prefix; rep=
                   1068: test "$fastread" = yes || cat <<EOT
                   1069: ==========================================================================
                   1070: By default, gp will be installed in $dflt/bin, manual pages under
                   1071:   $dflt/man, etc..., with $dflt as prefix for all installation directories.
                   1072:   If you wish to have binaries under /bin but manual pages under
                   1073:   /usr/local/man, that's ok: you will be prompted separately for each of the
                   1074:   installation directories, the prefix being only used to set the defaults.
                   1075:   (You will be prompted before the actual installation is done.)
                   1076: The names of executables and libraries contain their version number $version.
                   1077:   A symbolic link to gp or libpari.[a/so] will point to the most recent
                   1078:   installation of GP/PARI.
                   1079: EOT
                   1080: echo $n "Installation prefix ? $c"
                   1081: . ./myread; prefix=$ans
                   1082:
                   1083: echo $n ..."\"gp\" executable ? $c"
                   1084: dflt=$prefix/bin; . ./myread; bindir=$ans
                   1085:
                   1086: echo $n ..."\"pari\" library ? $c"
                   1087: dflt=$prefix/lib; . ./myread; libdir=$ans
                   1088:
                   1089: echo $n ..."include files ? $c"
                   1090: dflt=$prefix/include/pari; . ./myread; includedir=$ans
                   1091:
                   1092: echo $n ..."manual pages ? $c"
                   1093: dflt=$prefix/man/man1; . ./myread; mandir=$ans
                   1094:
                   1095: echo $n ..."documentation, help scripts, and emacs macros ? $c"
                   1096: dflt=$prefix/lib/pari; . ./myread; miscdir=$ans
                   1097:
                   1098: echo $n ..."miscellaneous data (galois resolvents) ? $c"
                   1099: dflt=$miscdir/data; . ./myread; datadir=$ans
                   1100:
                   1101: if test "$fastread" != yes; then
                   1102:   if test -z "$DLLD"; then
                   1103:     cat <<EOT
                   1104: ==========================================================================
                   1105: We cannot build a dynamic executable. We will build the static version.
                   1106: EOT
                   1107:   else
                   1108:     cat <<EOT
                   1109: ==========================================================================
                   1110: By default, we will try to build the shared library and gp will be an
                   1111:   executable dynamically linked with it. Do you prefer to have the static
                   1112:   archive libpari.a and a statically linked executable (which is a bit
                   1113:   faster, but takes more disk place) ?
                   1114: You can always type "make all" in case you want both later.
                   1115: EOT
                   1116:   echo $n "Do you want static executable and library ? $c"
                   1117:   dflt=$static; rep='y n'; . ./myread; static=$ans
                   1118:   fi
                   1119: fi
                   1120: case "$static" in
                   1121:   y) echo "Default is static executable and archive library, graphic=$which_graphic_lib" ;;
                   1122:   n) echo "Default is dynamic executable and shared library, graphic=$which_graphic_lib" ;;
                   1123: esac
                   1124:
                   1125: #
                   1126: # Target directory
                   1127: #
                   1128: pre=O
                   1129: case "$optimization" in
                   1130:   full)      objdir=$pre$osname-$arch ;;
                   1131:   debugging) objdir=$pre$osname-$arch.dbg ;;
                   1132:   profiling) objdir=$pre$osname-$arch.prf ;;
                   1133: esac
                   1134: if test "$fastread" != yes; then
                   1135:   cat << EOT
                   1136: ==========================================================================
                   1137: This is the name of the directory where all the object files will be :
                   1138: EOT
                   1139:   echo $n ..."Enter dir name : $c"
                   1140:   dflt=$objdir; rep=; . ./myread
                   1141:   objdir=$ans
                   1142: fi
                   1143:
                   1144: #
                   1145: # For dynamic linking, before and after installing
                   1146: #
                   1147: case "$osname" in
                   1148:   *cygwin*) LDDYN="-L$libdir -lpari_dll" ; runpath="$libdir" ;
                   1149:            DYNLIBS=-lpari_dll ; DYNFLAGS=-Dlibpari_USE_DLL ;;
                   1150:   *)        LDDYN="-L$libdir -lpari" ; runpath="$libdir" ;;
                   1151: esac
                   1152:
                   1153: cat << EOT
                   1154: ==========================================================================
                   1155: EOT
                   1156:
                   1157: ####################### CONFIGURE - SPIT ####################################
                   1158: #
                   1159: #  Now spit out the results
                   1160: #
                   1161: cd $TOP
                   1162: if test ! -d $objdir; then mkdir -p $objdir; fi
                   1163: dflt_conf_file=$objdir/$dflt_conf_file
                   1164:
                   1165: cat > $dflt_conf_file << EOT
                   1166: # Config file for Pari $release -- $pretty
                   1167:
                   1168: EOT
                   1169: case "$osname" in
                   1170:   os2) shell_q='"'; echo "shell_q='\"'" >> $dflt_conf_file;;
                   1171:     *) shell_q="'"; echo "shell_q=\"'\"" >> $dflt_conf_file;;
                   1172: esac
                   1173:
                   1174: for variable in\
                   1175:   version TOP config_dir src_dir emacs_dir doc_dir\
                   1176:   bindir includedir mandir miscdir libdir datadir\
                   1177:   optimization objdir static suffix\
                   1178:   arch asmarch osname pretty\
                   1179:   __gnuc__ gnuas CPP AS ASFLAGS CC cflags DBGFLAGS OPTFLAGS LD LDFLAGS\
                   1180:   DLLD DLSUFFIX somake sodest KERNELCPPFLAGS DLLDFLAGS EXTRADLLDFLAGS\
                   1181:   runpath runpathprefix LDDYN LIBS DYNLIBS DYNFLAGS DYNRELOC\
                   1182:   ranlib gzip zcat emacs perl ln_s make_sh exe_suff\
                   1183:   readline readline_enabledp CPPF_defined rl_refresh_line_oldproto\
                   1184:   rl_appendchar rl_save_prompt _rl_save_prompt rl_message\
                   1185:   RLINCLUDE RLLIBS\
                   1186:   sizeof_long endian has_exp2\
                   1187:   has_getrusage has_times has_ulong has_ftime has_strftime\
                   1188:   has_sigrelse has_sigsetmask has_dlopen has_TIOCGWINSZ\
                   1189:   gnuplot extralib X11 Xincroot which_graphic_lib gnuplot_libs\
                   1190:   ; do
                   1191:   eval "echo $variable=\'"'$'"$variable\'" \>\> $dflt_conf_file
                   1192: done
                   1193:
                   1194: . $config_dir/extract_files
                   1195:
                   1196: #
                   1197: #  Building...
                   1198: #
                   1199: cat << EOT
                   1200: ==========================================================================
                   1201: EOT
                   1202:
                   1203: echo $n "Shall we try to build pari $version.$patch ($status) now (y/n)? $c"
                   1204: dflt=n; rep='y n'; . $config_dir/myread
                   1205:
                   1206: case $ans in
                   1207: y) if (make gp); then
                   1208:      echo $n "Shall we install the files where they belong (y/n)? $c"
                   1209:      dflt=n; rep='y n'; . $config_dir/myread
                   1210:      case $ans in
                   1211:        y) make install;;
                   1212:        n) echo "Ok. Type \"make install\" when you are ready";;
                   1213:      esac
                   1214:    fi;;
                   1215: n) echo "Ok. Type \"make install\" when you are ready";;
                   1216: esac
                   1217: echo 'Bye !'

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>