Annotation of 43BSDTahoe/new/patch/Configure, revision 1.1.1.1

1.1       root        1: #! /bin/sh
                      2: #
                      3: # If these # comments don't work, trim them.  Don't worry about any other
                      4: # shell scripts, Configure will trim # comments from them for you.
                      5: #
                      6: # Note: if you are running ksh, be sure to say "sh Configure".
                      7: #
                      8: # (If you are trying to port this package to a machine without sh, I would
                      9: # suggest you cut out the prototypical config.h from the end of Configure
                     10: # and edit it to reflect your system.  Some packages may include samples
                     11: # of config.h for certain machines, so you might look for one of those.)
                     12: #
                     13: # $Header: Configure,v 2.0 86/09/17 15:32:58 lwall Exp $
                     14: #
                     15: # $Log:        Configure,v $
                     16: # Revision 2.0  86/09/17  15:32:58  lwall
                     17: # Baseline for netwide release.
                     18: # 
                     19: #
                     20: # Yes, you may rip this off to use in other distribution packages.
                     21: #
                     22: # (Note: this Configure script was generated automatically.  Rather than
                     23: # working with this copy of Configure, you may wish to get metaconfig.)
                     24: 
                     25: define='define'
                     26: undef='/*undef'
                     27: 
                     28: d_eunice=''
                     29: eunicefix=''
                     30: loclist=''
                     31: expr=''
                     32: sed=''
                     33: echo=''
                     34: cat=''
                     35: rm=''
                     36: mv=''
                     37: cp=''
                     38: tail=''
                     39: tr=''
                     40: mkdir=''
                     41: sort=''
                     42: uniq=''
                     43: grep=''
                     44: trylist=''
                     45: test=''
                     46: inews=''
                     47: egrep=''
                     48: more=''
                     49: pg=''
                     50: Mcc=''
                     51: vi=''
                     52: mailx=''
                     53: Log=''
                     54: Header=''
                     55: bin=''
                     56: cc=''
                     57: contains=''
                     58: cpp=''
                     59: d_index=''
                     60: d_void=''
                     61: iandd=''
                     62: libc=''
                     63: mansrc=''
                     64: manext=''
                     65: n=''
                     66: c=''
                     67: package=''
                     68: registers=''
                     69: reg1=''
                     70: reg2=''
                     71: reg3=''
                     72: reg4=''
                     73: reg5=''
                     74: reg6=''
                     75: reg7=''
                     76: reg8=''
                     77: reg9=''
                     78: reg10=''
                     79: reg11=''
                     80: reg12=''
                     81: reg13=''
                     82: reg14=''
                     83: reg15=''
                     84: reg16=''
                     85: spitshell=''
                     86: shsharp=''
                     87: sharpbang=''
                     88: startsh=''
                     89: CONFIG=''
                     90: 
                     91: package=patch
                     92: 
                     93: echo "Beginning of configuration questions for $package kit."
                     94: : Eunice requires " " instead of "", can you believe it
                     95: echo " "
                     96: 
                     97: : sanity checks
                     98: PATH='.:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc'
                     99: export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
                    100: 
                    101: if test ! -t 0; then
                    102:     echo "Say 'sh Configure', not 'sh <Configure'"
                    103:     exit 1
                    104: fi
                    105: 
                    106: : some greps do not return status, grrr.
                    107: echo "grimblepritz" >grimble
                    108: if grep blurfldyick grimble >/dev/null 2>&1 ; then
                    109:     contains=contains
                    110: else
                    111:     if grep grimblepritz grimble >/dev/null 2>&1 ; then
                    112:        contains=grep
                    113:     else
                    114:        contains=contains
                    115:     fi
                    116: fi
                    117: rm -f grimble
                    118: : the following should work in any shell
                    119: case "$contains" in
                    120: contains*)
                    121:     echo " "
                    122:     echo "AGH!  Grep doesn't return a status.  Attempting remedial action."
                    123:     cat >contains <<'EOSS'
                    124: grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
                    125: EOSS
                    126: chmod 755 contains
                    127: esac
                    128: 
                    129: : first determine how to suppress newline on echo command
                    130: echo "Checking echo to see how to suppress newlines..."
                    131: (echo "hi there\c" ; echo " ") >.echotmp
                    132: if $contains c .echotmp >/dev/null 2>&1 ; then
                    133:     echo "...using -n."
                    134:     n='-n'
                    135:     c=''
                    136: else
                    137:     echo "...using \\\c"
                    138:     echo "c."
                    139:     n=''
                    140:     c='\c'
                    141: fi
                    142: echo $n "Type carriage return to continue.  Your cursor should be here-->$c"
                    143: read ans
                    144: rm -f .echotmp
                    145: 
                    146: : now set up to do reads with possible shell escape
                    147: : if this does not work on your machine, 1,$ s/. myread/read ans/
                    148: cat <<EOSC >myread
                    149: ans='!'
                    150: while expr "X\$ans" : "X!" >/dev/null; do
                    151:     read ans
                    152:     case "\$ans" in
                    153:     !)
                    154:        sh
                    155:        echo " "
                    156:        echo $n "\$rp $c"
                    157:        ;;
                    158:     !*)
                    159:        set \`expr "X\$ans" : "X!\(.*\)\$"\`
                    160:        sh -c "\$*"
                    161:        echo " "
                    162:        echo $n "\$rp $c"
                    163:        ;;
                    164:     esac
                    165: done
                    166: rp='Your answer:'
                    167: EOSC
                    168: 
                    169: : general instructions
                    170: cat <<EOH
                    171:  
                    172: This installation shell script will examine your system and ask you questions
                    173: to determine how $package and any auxiliary files should be installed.  If you
                    174: get stuck on a question, you may use a ! shell escape to start a subshell or
                    175: execute a command.  Many of the questions will have default answers in
                    176: square brackets--typing carriage return will give you the default.
                    177: 
                    178: On some of the questions which ask for file or directory names you are
                    179: allowed to use the ~name construct to specify the login directory belonging
                    180: to "name", even if you don't have a shell which knows about that.  Questions
                    181: where this is allowed will be marked "(~name ok)".
                    182: EOH
                    183: rp="[Type carriage return to continue]"
                    184: echo $n "$rp $c"
                    185: . myread
                    186: cat <<EOH
                    187: Much effort has been expended to ensure that this shell script will run
                    188: on any Unix system.  If despite that it blows up on you, your best bet is
                    189: to edit Configure and run it again.  (Trying to install this package
                    190: without having run Configure may be well nigh impossible.)  Also, let me
                    191: ([email protected]) know how I blew it.
                    192: 
                    193: This installation script affects things in two ways: 1) it may do direct
                    194: variable substitutions on some of the files included in this kit, and
                    195: 2) it builds a config.h file for inclusion in C programs.  You may edit
                    196: any of these files as the need arises after running this script.
                    197: 
                    198: EOH
                    199: rp="[Type carriage return to continue]"
                    200: echo $n "$rp $c"
                    201: . myread
                    202: 
                    203: : get old answers, if there is a config file out there
                    204: if test -f config.sh; then
                    205:     echo " "
                    206:     rp="I see a config.sh file.  Did Configure make it on THIS system? [y]"
                    207:     echo $n "$rp $c"
                    208:     . myread
                    209:     case "$ans" in
                    210:     n*) echo "OK, I'll ignore it.";;
                    211:     *)  echo "Fetching default answers from your old config.sh file..."
                    212:         . config.sh
                    213:        ;;
                    214:     esac
                    215: fi
                    216: 
                    217: : get list of predefined functions in a handy place
                    218: echo " "
                    219: if test -f /lib/libc.a; then
                    220:     echo "Your C library is in /lib/libc.a.  You're normal."
                    221:     libc=/lib/libc.a
                    222: else
                    223:     if test -f /usr/lib/libc.a; then
                    224:        echo "Your C library is in /usr/lib/libc.a, of all places."
                    225:        libc=/usr/lib/libc.a
                    226:     else
                    227:        if test -f "$libc"; then
                    228:            echo "Your C library is in $libc, like you said before."
                    229:        else
                    230:            cat <<'EOM'
                    231:  
                    232: I can't seem to find your C library.  I've looked for /lib/libc.a and
                    233: /usr/lib/libc.a, but neither of those are there.  What is the full name
                    234: EOM
                    235:            echo $n "of your C library? $c"
                    236:            rp='C library full name?'
                    237:            . myread
                    238:            libc="$ans"
                    239:        fi
                    240:     fi
                    241: fi
                    242: echo " "
                    243: echo $n "Extracting names from $libc for later perusal...$c"
                    244: if ar t $libc > libc.list; then
                    245:     echo "done"
                    246: else
                    247:     echo " "
                    248:     echo "The archiver doesn't think $libc is a reasonable library."
                    249:     exit 1
                    250: fi
                    251: 
                    252: : make some quick guesses about what we are up against
                    253: echo " "
                    254: echo $n "Hmm...  $c"
                    255: if $contains SIGTSTP /usr/include/signal.h >/dev/null 2>&1 ; then
                    256:     echo "Looks kind of like a BSD system, but we'll see..."
                    257:     echo exit 0 >bsd
                    258:     echo exit 1 >usg
                    259:     echo exit 1 >v7
                    260: else
                    261:     if $contains fcntl libc.list >/dev/null 2>&1 ; then
                    262:        echo "Looks kind of like a USG system, but we'll see..."
                    263:        echo exit 1 >bsd
                    264:        echo exit 0 >usg
                    265:        echo exit 1 >v7
                    266:     else
                    267:        echo "Looks kind of like a version 7 system, but we'll see..."
                    268:        echo exit 1 >bsd
                    269:        echo exit 1 >usg
                    270:        echo exit 0 >v7
                    271:     fi
                    272: fi
                    273: if $contains vmssystem libc.list >/dev/null 2>&1 ; then
                    274:     cat <<'EOI'
                    275: There is, however, a strange, musty smell in the air that reminds me of
                    276: something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
                    277: EOI
                    278:     echo "exit 0" >eunice
                    279:     eunicefix=unixtovms
                    280:     d_eunice="$define"
                    281: : it so happens the Eunice I know will not run shell scripts in Unix format
                    282: else
                    283:     echo " "
                    284:     echo "Congratulations.  You aren't running Eunice."
                    285:     eunicefix=':'
                    286:     d_eunice="$undef"
                    287:     echo "exit 1" >eunice
                    288: fi
                    289: chmod 755 bsd usg v7 eunice
                    290: $eunicefix bsd usg v7 eunice
                    291: 
                    292: : see if sh knows # comments
                    293: echo " "
                    294: echo "Checking your sh to see if it knows about # comments..."
                    295: if sh -c '#' >/dev/null 2>&1 ; then
                    296:     echo "Your sh handles # comments correctly."
                    297:     shsharp=true
                    298:     spitshell=cat
                    299:     echo " "
                    300:     echo "Okay, let's see if #! works on this system..."
                    301:     echo "#!/bin/echo hi" > try
                    302:     $eunicefix try
                    303:     chmod 755 try
                    304:     try > today
                    305:     if test -s today; then
                    306:        echo "It does."
                    307:        sharpbang='#!'
                    308:     else
                    309:        echo "#! /bin/echo hi" > try
                    310:        $eunicefix try
                    311:        chmod 755 try
                    312:        try > today
                    313:        if test -s today; then
                    314:            echo "It does."
                    315:            sharpbang='#! '
                    316:        else
                    317:            echo "It doesn't."
                    318:            sharpbang=': use '
                    319:        fi
                    320:     fi
                    321: else
                    322:     echo "Your sh doesn't grok # comments--I will strip them later on."
                    323:     shsharp=false
                    324:     echo "exec grep -v '^#'" >spitshell
                    325:     chmod 755 spitshell
                    326:     $eunicefix spitshell
                    327:     spitshell=`pwd`/spitshell
                    328:     echo "I presume that if # doesn't work, #! won't work either!"
                    329:     sharpbang=': use '
                    330: fi
                    331: 
                    332: : figure out how to guarantee sh startup
                    333: echo " "
                    334: echo "Checking out how to guarantee sh startup..."
                    335: startsh=$sharpbang'/bin/sh'
                    336: echo "Let's see if '$startsh' works..."
                    337: cat >try <<EOSS
                    338: $startsh
                    339: set abc
                    340: test "$?abc" != 1
                    341: EOSS
                    342: 
                    343: chmod 755 try
                    344: $eunicefix try
                    345: if try; then
                    346:     echo "Yup, it does."
                    347: else
                    348:     echo "Nope.  You may have to fix up the shell scripts to make sure sh runs them."
                    349: fi
                    350: rm -f try today
                    351: 
                    352: : find out where common programs are
                    353: echo " "
                    354: echo "Locating common programs..."
                    355: pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib"
                    356: cat <<EOSC >loc
                    357: $startsh
                    358: thing=\$1
                    359: shift
                    360: dflt=\$1
                    361: shift
                    362: for dir in \$*; do
                    363:     case "\$thing" in
                    364:     .)
                    365:        if test -d \$dir/\$thing; then
                    366:            echo \$dir
                    367:            exit 0
                    368:        fi
                    369:        ;;
                    370:     *)
                    371:        if test -f \$dir/\$thing; then
                    372:            echo \$dir/\$thing
                    373:            exit 0
                    374:        fi
                    375:        ;;
                    376:     esac
                    377: done
                    378: echo \$dflt
                    379: exit 1
                    380: EOSC
                    381: chmod 755 loc
                    382: $eunicefix loc
                    383: loclist="
                    384: expr
                    385: sed
                    386: echo
                    387: cat
                    388: rm
                    389: grep
                    390: "
                    391: trylist="
                    392: test
                    393: Mcc
                    394: "
                    395: for file in $loclist; do
                    396:     xxx=`loc $file $file $pth`
                    397:     eval $file=$xxx
                    398:     case "$xxx" in
                    399:     /*)
                    400:        echo $file is in $xxx.
                    401:        ;;
                    402:     *)
                    403:        echo "I don't know where $file is.  I hope it's in everyone's PATH."
                    404:        ;;
                    405:     esac
                    406: done
                    407: echo " "
                    408: echo "Don't worry if any of the following aren't found..."
                    409: ans=offhand
                    410: for file in $trylist; do
                    411:     xxx=`loc $file $file $pth`
                    412:     eval $file=$xxx
                    413:     case "$xxx" in
                    414:     /*)
                    415:        echo $file is in $xxx.
                    416:        ;;
                    417:     *)
                    418:        echo "I don't see $file out there, $ans."
                    419:        ans=either
                    420:        ;;
                    421:     esac
                    422: done
                    423: case "$egrep" in
                    424: egrep)
                    425:     echo "Substituting grep for egrep."
                    426:     egrep=$grep
                    427:     ;;
                    428: esac
                    429: case "$test" in
                    430: test)
                    431:     echo "Hopefully test is built into your sh."
                    432:     ;;
                    433: /bin/test)
                    434:     echo " "
                    435:     echo $n 'Is your "test" built into sh? [n] (OK to guess) '"$c"
                    436:     rp='test built into sh? [n]'
                    437:     . myread
                    438:     case "$ans" in
                    439:     y*) test=test ;;
                    440:     esac
                    441:     ;;
                    442: *)
                    443:     test=test
                    444:     ;;
                    445: esac
                    446: case "$echo" in
                    447: echo)
                    448:     echo "Hopefully echo is built into your sh."
                    449:     ;;
                    450: /bin/echo)
                    451:     echo " "
                    452:     echo "Checking compatibility between /bin/echo and builtin echo (if any)..."
                    453:     $echo $n "hi there$c" >foo1
                    454:     echo $n "hi there$c" >foo2
                    455:     if cmp foo1 foo2 >/dev/null 2>&1; then
                    456:        echo "They are compatible.  In fact, they may be identical."
                    457:     else
                    458:        echo "They are not compatible--the echo builtin will be used."
                    459:        echo=echo
                    460:     fi
                    461:     $rm -f foo1 foo2
                    462:     ;;
                    463: *)
                    464:     echo=echo
                    465:     ;;
                    466: esac
                    467: 
                    468: : index or strcpy
                    469: $echo " "
                    470: if $contains index libc.list >/dev/null 2>&1 ; then
                    471:     $echo "Your system appears to use index() and rindex() rather than strchr()"
                    472:     $echo $n "and strrchr().  Is this correct? [y] $c"
                    473:     rp='index() rather than strchr()? [y]'
                    474:     . myread
                    475:     case "$ans" in
                    476:        n*|f*) d_index="$define" ;;
                    477:        *)     d_index="$undef" ;;
                    478:     esac
                    479: else
                    480:     $echo "Your system appears to use strchr() and strrchr() rather than index()"
                    481:     $echo $n "and rindex().  Is this correct? [y] $c"
                    482:     rp='strchr() rather than index()? [y]'
                    483:     . myread
                    484:     case "$ans" in
                    485:        n*|f*) d_index="$undef" ;;
                    486:        *)     d_index="$define" ;;
                    487:     esac
                    488: fi
                    489: 
                    490: : check for void type
                    491: $echo " "
                    492: $echo "Checking to see if your C compiler groks the void type..."
                    493: $cat >try.c <<'EOCP'
                    494: void main();
                    495: EOCP
                    496: if cc -c try.c >/dev/null 2>&1 ; then
                    497:     d_void="$undef"
                    498:     $echo "Yup, it does."
                    499: else
                    500:     d_void="$define"
                    501:     $echo "Nope, it doesn't (boo hiss).  I will substitute int."
                    502: fi
                    503: $rm -f try.*
                    504: 
                    505: : see how we invoke the C preprocessor
                    506: echo " "
                    507: echo "Checking to see how your C preprocessor is invoked..."
                    508: cat <<'EOT' >testcpp.c
                    509: #define ABC abc
                    510: #define XYZ xyz
                    511: ABC.XYZ
                    512: EOT
                    513: echo 'Maybe "cc -E" will work...'
                    514: cc -E testcpp.c >testcpp.out 2>&1
                    515: if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
                    516:     echo "Yup, it does."
                    517:     cpp='cc -E'
                    518: else
                    519:     echo 'Nope...maybe "cc -P" will work...'
                    520:     cc -P testcpp.c >testcpp.out 2>&1
                    521:     if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
                    522:        echo "Yup, that does."
                    523:        cpp='cc -P'
                    524:     else
                    525:        echo 'Nixed again...maybe "/lib/cpp" will work...'
                    526:        /lib/cpp testcpp.c >testcpp.out 2>&1
                    527:        if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
                    528:            echo "Hooray, it works!  I was beginning to wonder."
                    529:            cpp='/lib/cpp'
                    530:        else
                    531:            echo 'Hmm...maybe you already told me...'
                    532:            case "$cpp" in
                    533:            '') ;;
                    534:            *) $cpp testcpp.c >testcpp.out 2>&1;;
                    535:            esac
                    536:            if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
                    537:                echo "Hooray, you did!  I was beginning to wonder."
                    538:            else
                    539:                echo $n "Nope. I can't find a C preprocessor.  Name one: $c"
                    540:                rp='Name a C preprocessor:'
                    541:                . myread
                    542:                cpp="$ans"
                    543:                $cpp testcpp.c >testcpp.out 2>&1
                    544:                if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
                    545:                    echo "OK, that will do."
                    546:                else
                    547:                    echo "Sorry, I can't get that to work.  Go find one."
                    548:                    exit 1
                    549:                fi
                    550:            fi
                    551:        fi
                    552:     fi
                    553: fi
                    554: rm -f testcpp.c testcpp.out
                    555: 
                    556: : get C preprocessor symbols handy
                    557: echo " "
                    558: cat <<'EOT' >Cppsym.c
                    559: char *sym[] = {
                    560: #ifdef mc68000
                    561:        "mc68000",
                    562: #endif
                    563: #ifdef sun
                    564:        "sun",
                    565: #endif
                    566: #ifdef gcos
                    567:        "gcos",
                    568: #endif
                    569: #ifdef unix
                    570:        "unix",
                    571: #endif
                    572: #ifdef ibm
                    573:        "ibm",
                    574: #endif
                    575: #ifdef gimpel
                    576:        "gimpel",
                    577: #endif
                    578: #ifdef interdata
                    579:        "interdata",
                    580: #endif
                    581: #ifdef tss
                    582:        "tss",
                    583: #endif
                    584: #ifdef os
                    585:        "os",
                    586: #endif
                    587: #ifdef mert
                    588:        "mert",
                    589: #endif
                    590: #ifdef pyr
                    591:        "pyr",
                    592: #endif
                    593: #ifdef vax
                    594:        "vax",
                    595: #endif
                    596: #ifdef pdp11
                    597:        "pdp11",
                    598: #endif
                    599: #ifdef i8086
                    600:        "i8086",
                    601: #endif
                    602: #ifdef z8000
                    603:        "z8000",
                    604: #endif
                    605: #ifdef 3b2
                    606:        "3b2",
                    607: #endif
                    608: #ifdef 3b5
                    609:        "3b5",
                    610: #endif
                    611: #ifdef 3b20
                    612:        "3b20",
                    613: #endif
                    614: #ifdef 3b200
                    615:        "3b200",
                    616: #endif
                    617: 0};
                    618: main(argc,argv)
                    619: int argc;
                    620: char **argv;
                    621: {
                    622:     int i;
                    623: 
                    624:     for (argc--,argv++; argc; argc--,argv++) {
                    625:        for (i=0; sym[i]; i++) {
                    626:            if (strcmp(argv[0],sym[i]) == 0)
                    627:                exit(0);
                    628:        }
                    629:     }
                    630:     exit(1);
                    631: }
                    632: EOT
                    633: echo "Your machine appears to have the following attributes:"
                    634: $cpp Cppsym.c | sed -n -e 's/^ "\(.*\)",$/\1/p'
                    635: cc Cppsym.c -o Cppsym
                    636: rm -f Cppsym.c
                    637: 
                    638: : see how many register declarations we want to use
                    639: case "$registers" in
                    640: '')
                    641:     if Cppsym pdp11 i8086 z8000; then
                    642:        dflt=3
                    643:     else
                    644:        if Cppsym sun mc68000; then
                    645:            dflt=10
                    646:        else
                    647:            : if you have any other numbers for me, send them in
                    648:            dflt=6
                    649:        fi
                    650:     fi
                    651:     ;;
                    652: *)  dflt=$registers ;;
                    653: esac
                    654: cat <<EOM
                    655:  
                    656: Different C compilers on different machines pay attention to different
                    657: numbers of register declarations.  About how many register declarations in
                    658: EOM
                    659: $echo $n "each routine does your C compiler pay attention to? (OK to guess) [$dflt] $c"
                    660: rp="# register declarations used? [$dflt]"
                    661: . myread
                    662: case "$ans" in
                    663: '') ans=$dflt;;
                    664: esac
                    665: registers=$ans
                    666: reg1=''
                    667: awk "END { for (i=1; i<=16; i++) printf \"reg%d=''\n\", i}" </dev/null >.foo
                    668: . .foo
                    669: awk "END { for (i=1; i<=$registers; i++) printf \"reg%d=register\n\", i}" \
                    670:        </dev/null >.foo
                    671: . .foo
                    672: rm -f .foo
                    673: 
                    674: : preserve RCS keywords in files with variable substitution, grrr
                    675: Log='$Log'
                    676: Header='$Header'
                    677: 
                    678: : set up shell script to do ~ expansion
                    679: cat >filexp <<EOSS
                    680: $startsh
                    681: : expand filename
                    682: case "\$1" in
                    683: ~/*|~)
                    684:     $echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
                    685:     ;;
                    686: ~*)
                    687:     if $test -f /bin/csh; then
                    688:        /bin/csh -f -c "glob \$1"
                    689:        $echo ""
                    690:     else
                    691:        name=\`$expr x\$1 : '..\([^/]*\)'\`
                    692:        dir=\`$sed </etc/passwd -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}'\`
                    693:        if $test ! -d "\$dir"; then
                    694:            me=\`basename \$0\`
                    695:            $echo "\$me: can't locate home directory for: \$name" >&2
                    696:            exit 1
                    697:        fi
                    698:        case "\$1" in
                    699:        */*)
                    700:            $echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
                    701:            ;;
                    702:        *)
                    703:            $echo \$dir
                    704:            ;;
                    705:        esac
                    706:     fi
                    707:     ;;
                    708: *)
                    709:     $echo \$1
                    710:     ;;
                    711: esac
                    712: EOSS
                    713: chmod 755 filexp
                    714: $eunicefix filexp
                    715: 
                    716: : determine where public executables go
                    717: case "$bin" in
                    718: '')
                    719:     dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
                    720:     ;;
                    721: *)  dflt="$bin"
                    722:     ;;
                    723: esac
                    724: bin='blurfl/dyick'
                    725: while $test ! -d "$bin" ; do
                    726:     case "$bin" in
                    727:       blurfl*) ;;
                    728:       *) $echo "$bin does not appear to exist." ;;
                    729:     esac
                    730:     $echo " "
                    731:     rp="Where do you want to put the public executables? [$dflt]"
                    732:     $echo $n "$rp $c"
                    733:     . myread
                    734:     bin="$ans"
                    735:     bin=`filexp $bin`
                    736:     case "$bin" in
                    737:       '') bin=$dflt ;;
                    738:     esac
                    739: done
                    740: 
                    741: : determine where manual pages go
                    742: case "$mansrc" in
                    743: '')
                    744:     dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1`
                    745:     ;;
                    746: *)  dflt="$mansrc"
                    747:     ;;
                    748: esac
                    749: mansrc='blurfl/dyick'
                    750: while $test ! -d "$mansrc" ; do
                    751:     case "$mansrc" in
                    752:       blurfl*) ;;
                    753:       *) $echo "$mansrc does not appear to exist." ;;
                    754:     esac
                    755:     $echo " "
                    756:     rp="Where do the manual pages (source) go? [$dflt]"
                    757:     $echo $n "$rp $c"
                    758:     . myread
                    759:     mansrc=`filexp "$ans"`
                    760:     case "$mansrc" in
                    761:       '') mansrc=$dflt ;;
                    762:     esac
                    763: done
                    764: case "$mansrc" in
                    765: *l)
                    766:     manext=l
                    767:     ;;
                    768: *n)
                    769:     manext=n
                    770:     ;;
                    771: *)
                    772:     manext=1
                    773:     ;;
                    774: esac
                    775: 
                    776: : see if we need a special compiler
                    777: $echo " "
                    778: if usg; then
                    779:     case "$cc" in
                    780:     '')
                    781:        case "$Mcc" in
                    782:        /*) dflt='Mcc'
                    783:            ;;
                    784:        *)
                    785:            if $contains '\-M' $mansrc/cc.1 >/dev/null 2>&1 ; then
                    786:                dflt='cc -M'
                    787:            else
                    788:                dflt='cc'
                    789:            fi
                    790:            ;;
                    791:        esac
                    792:        ;;
                    793:     *)  dflt="$cc";;
                    794:     esac
                    795:     $cat <<'EOM'
                    796:  
                    797: On some systems the default C compiler will not resolve multiple global
                    798: references that happen to have the same name.  On some such systems the
                    799: "Mcc" command may be used to force these to be resolved.  On other systems
                    800: a "cc -M" command is required.  What command will force resolution on
                    801: EOM
                    802:     $echo $n "this system? [$dflt] $c"
                    803:     rp="Command to resolve multiple refs? [$dflt]"
                    804:     . myread
                    805:     cc="$ans"
                    806:     case "$cc" in
                    807:        '') cc="$dflt" ;;
                    808:     esac
                    809: else
                    810:     $echo "Not a USG system--assuming cc can resolve multiple definitions."
                    811:     cc=cc
                    812: fi
                    813: 
                    814: : see if we should throw a -i into the Makefile
                    815: $echo " "
                    816: if Cppsym pdp11 i8086 z8000; then
                    817:     if $contains '\-i' $mansrc/cc.1 >/dev/null 2>&1 ; then
                    818:        rp="Your system appears to have separate I and D space.  Is this true? [y]"
                    819:        $echo $n "$rp $c"
                    820:        . myread
                    821:        case "$ans" in
                    822:            n*|f*) iandd='' ;;
                    823:            *)     iandd='-i' ;;
                    824:        esac
                    825:     else
                    826:        $echo "Your system appears to NOT have separate I and D space."
                    827:        $echo $n "Is this correct? [y] $c"
                    828:        rp='No separate I and D.  Correct? [y]'
                    829:        . myread
                    830:        case "$ans" in
                    831:            n*|f*) iandd='-i' ;;
                    832:            *)     iandd='' ;;
                    833:        esac
                    834:     fi
                    835: else
                    836:     $echo $n "Does your machine have separate I and D space? [n] $c"
                    837:     . myread
                    838:     case "$ans" in
                    839:        y*)    iandd='-i' ;;
                    840:        *)     iandd='' ;;
                    841:     esac
                    842: fi
                    843: 
                    844: $echo " "
                    845: $echo "End of configuration questions."
                    846: $echo " "
                    847: 
                    848: : create config.sh file
                    849: $echo " "
                    850: $echo "Creating config.sh..."
                    851: $spitshell <<EOT >config.sh
                    852: $startsh
                    853: # config.sh
                    854: # This file was produced by running the Configure script.
                    855: 
                    856: d_eunice='$d_eunice'
                    857: eunicefix='$eunicefix'
                    858: loclist='$loclist'
                    859: expr='$expr'
                    860: sed='$sed'
                    861: echo='$echo'
                    862: cat='$cat'
                    863: rm='$rm'
                    864: mv='$mv'
                    865: cp='$cp'
                    866: tail='$tail'
                    867: tr='$tr'
                    868: mkdir='$mkdir'
                    869: sort='$sort'
                    870: uniq='$uniq'
                    871: grep='$grep'
                    872: trylist='$trylist'
                    873: test='$test'
                    874: inews='$inews'
                    875: egrep='$egrep'
                    876: more='$more'
                    877: pg='$pg'
                    878: Mcc='$Mcc'
                    879: vi='$vi'
                    880: mailx='$mailx'
                    881: Log='$Log'
                    882: Header='$Header'
                    883: bin='$bin'
                    884: cc='$cc'
                    885: contains='$contains'
                    886: cpp='$cpp'
                    887: d_index='$d_index'
                    888: d_void='$d_void'
                    889: iandd='$iandd'
                    890: libc='$libc'
                    891: mansrc='$mansrc'
                    892: manext='$manext'
                    893: n='$n'
                    894: c='$c'
                    895: package='$package'
                    896: registers='$registers'
                    897: reg1='$reg1'
                    898: reg2='$reg2'
                    899: reg3='$reg3'
                    900: reg4='$reg4'
                    901: reg5='$reg5'
                    902: reg6='$reg6'
                    903: reg7='$reg7'
                    904: reg8='$reg8'
                    905: reg9='$reg9'
                    906: reg10='$reg10'
                    907: reg11='$reg11'
                    908: reg12='$reg12'
                    909: reg13='$reg13'
                    910: reg14='$reg14'
                    911: reg15='$reg15'
                    912: reg16='$reg16'
                    913: spitshell='$spitshell'
                    914: shsharp='$shsharp'
                    915: sharpbang='$sharpbang'
                    916: startsh='$startsh'
                    917: CONFIG=true
                    918: EOT
                    919:  
                    920: : create config.h file
                    921: $echo " "
                    922: $echo "Creating config.h..."
                    923: $cat <<EOT >config.h
                    924: /* config.h
                    925:  * This file was produced by running the Configure script.
                    926:  * Feel free to modify any of this as the need arises.
                    927:  */
                    928: 
                    929: 
                    930: #$d_eunice     EUNICE          /* no file linking? */
                    931: #$d_eunice     VMS             /* other assorted ickies? */
                    932: 
                    933: #$d_index      index strchr    /* cultural */
                    934: #$d_index      rindex strrchr  /*  differences? */
                    935: 
                    936: #$d_void       void int        /* is void to be avoided? */
                    937: 
                    938: /* How many register declarations are paid attention to? */
                    939: 
                    940: #define Reg1 $reg1             /**/
                    941: #define Reg2 $reg2             /**/
                    942: #define Reg3 $reg3             /**/
                    943: #define Reg4 $reg4             /**/
                    944: #define Reg5 $reg5             /**/
                    945: #define Reg6 $reg6             /**/
                    946: #define Reg7 $reg7             /**/
                    947: #define Reg8 $reg8             /**/
                    948: #define Reg9 $reg9             /**/
                    949: #define Reg10 $reg10           /**/
                    950: #define Reg11 $reg11           /**/
                    951: #define Reg12 $reg12           /**/
                    952: #define Reg13 $reg13           /**/
                    953: #define Reg14 $reg14           /**/
                    954: #define Reg15 $reg15           /**/
                    955: #define Reg16 $reg16           /**/
                    956: 
                    957: EOT
                    958: CONFIG=true
                    959: 
                    960: if $contains '\.SH' MANIFEST >/dev/null 2>&1; then
                    961:     $echo " "
                    962:     $echo "Doing variable substitutions on .SH files..."
                    963:     set `$grep <MANIFEST '\.SH' | awk '{print $1}'`
                    964:     for file in $*; do
                    965:        case "$file" in
                    966:        */*)
                    967:            dir=`$expr X$file : 'X\(.*\)/'`
                    968:            file=`$expr X$file : 'X.*/\(.*\)'`
                    969:            (cd $dir && . $file)
                    970:            ;;
                    971:        *)
                    972:            . $file
                    973:            ;;
                    974:        esac
                    975:     done
                    976: fi
                    977: 
                    978: if $contains '^depend:' Makefile >/dev/null 2>&1; then
                    979:     $echo " "
                    980:     $echo 'Now you need to generate make dependencies by running "make depend".'
                    981:     $echo 'You might prefer to run it in background: "make depend > makedepend.out &"'
                    982:     $echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c" 
                    983:     rp="Run make depend now? [n]"
                    984:     . myread
                    985:     case "$ans" in
                    986:     y*) make depend;;
                    987:     esac
                    988: fi
                    989: 
                    990: $rm -f libc.list kit*isdone bsd usg v7 eunice loc Cppsym
                    991: 
                    992: if test -f Makefile; then
                    993:     $echo " "
                    994:     $echo "Now you must run a make."
                    995: else
                    996:     $echo "Done."
                    997: fi
                    998: : end of Configure

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.