Annotation of 43BSD/contrib/nntp/rrn/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 the other
                      4: # shell scripts, Configure will trim # comments from them for you.
                      5: #
                      6: # $Header: Configure,v 4.3.1.5 85/05/23 11:23:22 lwall Exp $
                      7: #
                      8: # $Log:        Configure,v $
                      9: # Revision 4.3.1.5  85/05/23  11:23:22  lwall
                     10: # filexp flubs sed command.
                     11: # 
                     12: # Revision 4.3.1.4  85/05/20  17:13:11  lwall
                     13: # Makes sure -lcurses is really a terminfo library.
                     14: # Puts single instead of double quotes around defs in config.sh.
                     15: # 
                     16: # Revision 4.3.1.3  85/05/16  16:48:48  lwall
                     17: # Took space from end of filexp output.
                     18: # 
                     19: # Revision 4.3.1.2  85/05/13  15:54:35  lwall
                     20: # Libraries in /usr/local/lib shouldn't use -l switch.
                     21: # 
                     22: # Revision 4.3.1.1  85/05/10  11:29:20  lwall
                     23: # Branch for patches.
                     24: # 
                     25: # Revision 4.3  85/05/01  11:31:23  lwall
                     26: # Baseline for release with 4.3bsd.
                     27: # 
                     28: 
                     29: # Yes, you may rip this off to use in other distribution packages.
                     30: 
                     31: n=''
                     32: c=''
                     33: libc=''
                     34: eunicefix=''
                     35: eunice=''
                     36: cpp=''
                     37: shsharp=''
                     38: spitshell=''
                     39: startsh=''
                     40: test=''
                     41: expr=''
                     42: sed=''
                     43: echo=''
                     44: cat=''
                     45: rm=''
                     46: mv=''
                     47: cp=''
                     48: tail=''
                     49: tr=''
                     50: mkdir=''
                     51: sort=''
                     52: uniq=''
                     53: inews=''
                     54: grep=''
                     55: egrep=''
                     56: contains=''
                     57: lib=''
                     58: nametype=''
                     59: cc=''
                     60: iandd=''
                     61: termlib=''
                     62: jobslib=''
                     63: ndirlib=''
                     64: libndir=''
                     65: usendir=''
                     66: ndirc=''
                     67: ndiro=''
                     68: pager=''
                     69: mailer=''
                     70: internet=''
                     71: rnbin=''
                     72: filexp=''
                     73: distlist=''
                     74: Log=''
                     75: Header=''
                     76: sitename=''
                     77: orgname=''
                     78: isadmin=''
                     79: newsadmin=''
                     80: rnlib=''
                     81: mansrc=''
                     82: manext=''
                     83: maildir=''
                     84: spool=''
                     85: active=''
                     86: myactive=''
                     87: mininact=''
                     88: pref=''
                     89: defeditor=''
                     90: rootid=''
                     91: mboxchar=''
                     92: locpref=''
                     93: orgpref=''
                     94: citypref=''
                     95: statepref=''
                     96: cntrypref=''
                     97: contpref=''
                     98: strchr=''
                     99: novoid=''
                    100: novfork=''
                    101: portable=''
                    102: passnam=''
                    103: berknam=''
                    104: usgnam=''
                    105: whoami=''
                    106: termio=''
                    107: fcntl=''
                    108: ioctl=''
                    109: normsig=''
                    110: havetlib=''
                    111: getpwent=''
                    112: gethostname=''
                    113: douname=''
                    114: phostname=''
                    115: hostcmd=''
                    116: CONFIG=''
                    117: 
                    118: echo "Beginning of configuration questions for rn kit."
                    119: : Eunice requires " " instead of "", can you believe it
                    120: echo " "
                    121: 
                    122: : sanity checks
                    123: PATH='.:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc'
                    124: export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
                    125: 
                    126: if test ! -t 0; then
                    127:     echo "Say 'sh Configure', not 'sh <Configure'"
                    128:     exit 1
                    129: fi
                    130: 
                    131: : some greps do not return status, grrr.
                    132: echo "grimblepritz" >grimble
                    133: if grep blurfldyick grimble >/dev/null 2>&1 ; then
                    134:     contains=contains
                    135: else
                    136:     if grep grimblepritz grimble >/dev/null 2>&1 ; then
                    137:        contains=grep
                    138:     else
                    139:        contains=contains
                    140:     fi
                    141: fi
                    142: rm grimble
                    143: : the following should work in any shell
                    144: case $contains in
                    145: contains*)
                    146:     echo " "
                    147:     echo "AGH!  Grep doesn't return a status.  Attempting remedial action."
                    148:     cat >contains <<'EOSS'
                    149: grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
                    150: EOSS
                    151: chmod 755 contains
                    152: esac
                    153: 
                    154: : first determine how to suppress newline on echo command
                    155: echo "Checking echo to see how to suppress newlines..."
                    156: (echo "hi there\c" ; echo " ") >.echotmp
                    157: if $contains c .echotmp >/dev/null 2>&1 ; then
                    158:     echo "...using -n."
                    159:     n='-n'
                    160:     c=''
                    161: else
                    162:     echo "...using \\\c."
                    163:     n=''
                    164:     c='\c'
                    165: fi
                    166: echo $n "Type carriage return to continue.  Your cursor should be here-->$c"
                    167: read ans
                    168: rm .echotmp
                    169: 
                    170: : now set up to do reads with possible shell escape
                    171: : if this does not work on your machine, 1,$s/. myread/read ans/
                    172: cat <<EOSC >myread
                    173: ans='!'
                    174: while expr "X\$ans" : "X!" >/dev/null; do
                    175:     read ans
                    176:     case "\$ans" in
                    177:     !)
                    178:        sh
                    179:        echo " "
                    180:        echo $n "Your answer: $c"
                    181:        ;;
                    182:     !*)
                    183:        set \`expr "X\$ans" : "X!\(.*\)\$"\`
                    184:        sh -c "\$*"
                    185:        echo " "
                    186:        echo $n "Your answer: $c"
                    187:        ;;
                    188:     esac
                    189: done
                    190: EOSC
                    191: 
                    192: : general instructions
                    193: cat <<'EOH'
                    194:  
                    195: This installation shell script will examine your system and ask you questions
                    196: to determine how rn and its auxiliary files should be installed.  If you
                    197: get stuck on a question, you may use a ! shell escape to start a subshell or
                    198: execute a command.  Many of the questions will have default answers in
                    199: square brackets--typing carriage return will give you the default.
                    200: 
                    201: On some of the questions which ask for file or directory names you are
                    202: allowed to use the ~name construct to specify the login directory belonging
                    203: to "name", even if you don't have a shell which knows about that.  Questions
                    204: where this is allowed will be marked "(~name ok)".
                    205: 
                    206: Much effort has been expended to ensure that this shell script will run
                    207: on any Unix system.  If despite that it blows up on you, your best bet is
                    208: to edit Configure and run it again.  (Trying to install rn without having run
                    209: Configure is well nigh impossible.)  Also, let me ([email protected]) know
                    210: how I blew it.
                    211: 
                    212: This installation script affects things in two ways: 1) it does direct
                    213: variable substitutions on some of the files included in this kit, and
                    214: 2) it builds a config.h file for inclusion in C programs.  You may edit
                    215: any of these files as the need arises after running this script.
                    216: 
                    217: EOH
                    218: echo $n "[Type carriage return to continue] $c"
                    219: . myread
                    220: 
                    221: : get old answers, if there is a config file out there
                    222: if test -f config.sh; then
                    223:     echo " "
                    224:     echo "(Fetching default answers from your old config.sh file...)"
                    225:     . config.sh
                    226: fi
                    227: 
                    228: : get list of predefined functions in a handy place
                    229: echo " "
                    230: if test -f /lib/libc.a; then
                    231:     echo "Your C library is in /lib/libc.a.  You're normal."
                    232:     libc=/lib/libc.a
                    233: else
                    234:     if test -f /usr/lib/libc.a; then
                    235:        echo "Your C library is in /usr/lib/libc.a, of all places."
                    236:        libc=/usr/lib/libc.a
                    237:     else
                    238:        if test -f "$libc"; then
                    239:            echo "Your C library is in $libc, like you said before."
                    240:        else
                    241:            cat <<'EOM'
                    242:  
                    243: I can't seem to find your C library.  I've looked for /lib/libc.a and
                    244: /usr/lib/libc.a, but neither of those are there.  What is the full name
                    245: EOM
                    246:            echo $n "of your C library? $c"
                    247:            . myread
                    248:            libc="$ans"
                    249:        fi
                    250:     fi
                    251: fi
                    252: echo " "
                    253: echo $n "Extracting names from $libc for later perusal...$c"
                    254: if ar t $libc > libc.list; then
                    255:     echo "done"
                    256: else
                    257:     echo " "
                    258:     echo "The archiver doesn't think $libc is a reasonable library."
                    259:     exit 1
                    260: fi
                    261: 
                    262: : make some quick guesses about what we are up against
                    263: echo " "
                    264: echo $n "Hmm...  $c"
                    265: if $contains SIGTSTP /usr/include/signal.h >/dev/null 2>&1 ; then
                    266:     echo "Looks kind of like a BSD system, but we'll see..."
                    267:     echo exit 0 >bsd
                    268:     echo exit 1 >usg
                    269:     echo exit 1 >v7
                    270: else
                    271:     if $contains fcntl.o libc.list >/dev/null 2>&1 ; then
                    272:        echo "Looks kind of like a USG system, but we'll see..."
                    273:        echo exit 1 >bsd
                    274:        echo exit 0 >usg
                    275:        echo exit 1 >v7
                    276:     else
                    277:        echo "Looks kind of like a version 7 system, but we'll see..."
                    278:        echo exit 1 >bsd
                    279:        echo exit 1 >usg
                    280:        echo exit 0 >v7
                    281:     fi
                    282: fi
                    283: if $contains vmssystem.o libc.list >/dev/null 2>&1 ; then
                    284:     cat <<'EOI'
                    285: There is, however, a strange, musty smell in the air that reminds me of
                    286: something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
                    287: EOI
                    288:     echo "exit 0" >eunice
                    289:     eunicefix=unixtovms
                    290:     eunice=define
                    291: : it so happens the Eunice I know will not run shell scripts in Unix format
                    292: else
                    293:     echo " "
                    294:     echo "Congratulations.  You aren't running Eunice."
                    295:     eunicefix=':'
                    296:     eunice=undef
                    297:     echo "exit 1" >eunice
                    298: fi
                    299: chmod 755 bsd usg v7 eunice
                    300: $eunicefix bsd usg v7 eunice
                    301: 
                    302: : see how we invoke the C preprocessor
                    303: echo " "
                    304: echo "Checking to see how your C preprocessor is invoked..."
                    305: cat <<'EOT' >testcpp.c
                    306: #define ABC abc
                    307: #define XYZ xyz
                    308: ABC+XYZ
                    309: EOT
                    310: echo 'Maybe "cc -E" will work...'
                    311: cc -E testcpp.c >testcpp.out 2>&1
                    312: if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then
                    313:     echo "Yup, it does."
                    314:     cpp='cc -E'
                    315: else
                    316:     echo 'Nope...maybe "cc -P" will work...'
                    317:     cc -P testcpp.c >testcpp.out 2>&1
                    318:     if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then
                    319:        echo "Yup, that does."
                    320:        cpp='cc -P'
                    321:     else
                    322:        echo 'Nixed again...maybe "/lib/cpp" will work...'
                    323:        /lib/cpp testcpp.c >testcpp.out 2>&1
                    324:        if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then
                    325:            echo "Hooray, it works!  I was beginning to wonder."
                    326:            cpp='/lib/cpp'
                    327:        else
                    328:            echo 'Hmm...maybe you already told me...'
                    329:            case "$cpp" in
                    330:            '') ;;
                    331:            *) $cpp testcpp.c >testcpp.out 2>&1;;
                    332:            esac
                    333:            if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then
                    334:                echo "Hooray, you did!  I was beginning to wonder."
                    335:            else
                    336:                echo "Nope. I can't find a C preprocessor.  Name one: $c"
                    337:                . myread
                    338:                cpp="$ans"
                    339:                $cpp testcpp.c >testcpp.out 2>&1
                    340:                if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then
                    341:                    echo "OK, that will do."
                    342:                else
                    343:                    echo "Sorry, I can't get that to work.  Go find one."
                    344:                    exit 1
                    345:                fi
                    346:            fi
                    347:        fi
                    348:     fi
                    349: fi
                    350: rm -f testcpp.c testcpp.out
                    351: 
                    352: : check for pdp11
                    353: echo " "
                    354: if usg; then
                    355:     : pdp11 is already defined
                    356: else
                    357:     cat <<'EOT' >pdp11.c
                    358: #ifdef pdp11
                    359: exit 0
                    360: #else
                    361: exit 1
                    362: #endif
                    363: EOT
                    364:     $cpp pdp11.c | grep exit >pdp11
                    365:     chmod 755 pdp11
                    366:     $eunicefix pdp11
                    367:     rm pdp11.c
                    368: fi
                    369: if pdp11; then
                    370:     echo "This looks like a pdp11 to me."
                    371: else
                    372:     echo "This doesn't look like a pdp11 to me."
                    373: fi
                    374: 
                    375: : see if sh knows # comments
                    376: echo " "
                    377: echo "Checking your sh to see if it knows about # comments..."
                    378: if sh -c '#' >/dev/null 2>&1 ; then
                    379:     echo "Your sh handles # comments correctly."
                    380:     shsharp=true
                    381:     spitshell=cat
                    382:     echo " "
                    383:     echo "Okay, let's see if #! works on this system..."
                    384:     echo "#!/bin/echo hi" > try
                    385:     $eunicefix try
                    386:     chmod 755 try
                    387:     try > today
                    388:     if test -s today; then
                    389:        echo "It does."
                    390:        sharpbang='#!'
                    391:     else
                    392:        echo "#! /bin/echo hi" > try
                    393:        $eunicefix try
                    394:        chmod 755 try
                    395:        try > today
                    396:        if test -s today; then
                    397:            echo "It does."
                    398:            sharpbang='#! '
                    399:        else
                    400:            echo "It doesn't."
                    401:            sharpbang=': use '
                    402:        fi
                    403:     fi
                    404: else
                    405:     echo "Your sh doesn't grok # comments--I will strip them later on."
                    406:     shsharp=false
                    407:     echo "exec grep -v '^#'" >spitshell
                    408:     chmod 755 spitshell
                    409:     $eunicefix spitshell
                    410:     spitshell=`pwd`/spitshell
                    411:     echo "I presume that if # doesn't work, #! won't work either!"
                    412:     sharpbang=': use '
                    413: fi
                    414: 
                    415: : figure out how to guarantee sh startup
                    416: echo " "
                    417: echo "Checking out how to guarantee sh startup..."
                    418: startsh=$sharpbang'/bin/sh'
                    419: echo "Let's see if '$startsh' works..."
                    420: cat >try <<EOSS
                    421: $startsh
                    422: set abc
                    423: test "$?abc" != 1
                    424: EOSS
                    425: 
                    426: chmod 755 try
                    427: $eunicefix try
                    428: if try; then
                    429:     echo "Yup, it does."
                    430: else
                    431:     echo "Nope.  You may have to fix up the shell scripts to make sure sh runs them."
                    432: fi
                    433: rm -f try today
                    434: 
                    435: : find out where common programs are
                    436: echo " "
                    437: echo "Locating common programs..."
                    438: pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib"
                    439: cat <<EOSC >loc
                    440: $startsh
                    441: thing=\$1
                    442: shift
                    443: dflt=\$1
                    444: shift
                    445: for dir in \$*; do
                    446:     case "\$thing" in
                    447:     .)
                    448:        if test -d \$dir/\$thing; then
                    449:            echo \$dir
                    450:            exit 0
                    451:        fi
                    452:        ;;
                    453:     *)
                    454:        if test -f \$dir/\$thing; then
                    455:            echo \$dir/\$thing
                    456:            exit 0
                    457:        fi
                    458:        ;;
                    459:     esac
                    460: done
                    461: echo \$dflt
                    462: exit 1
                    463: EOSC
                    464: chmod 755 loc
                    465: $eunicefix loc
                    466: loclist="expr sed echo cat rm mv cp tail tr mkdir sort uniq grep"
                    467: trylist="test inews egrep more pg Mcc"
                    468: for file in $loclist; do
                    469:     xxx=`loc $file $file $pth`
                    470:     eval $file=$xxx
                    471:     case "$xxx" in
                    472:     /*)
                    473:        echo $file is in $xxx.
                    474:        ;;
                    475:     *)
                    476:        echo "I don't know where $file is.  I hope it's in everyone's PATH."
                    477:        ;;
                    478:     esac
                    479: done
                    480: echo " "
                    481: echo "Don't worry if any of the following aren't found..."
                    482: for file in $trylist; do
                    483:     xxx=`loc $file $file $pth`
                    484:     eval $file=$xxx
                    485:     case "$xxx" in
                    486:     /*)
                    487:        echo $file is in $xxx.
                    488:        ;;
                    489:     *)
                    490:        echo "I don't see $file out there, offhand."
                    491:        ;;
                    492:     esac
                    493: done
                    494: case $egrep in
                    495: egrep)
                    496:     echo "Substituting grep for egrep."
                    497:     egrep=$grep
                    498:     ;;
                    499: esac
                    500: case $test in
                    501: test)
                    502:     echo "Hopefully test is built into your sh."
                    503:     ;;
                    504: /bin/test)
                    505:     echo " "
                    506:     echo $n 'Is your "test" built into sh? [n] (OK to guess) '"$c"
                    507:     . myread
                    508:     case $ans in
                    509:     y*) test=test ;;
                    510:     esac
                    511:     ;;
                    512: *)
                    513:     test=test
                    514:     ;;
                    515: esac
                    516: case $echo in
                    517: echo)
                    518:     echo "Hopefully echo is built into your sh."
                    519:     ;;
                    520: /bin/echo)
                    521:     echo " "
                    522:     echo "Checking compatibility between /bin/echo and builtin echo (if any)..."
                    523:     $echo $n "hi there$c" >foo1
                    524:     echo $n "hi there$c" >foo2
                    525:     if cmp foo1 foo2 >/dev/null 2>&1; then
                    526:        echo "They are compatible.  In fact, they may be identical."
                    527:     else
                    528:        echo "They are not compatible--the echo builtin will be used."
                    529:        echo=echo
                    530:     fi
                    531:     $rm -f foo1 foo2
                    532:     ;;
                    533: *)
                    534:     echo=echo
                    535:     ;;
                    536: esac
                    537: 
                    538: : decide how portable to be
                    539: case "$portable" in
                    540: define) dflt=y;;
                    541: *)     dflt=n;;
                    542: esac
                    543: $cat <<'EOH'
                    544:  
                    545: I can set things up so that your shell scripts and binaries are more portable,
                    546: at what may be a noticable cost in performance.  In particular, if you
                    547: ask to be portable, the following happens:
                    548: 
                    549:      1) shell scripts will rely on the PATH variable rather than using
                    550:        the paths derived above.
                    551:      2) ~username interpretations will be done at run time rather than
                    552:        by Configure.
                    553:      3) the system name will be determined at run time, if at all possible.
                    554: 
                    555: EOH
                    556: $echo $n "Do you expect to run these scripts and binaries on multiple machines? [$dflt] $c"
                    557: . myread
                    558: case $ans in
                    559: '') ans=$dflt;;
                    560: esac
                    561: case $ans in
                    562:     y*) portable=define
                    563:        for file in $loclist; do
                    564:            eval $file=$file
                    565:        done
                    566:        ;;
                    567:     *)  portable=undef ;;
                    568: esac
                    569: 
                    570: : set up shell script to do ~ expansion
                    571: cat >filexp <<EOSS
                    572: $startsh
                    573: : expand filename
                    574: case \$1 in
                    575: ~/*|~)
                    576:     $echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
                    577:     ;;
                    578: ~*)
                    579:     if $test -f /bin/csh; then
                    580:        /bin/csh -f -c "glob \$1"
                    581:        $echo ""
                    582:     else
                    583:        name=\`$expr x\$1 : '..\([^/]*\)'\`
                    584:        dir=\`$sed </etc/passwd -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}'\`
                    585:        if $test ! -d "\$dir"; then
                    586:            me=\`basename \$0\`
                    587:            $echo "\$me: can't locate home directory for: \$name" >&2
                    588:            exit 1
                    589:        fi
                    590:        case \$1 in
                    591:        */*)
                    592:            $echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
                    593:            ;;
                    594:        *)
                    595:            $echo \$dir
                    596:            ;;
                    597:        esac
                    598:     fi
                    599:     ;;
                    600: *)
                    601:     $echo \$1
                    602:     ;;
                    603: esac
                    604: EOSS
                    605: chmod 755 filexp
                    606: $eunicefix filexp
                    607: 
                    608: : now get the site name
                    609: $echo " "
                    610: $echo "Figuring out site name..."
                    611: $echo 'Maybe "hostname" will work...'
                    612: if ans=`sh -c hostname 2>&1` ; then
                    613:     sitename=$ans
                    614:     hostcmd=hostname
                    615: else
                    616:     $echo 'No, maybe "uuname -l" will work...'
                    617:     if ans=`sh -c 'uuname -l' 2>&1` ; then
                    618:        sitename=$ans
                    619:        hostcmd='uuname -l'
                    620:     else
                    621:        $echo 'Strange.  Maybe "uname -n" will work...'
                    622:        if ans=`sh -c 'uname -n' 2>&1` ; then
                    623:            sitename=$ans
                    624:            hostcmd='uname -n'
                    625:        else
                    626:            $echo 'Oh well, maybe I can mine it out of whoami.h...'
                    627:            if ans=`sh -c $contains' sysname /usr/include/whoami.h' 2>&1` ; then
                    628:                sitename=`$echo "$ans" | $sed 's/^.*"\(.*\)"/\1/'`
                    629:                hostcmd="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' </usr/include/whoami.h"
                    630:            else
                    631:                case "$sitename" in
                    632:                '') echo "Does this machine have an identity crisis or something?"
                    633:                    hostcmd=''
                    634:                    ;;
                    635:                *)  echo "Well, you said $sitename before...";;
                    636:                esac
                    637:            fi
                    638:        fi
                    639:     fi
                    640: fi
                    641: : you do not want to know about this
                    642: set $sitename
                    643: sitename=$1
                    644: 
                    645: : translate upper to lower if necessary
                    646: case $sitename in
                    647:     *[A-Z]*)
                    648:        sitename=`$echo $sitename | tr '[A-Z]' '[a-z]'`
                    649:        $echo "(Normalizing case in your site name)"
                    650:        ;;
                    651: esac
                    652: 
                    653: : verify guess
                    654: if $test "$sitename" ; then
                    655:     $echo 'Your site name appears to be "'$sitename'".'
                    656:     $echo $n "Is this correct? [y] $c"
                    657:     . myread
                    658:     case $ans in
                    659:       y*|'')  ;;
                    660:       *)      sitename='' ;;
                    661:     esac
                    662: fi
                    663: 
                    664: : bad guess or no guess
                    665: while $test "X$sitename" = X ; do
                    666:     $echo $n "Please type the (one word) name of your site: $c"
                    667:     . myread
                    668:     sitename="$ans"
                    669:     case $hostcmd in
                    670:     sed*)
                    671:        $echo "(That doesn't agree with your whoami.h file, by the way.)"
                    672:        ;;
                    673:     *)
                    674:        $echo "(That doesn't agree with your $hostcmd command, by the way.)"
                    675:        ;;
                    676:     esac
                    677:     hostcmd=''
                    678: done
                    679: 
                    680: : get organizaton name
                    681: longshots='/usr/src/new /usr/src/local /usr/local/src'
                    682: case "$orgname" in
                    683: '') if xxx=`loc news/src/defs.h x $longshots`; then
                    684:        dflt=`$sed -n 's/^.*MYORG[      ]*"\(.*\)".*$/\1/p' $xxx`
                    685:     else
                    686:        dflt='no default'
                    687:     fi
                    688:     ;;
                    689: *)  dflt="$orgname";;
                    690: esac
                    691: $cat << 'EOH'
                    692:  
                    693: Please type the name of your organization as you want it to appear on the
                    694: Organization line of outgoing articles.  (It's nice if this also specifies
                    695: your location.  Your city name is probably sufficient if well known.)
                    696: For example:
                    697: 
                    698:        University of Southern North Dakota, Hoople
                    699: 
                    700: You may also put the name of a file, as long as it begins with a slash.
                    701: For example:
                    702: 
                    703:        /etc/organization
                    704: 
                    705: EOH
                    706: orgname="no default"
                    707: while test "X$orgname" = "Xno default"; do
                    708:     $echo $n "Organization: [$dflt] $c"
                    709:     . myread
                    710:     case "$ans" in
                    711:     '') orgname="$dflt";;
                    712:     *)  orgname="$ans" ;;
                    713:     esac
                    714: done
                    715: 
                    716: : get news administrator name
                    717: case "$newsadmin" in
                    718: '')
                    719:     if $contains "^news:" /etc/passwd >/dev/null 2>&1 ; then
                    720:        dflt=news
                    721:     else
                    722:        if $contains "^usenet:" /etc/passwd >/dev/null 2>&1 ; then
                    723:            dflt=news
                    724:        else
                    725:            if eunice; then
                    726:                dflt=system
                    727:            else
                    728:                dflt=root
                    729:            fi
                    730:        fi
                    731:     fi
                    732:     ;;
                    733: *)  dflt="$newsadmin"
                    734:     ;;
                    735: esac
                    736: cat <<'EOM'
                    737:  
                    738: Many systems keep their news in a private directory, or have a non-superuser
                    739: in charge of administering news.  (If you don't have such a user, take the
                    740: default answer.)  What is the login name (not directory) that is used for news
                    741: EOM
                    742: echo $n "administration? [$dflt] $c"
                    743: . myread
                    744: newsadmin="$ans"
                    745: case $newsadmin in
                    746: '') newsadmin=$dflt ;;
                    747: esac
                    748: case $newsadmin in
                    749: root) isadmin=undef ;;
                    750: *)    isadmin=define ;;
                    751: esac
                    752: 
                    753: : figure out news library
                    754: case "$lib" in
                    755: '')
                    756:     dflt=/usr/lib/news
                    757:     ;;
                    758: *)  dflt=$lib ;;
                    759: esac
                    760: libexp=$lib
                    761: libexp='blurfl/dyick'
                    762: while $test ! -d "$libexp"; do
                    763:     $echo " "
                    764:     case "$libexp" in
                    765:     blurfl*) ;;
                    766:     *) $echo "Directory $libexp not found";;
                    767:     esac
                    768:     echo $n "Where is your news library (~name okay)? [$dflt] $c"
                    769:     . myread
                    770:     case "$ans" in
                    771:     '') ans="$dflt";;
                    772:     esac
                    773:     lib="$ans"
                    774:     case $lib in
                    775:     ~*)
                    776:        libexp=`filexp $lib`
                    777:        echo "(That is $libexp on this particular system.)"
                    778:        case $portable in
                    779:          undef) lib=$libexp ;;
                    780:        esac
                    781:        ;;
                    782:     *)
                    783:        libexp=$lib
                    784:        ;;
                    785:     esac
                    786: done
                    787: if $test -f $libexp/inews; then
                    788:     echo "Aha!  Inews is really in $libexp!  Maybe this is 2.10.2..."
                    789:     case $inews in
                    790:     inews) 
                    791:        : null
                    792:        ;;
                    793:     *)
                    794:        echo "(Make sure $inews isn't an old version.)"
                    795:        ;;
                    796:     esac
                    797:     inews=$libexp/inews
                    798: fi
                    799: 
                    800: : determine where manual pages go
                    801: case "$mansrc" in
                    802: '')
                    803:     dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1`
                    804:     ;;
                    805: *)  dflt="$mansrc"
                    806:     ;;
                    807: esac
                    808: mansrc='blurfl/dyick'
                    809: while $test ! -d "$mansrc" ; do
                    810:     case $mansrc in
                    811:       blurfl*) ;;
                    812:       *) $echo "$mansrc does not appear to exist." ;;
                    813:     esac
                    814:     $echo " "
                    815:     $echo $n "Where do the manual pages (source) go? [$dflt] $c"
                    816:     . myread
                    817:     mansrc=`filexp "$ans"`
                    818:     case $mansrc in
                    819:       '') mansrc=$dflt ;;
                    820:     esac
                    821: done
                    822: case "$mansrc" in
                    823: *l)
                    824:     manext=l
                    825:     ;;
                    826: *n)
                    827:     manext=n
                    828:     ;;
                    829: *)
                    830:     manext=1
                    831:     ;;
                    832: esac
                    833: 
                    834: : determine where mail is spooled
                    835: case "$maildir" in
                    836: '')
                    837:     dflt=`loc . /usr/spool/mail /usr/spool/mail /usr/mail`
                    838:     ;;
                    839: *)  dflt="$maildir"
                    840:     ;;
                    841: esac
                    842: maildir='blurfl/dyick'
                    843: while $test ! -d "$maildir" ; do
                    844:     case $maildir in
                    845:       blurfl*) ;;
                    846:       *) $echo "$maildir does not appear to exist." ;;
                    847:     esac
                    848:     $echo " "
                    849:     $echo $n "Where is yet-to-be-read mail spooled? [$dflt] $c"
                    850:     . myread
                    851:     maildir=`filexp "$ans"`
                    852:     case $maildir in
                    853:       '') maildir=$dflt ;;
                    854:     esac
                    855: done
                    856: 
                    857: : find out how to find out full name
                    858: $echo " "
                    859: case "$berkname" in
                    860: define)
                    861:     dflt=y;;
                    862: undef)
                    863:     dflt=n;;
                    864: *)
                    865:     if bsd; then
                    866:        dflt=y
                    867:     else
                    868:        dflt=n
                    869:     fi
                    870:     ;;
                    871: esac
                    872: $echo "Does your /etc/passwd file keep full names in Berkeley/V7 format (name first"
                    873: $echo $n "thing after ':' in GCOS field)? [$dflt] $c"
                    874: . myread
                    875: case $ans in
                    876:   '') ans=$dflt ;;
                    877: esac
                    878: case $ans in
                    879:   y*)
                    880:     passnam=define
                    881:     berknam=define
                    882:     usgnam=undef
                    883:     nametype=bsd
                    884:     ;;
                    885:   *)
                    886:     $echo " "
                    887:     case "$usgname" in
                    888:     define)
                    889:        dflt=y;;
                    890:     undef)
                    891:        dflt=n;;
                    892:     *)
                    893:        if usg; then
                    894:            dflt=y
                    895:        else
                    896:            dflt=n
                    897:        fi
                    898:        ;;
                    899:     esac
                    900:     $echo "Does your passwd file keep full names in USG format (name sandwiched"
                    901:     $echo $n "between a '-' and a '(')? [$dflt] $c"
                    902:     . myread
                    903:     case $ans in
                    904:       '') ans=$dflt ;;
                    905:     esac
                    906:     case $ans in
                    907:       n*)
                    908:        $echo "Full name will be taken from ~/.fullname"
                    909:        passnam=undef
                    910:        berknam=undef
                    911:        usgnam=undef
                    912:        nametype=other
                    913:        ;;
                    914:       *)
                    915:        passnam=define
                    916:        berknam=undef
                    917:        usgnam=define
                    918:        nametype=usg
                    919:        ;;
                    920:     esac
                    921:     ;;
                    922: esac
                    923: 
                    924: : see if we need a special compiler
                    925: $echo " "
                    926: if usg; then
                    927:     case "$cc" in
                    928:     '')
                    929:        case "$Mcc" in
                    930:        /*) dflt='Mcc'
                    931:            ;;
                    932:        *)
                    933:            if $contains '\-M' $mansrc/cc.1 >/dev/null 2>&1 ; then
                    934:                dflt='cc -M'
                    935:            else
                    936:                dflt='cc'
                    937:            fi
                    938:            ;;
                    939:        esac
                    940:        ;;
                    941:     *)  dflt="$cc";;
                    942:     esac
                    943:     $cat <<'EOM'
                    944:  
                    945: On some systems the default C compiler will not resolve multiple global
                    946: references that happen to have the same name.  On some such systems the
                    947: "Mcc" command may be used to force these to be resolved.  On other systems
                    948: a "cc -M" command is required.  What command will force resolution on
                    949: EOM
                    950:     $echo $n "this system? [$dflt] $c"
                    951:     . myread
                    952:     cc="$ans"
                    953:     case "$cc" in
                    954:        '') cc="$dflt" ;;
                    955:     esac
                    956: else
                    957:     $echo "Not a USG system--assuming cc can resolve multiple definitions."
                    958:     cc=cc
                    959: fi
                    960: 
                    961: : see if we should throw a -i into the Makefile
                    962: $echo " "
                    963: if pdp11; then
                    964:     if $contains '\-i' $mansrc/cc.1 >/dev/null 2>&1 ; then
                    965:        $echo $n "Your system appears to have separate I and D space.  Is this true? [y] $c"
                    966:        . myread
                    967:        case $ans in
                    968:            n*|f*) iandd='' ;;
                    969:            *)     iandd='-i' ;;
                    970:        esac
                    971:     else
                    972:        $echo "Your system appears to NOT have separate I and D space."
                    973:        $echo $n "Is this correct? [y] $c"
                    974:        . myread
                    975:        case $ans in
                    976:            n*|f*) iandd='-i' ;;
                    977:            *)     iandd='' ;;
                    978:        esac
                    979:     fi
                    980: else
                    981:     $echo "Not a pdp11--assuming no separate I and D."
                    982: fi
                    983: 
                    984: : index or strcpy
                    985: $echo " "
                    986: if $contains index.o libc.list >/dev/null 2>&1 ; then
                    987:     $echo "Your system appears to use index() and rindex() rather than strchr()"
                    988:     $echo $n "and strrchr().  Is this correct? [y] $c"
                    989:     . myread
                    990:     case $ans in
                    991:        n*|f*) strchr='define' ;;
                    992:        *)     strchr='undef' ;;
                    993:     esac
                    994: else
                    995:     $echo "Your system appears to use strchr() and strrchr() rather than index()"
                    996:     $echo $n "and rindex().  Is this correct? [y] $c"
                    997:     . myread
                    998:     case $ans in
                    999:        n*|f*) strchr=undef ;;
                   1000:        *)     strchr=define ;;
                   1001:     esac
                   1002: fi
                   1003: 
                   1004: : determine how to determine when a file is a mailbox
                   1005: case "$mboxchar" in
                   1006: '') dflt=F;;
                   1007: *)  dflt="$mboxchar";;
                   1008: esac
                   1009: $cat <<'EOM'
                   1010:  
                   1011: In saving articles, rn wants to differentiate between saving to mailbox
                   1012: format files and normal files.  It does this by examining the first character
                   1013: of the file in question.  On most systems the first line starts "From...",
                   1014: so the first character is F.  On other systems there are magic cookies like
                   1015: control codes between articles, so one of those would be first.  On your
                   1016: system, if a file is in mailbox format, what is the first character of
                   1017: EOM
                   1018: echo $n "that file? [$dflt] $c"
                   1019: . myread
                   1020: mboxchar="$ans"
                   1021: case $mboxchar in
                   1022: '') mboxchar="$dflt" ;;
                   1023: esac
                   1024: case $mboxchar in
                   1025: 'F') ;;
                   1026: *)  cat <<'EOM'
                   1027: You will need to edit the shell script mbox.saver to properly append an
                   1028: article to a mailbox.  The arguments to the script are documented in
                   1029: EOM
                   1030:     case $shsharp in
                   1031:     false)
                   1032:        echo "comments in mbox.saver.std."
                   1033:        ;;
                   1034:     true)
                   1035:        echo "comments in the shell script itself."
                   1036:        ;;
                   1037:     esac
                   1038: esac
                   1039: 
                   1040: : where do we get termlib routines from
                   1041: $echo " "
                   1042: ans=`loc libcurses.a x /usr/lib /usr/local/lib /lib`
                   1043: case "$ans" in
                   1044: /*)
                   1045:     ar t $ans >grimble
                   1046:     if $contains tputs.o grimble >/dev/null 2>&1; then
                   1047:        termlib='-lcurses'
                   1048:        havetlib=define
                   1049:        $echo "Terminfo library found."
                   1050:     else
                   1051:        ans=x
                   1052:     fi
                   1053:     ;;
                   1054: esac
                   1055: case "$ans" in
                   1056: x)
                   1057:     ans=`loc libtermlib.a x /usr/lib /usr/local/lib /lib`
                   1058:     case "$ans" in
                   1059:     /usr/lib*|/lib*)
                   1060:        termlib='-ltermlib'
                   1061:        havetlib=define
                   1062:        $echo "Termlib library found."
                   1063:        ;;
                   1064:     /*)
                   1065:        termlib="$ans"
                   1066:        havetlib=define
                   1067:        $echo "Termlib library found."
                   1068:        ;;
                   1069:     *)
                   1070:        ans=`loc libtermcap.a x /usr/lib /usr/local/lib /lib`
                   1071:        case "$ans" in
                   1072:        /usr/lib*|/lib*)
                   1073:            termlib='-ltermcap'
                   1074:            havetlib=define
                   1075:            $echo "Termcap library found."
                   1076:            ;;
                   1077:        /*)
                   1078:            termlib="$ans"
                   1079:            havetlib=define
                   1080:            $echo "Termcap library found."
                   1081:            ;;
                   1082:        *)
                   1083:            case "$termlib" in
                   1084:            '')
                   1085:                $echo $n "Your system appears to NOT have termlib-style routines.  Is this true? [y] $c"
                   1086:                . myread
                   1087:                case $ans in
                   1088:                    n*|f*) havetlib=define
                   1089:                          $echo "Then where are the termlib-style routines kept (specify either -llibname"
                   1090:                          $echo $n " or full pathname (~name ok))? $c"
                   1091:                          . myread
                   1092:                          termlib=`filexp $ans`
                   1093:                          ;;
                   1094:                    *)    havetlib=undef
                   1095:                          termlib=''
                   1096:                          $echo "You will have to play around with term.c then."
                   1097:                          ;;
                   1098:                esac
                   1099:                $echo " "
                   1100:                ;;
                   1101:            *)  $echo "You said termlib was $termlib before."
                   1102:                ;;
                   1103:            esac
                   1104:            ;;
                   1105:        esac
                   1106:        ;;
                   1107:     esac
                   1108:     ;;
                   1109: esac
                   1110: 
                   1111: : see if there is a whoami file
                   1112: if $test -r /usr/include/whoami.h ; then
                   1113:     whoami=define
                   1114:     $echo "whoami.h found."
                   1115: else
                   1116:     whoami=undef
                   1117: fi
                   1118: 
                   1119: : see if this is a termio system
                   1120: if $test -r /usr/include/termio.h ; then
                   1121:     termio=define
                   1122:     $echo "termio.h found."
                   1123: else
                   1124:     if $test -r /usr/include/sgtty.h ; then
                   1125:        termio=undef
                   1126:        $echo "sgtty.h found."
                   1127:     else
                   1128:        termio=undef
                   1129:        $echo "Neither termio.h nor sgtty.h found--you could have problems."
                   1130:     fi
                   1131: fi
                   1132: 
                   1133: : see if this is a termio system
                   1134: if $test -r /usr/include/fcntl.h ; then
                   1135:     fcntl=define
                   1136:     $echo "fcntl.h found."
                   1137: else
                   1138:     fcntl=undef
                   1139:     $echo "No fcntl.h found, but that's ok."
                   1140: fi
                   1141: 
                   1142: : see if ioctl defs are in sgtty/termio or sys/ioctl
                   1143: if $test -r /usr/include/sys/ioctl.h ; then
                   1144:     ioctl=define
                   1145:     $echo "sys/ioctl.h found."
                   1146: else
                   1147:     ioctl=undef
                   1148:     $echo "sys/ioctl.h not found, assuming ioctl args are defined in sgtty.h."
                   1149: fi
                   1150: 
                   1151: : see if there is a vfork
                   1152: if $contains vfork.o libc.list >/dev/null 2>&1 ; then
                   1153:     $echo "vfork() found."
                   1154:     novfork='undef'
                   1155: else
                   1156:     $echo "No vfork() found--will use fork() instead."
                   1157:     novfork='define'
                   1158: fi
                   1159: 
                   1160: : see if there is a getpw
                   1161: if $contains getpw.o libc.list >/dev/null 2>&1 ; then
                   1162:     $echo "getpw() found."
                   1163:     getpwent='undef'
                   1164: else
                   1165:     $echo "No getpw() found--will use getpwent() instead."
                   1166:     getpwent='define'
                   1167: fi
                   1168: 
                   1169: : see how we will look up site name
                   1170: douname=undef
                   1171: gethostname=undef
                   1172: phostname=undef
                   1173: if $contains gethostname.o libc.list >/dev/null 2>&1 ; then
                   1174:     $echo "gethostname() found."
                   1175:     gethostname=define
                   1176: else
                   1177:     if $contains uname.o libc.list >/dev/null 2>&1 ; then
                   1178:        $echo "uname() found."
                   1179:        douname=define
                   1180:     else
                   1181:        case $hostcmd in
                   1182:          '') ;;
                   1183:          *)
                   1184:            $cat <<EOT
                   1185:  
                   1186: There is no gethostname() or uname() on this system.  You have two
                   1187: possibilites at this point:
                   1188: 
                   1189: 1)  You can have your site name ($sitename) compiled into rn, which lets rn
                   1190:     start up faster, but makes your binaries non-portable, or
                   1191: 2)  you can have rn use a
                   1192:        
                   1193:        popen("$hostcmd","r")
                   1194: 
                   1195:     which will start slower but be more portable.
                   1196: 
                   1197: Option 1 will use whoami.h if you have one.  If you want option 2 but with
                   1198: a different command, you can edit config.h after this shell script is done.
                   1199: 
                   1200: EOT
                   1201:            case "$phostname" in
                   1202:            define) dflt=n;;
                   1203:            undef)  dflt=y;;
                   1204:            '')
                   1205:                case $portable in
                   1206:                define) dflt=n ;;
                   1207:                *)      dflt=y ;;
                   1208:                esac
                   1209:                ;;
                   1210:            esac
                   1211:            $echo $n "Do you want your site name compiled in? [$dflt] $c"
                   1212:            . myread
                   1213:            case $ans in
                   1214:            '') ans=$dflt;;
                   1215:            esac
                   1216:            case $ans in
                   1217:              n*) phostname=define ;;
                   1218:              *)  hostcmd='' phostname=undef;;
                   1219:            esac
                   1220:            ;;
                   1221:        esac
                   1222:        case $hostcmd in
                   1223:          '')
                   1224:            case $whoami in
                   1225:              define)
                   1226:                $echo 'No hostname function--using whoami.h.'
                   1227:                ;;
                   1228:              undef)
                   1229:                $echo 'No hostname function--hardwiring "'$sitename'".'
                   1230:                ;;
                   1231:            esac
                   1232:            ;;
                   1233:        esac
                   1234:     fi
                   1235: fi
                   1236: 
                   1237: : see if we need -ljobs and if we have sigset, etc.
                   1238: if $test -r /usr/lib/libjobs.a || $test -r /usr/local/lib/libjobs.a ; then
                   1239:     $echo "Jobs library found."
                   1240:     normsig=undef
                   1241:     jobslib='-ljobs'
                   1242: else
                   1243:     if bsd; then
                   1244:        $echo "No jobs library found.  (I suppose this is at least 4.2...)"
                   1245:     else
                   1246:        $echo "No jobs library found.  (That's okay, we all have our faults.)"
                   1247:     fi
                   1248:     normsig=define
                   1249:     jobslib=''
                   1250: fi
                   1251: 
                   1252: : see if there are directory access routines out there
                   1253: if $test -r /usr/lib/libndir.a || $test -r /usr/local/lib/libndir.a ; then
                   1254:     $echo "Ndir library found."
                   1255:     if $test -r /usr/lib/libndir.a; then
                   1256:        ndirlib='-lndir'
                   1257:     else
                   1258:        ndirlib="/usr/local/lib/libndir.a"
                   1259:     fi
                   1260:     libndir=define
                   1261:     usendir=undef
                   1262:     ndirc=''
                   1263:     ndiro=''
                   1264: else
                   1265:     ndirlib=''
                   1266:     libndir=undef
                   1267:     if $contains readdir.o libc.list >/dev/null 2>&1 ; then
                   1268:        $echo "No ndir library found, but you have readdir() so we'll use that."
                   1269:        usendir=undef
                   1270:        ndirc=''
                   1271:        ndiro=''
                   1272:     else
                   1273:        $echo "No ndir library found and no readdir() found--using ./ndir.c."
                   1274:        usendir=define
                   1275:        ndirc='ndir.c'
                   1276:        ndiro='ndir.o'
                   1277:     fi
                   1278: fi
                   1279: 
                   1280: : locate spool directory
                   1281: case "$spool" in
                   1282: '')
                   1283:     dflt=/usr/spool/news
                   1284:     ;;
                   1285: *)  dflt="$spool";;
                   1286: esac
                   1287: ans='blurfl/dyick'
                   1288: while $test ! -d $ans; do
                   1289:     $echo " "
                   1290:     case "$ans" in
                   1291:     blurfl*);;
                   1292:     *) echo "Directory $ans not found.";;
                   1293:     esac
                   1294:     $echo $n "Where is news spooled (~name ok)? [$dflt] $c"
                   1295:     . myread
                   1296:     case "$ans" in
                   1297:     '') ans="$dflt";;
                   1298:     esac
                   1299:     spool="$ans"
                   1300:     case $spool in
                   1301:     ~*)
                   1302:        ans=`filexp $spool`
                   1303:        echo "(That is $ans on this particular system.)"
                   1304:        case $portable in
                   1305:          undef) spool=$ans ;;
                   1306:        esac
                   1307:        ;;
                   1308:     *)
                   1309:        ans=$spool
                   1310:        ;;
                   1311:     esac
                   1312: done
                   1313: 
                   1314: : locate active file doesn't matter
                   1315: active='/tmp/active
                   1316: 
                   1317: : check for 2.10.2
                   1318: echo " "
                   1319: if $contains ' [0-9][0-9]* [0-9]' "$myactive" >/dev/null 2>&1; then
                   1320:     echo "Looks like you are running at least 2.10.2 news."
                   1321:     mininact=define
                   1322: else
                   1323:     echo "It doesn't look like you are running 2.10.2 news yet.  Are you planning"
                   1324:     echo $n "to install it in the near future? [y] $c"
                   1325:     . myread
                   1326:     case $ans in
                   1327:     n*) mininact=undef ;;
                   1328:     *)  mininact=define ;;
                   1329:     esac
                   1330: fi
                   1331: 
                   1332: 
                   1333: : check for void type
                   1334: $echo " "
                   1335: $echo "Checking to see if your C compiler groks the void type..."
                   1336: $cat >try.c <<'EOCP'
                   1337: void main();
                   1338: EOCP
                   1339: if cc -c try.c >/dev/null 2>&1 ; then
                   1340:     novoid='undef'
                   1341:     $echo "Yup, it does."
                   1342: else
                   1343:     novoid='define'
                   1344:     $echo "Nope, it doesn't (boo hiss).  I will substitute int."
                   1345: fi
                   1346: $rm try.*
                   1347: 
                   1348: : find out which shell people like to use most
                   1349: ans='blurfl/dyick'
                   1350: while $test ! -f "$ans" ; do
                   1351:     case $ans in
                   1352:       blurfl*) ;;
                   1353:       *) $echo "$ans does not appear to exist." ;;
                   1354:     esac
                   1355:     case "$pref" in
                   1356:     '')
                   1357:        if $test -f /bin/ksh; then
                   1358:            dflt='/bin/ksh'
                   1359:        else
                   1360:            if $test -f /bin/csh; then
                   1361:                dflt='/bin/csh'
                   1362:            else
                   1363:                dflt='/bin/sh'
                   1364:            fi
                   1365:        fi
                   1366:        ;;
                   1367:     *)  dflt="$pref";;
                   1368:     esac
                   1369:     $echo " "
                   1370:     $echo "Give the full path name of the shell most people like to use on your"
                   1371:     $echo $n "system: [$dflt] $c"
                   1372:     . myread
                   1373:     case $ans in
                   1374:       '') ans=$dflt ;;
                   1375:     esac
                   1376: done
                   1377: pref=$ans
                   1378: 
                   1379: : locate the preferred pager for this system
                   1380: case "$pager" in
                   1381: '')
                   1382:     case $pg in
                   1383:     /*) dflt=$pg
                   1384:        ;;
                   1385:     esac
                   1386:     case $more in
                   1387:     /*) dflt=$more
                   1388:        ;;
                   1389:     esac
                   1390:     case $dflt in
                   1391:     '') dflt=/usr/ucb/more
                   1392:        ;;
                   1393:     esac
                   1394:     ;;
                   1395: *)  dflt="$pager";;
                   1396: esac
                   1397: pager='blurfl/dyick'
                   1398: while $test ! -f "$pager" ; do
                   1399:     case $pager in
                   1400:       blurfl*)
                   1401:        $echo " "
                   1402:        $echo "(If your kernel does terminal paging then you may answer this with '/bin/cat'.)"
                   1403:        ;;
                   1404:       /*) $echo "$pager does not appear to exist."
                   1405:        $echo " "
                   1406:         ;;
                   1407:       *) $echo "Please give the full path name."
                   1408:        $echo " "
                   1409:         ;;
                   1410:     esac
                   1411:     $echo $n "What pager is used on your system? [$dflt] $c"
                   1412:     . myread
                   1413:     pager="$ans"
                   1414:     case $pager in
                   1415:       '') pager="$dflt" ;;
                   1416:     esac
                   1417: done
                   1418: 
                   1419: : determine default editor
                   1420: case "$defeditor" in
                   1421: '')
                   1422:     dflt=/usr/ucb/vi
                   1423:     ;;
                   1424: *)  dflt="$defeditor"
                   1425:     ;;
                   1426: esac
                   1427: defeditor='blurfl/dyick'
                   1428: while $test ! -f "$defeditor" ; do
                   1429:     case $defeditor in
                   1430:       blurfl*) ;;
                   1431:       *) $echo "$defeditor does not appear to exist." ;;
                   1432:     esac
                   1433:     $echo " "
                   1434:     $echo $n "What is the default editor on your system? [$dflt] $c"
                   1435:     . myread
                   1436:     defeditor="$ans"
                   1437:     case $defeditor in
                   1438:       '') defeditor=$dflt ;;
                   1439:     esac
                   1440: done
                   1441: 
                   1442: : determine mailer for Rnmail to use
                   1443: echo " "
                   1444: if $test -f /usr/lib/sendmail; then
                   1445:     mailer=/usr/lib/sendmail
                   1446: else
                   1447:     if usg && $test -f $libexp/recmail; then
                   1448:        mailer=$libexp/recmail
                   1449:     else
                   1450:        mailer=/bin/mail
                   1451:     fi
                   1452: fi
                   1453: echo "Mail sender is $mailer"
                   1454: 
                   1455: : check for internet mailer
                   1456: case "$internet" in
                   1457: define) dflt=y;;
                   1458: undef) dflt=n;;
                   1459: *)     dflt=n;;
                   1460: esac
                   1461: cat <<EOM
                   1462:  
                   1463: Some newer mailers can deliver mail to addresses of the INTERNET persuasion,
                   1464: such as [email protected].  Other older mailers require the complete path to
                   1465: the destination to be specified in the address.  Does your mailer understand
                   1466: EOM
                   1467: $echo $n "INTERNET addresses? [$dflt] $c"
                   1468: . myread
                   1469: case "$ans" in
                   1470: '') ans=$dflt;;
                   1471: esac
                   1472: case "$ans" in
                   1473: y*) internet=define;;
                   1474: *)  internet=undef;;
                   1475: esac
                   1476: 
                   1477: : determine where public executables go
                   1478: case "$rnbin" in
                   1479: '')
                   1480:     dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
                   1481:     ;;
                   1482: *)  dflt="$rnbin"
                   1483:     ;;
                   1484: esac
                   1485: rnbin='blurfl/dyick'
                   1486: while $test ! -d "$rnbin" ; do
                   1487:     case $rnbin in
                   1488:       blurfl*) ;;
                   1489:       *) $echo "$rnbin does not appear to exist." ;;
                   1490:     esac
                   1491:     $echo " "
                   1492:     $echo $n "Where do you want to put the public executables? [$dflt] $c"
                   1493:     . myread
                   1494:     rnbin="$ans"
                   1495:     rnbin=`filexp $rnbin`
                   1496:     case $rnbin in
                   1497:       '') rnbin=$dflt ;;
                   1498:     esac
                   1499: done
                   1500: 
                   1501: : determine where private executables go
                   1502: case "$rnlib" in
                   1503: '')
                   1504:     dflt=$lib/rn
                   1505:     ;;
                   1506: *)  dflt="$rnlib"
                   1507:     ;;
                   1508: esac
                   1509: $echo " "
                   1510: $echo "Rn has a number of auxiliary programs that need not be visible to the"
                   1511: $echo "whole world.  Where do you want to put these private executables?"
                   1512: $echo $n "[$dflt] (~name ok) $c"
                   1513: . myread
                   1514: rnlib="$ans"
                   1515: case $rnlib in
                   1516:   '') rnlib=$dflt ;;
                   1517: esac
                   1518: case $portable in
                   1519: undef)
                   1520:     rnlib=`filexp $rnlib`
                   1521:     ;;
                   1522: esac
                   1523: : must not allow self reference
                   1524: case $rnlib in
                   1525:   /*)
                   1526:     filexp=$rnlib/filexp
                   1527:     ;;
                   1528:   *)
                   1529:     filexp=`pwd`/filexp
                   1530:     ;;
                   1531: esac
                   1532: 
                   1533: : get the local distribution prefixes
                   1534: if $test -f $libexp/sys ; then
                   1535:     $sed <$libexp/sys -n -e "s/^$sitename://p" | \
                   1536:     $sed -e "s/:.*//" -e "s/,/ /g" | tr ' ' '\012' | \
                   1537:     $sed -e "/^to./d" -e "/^net$/d" -e "/^fa$/d" -e "/^mod$/d" > .distlist
                   1538: fi
                   1539: 
                   1540: $cat <<'EOH'
                   1541:  
                   1542: Distribution groups are the things you use on the Distribution line to limit
                   1543: where an article will go to.  You are likely to be a member of several
                   1544: distribution groups, such as organization, city, state, province, country,
                   1545: continent, etc.  For example, Los Angeles has the distribution prefix "la",
                   1546: New Jersey has the prefix "nj", and Europe has the prefix "eunet".
                   1547: 
                   1548: The categories you will be asked are: 
                   1549: 
                   1550: local organization     (Could be just one machine or a cluster or an office)
                   1551: organization           att, dec, kgb, ...
                   1552: city                   la, ny, mosc, ...
                   1553: state/province         ca, nj, bc, ...
                   1554: country                        usa, can, rok, whatever
                   1555: continent              na (North America, not "Not Applicable"), asia, etc.
                   1556: 
                   1557: (If you don't have a distribution prefix in any of these categories then
                   1558: just hit return.)
                   1559: 
                   1560: EOH
                   1561: if $test -f .distlist; then
                   1562:     distlist=`tr '\012' ' ' <.distlist`
                   1563:     if $test "$distlist" ; then
                   1564:        $echo "(These are the distributions in your sys file: $distlist)"
                   1565:        $echo " "
                   1566:     fi
                   1567: fi
                   1568: case "$locpref" in
                   1569: '') dflt="";;
                   1570: *)  dflt="[$locpref] ";;
                   1571: esac
                   1572: $echo $n "What is the distribution prefix for your local organization? $dflt$c"
                   1573: . myread
                   1574: case "$ans" in
                   1575: '') ;;
                   1576: *)  locpref="$ans";;
                   1577: esac
                   1578: case $locpref in
                   1579:   '') locpref=none ;;
                   1580: esac
                   1581: case "$orgpref" in
                   1582: '') dflt="";;
                   1583: *)  dflt="[$orgpref] ";;
                   1584: esac
                   1585: $echo $n "What is the distribution prefix for your organization? $dflt$c"
                   1586: . myread
                   1587: case "$ans" in
                   1588: '') ;;
                   1589: *)  orgpref="$ans";;
                   1590: esac
                   1591: case $orgpref in
                   1592:   '') orgpref=none ;;
                   1593: esac
                   1594: case "$citypref" in
                   1595: '') dflt="";;
                   1596: *)  dflt="[$citypref] ";;
                   1597: esac
                   1598: $echo $n "What is the distribution prefix for your city? $dflt$c"
                   1599: . myread
                   1600: case "$ans" in
                   1601: '') ;;
                   1602: *)  citypref="$ans";;
                   1603: esac
                   1604: case $citypref in
                   1605:   '') citypref=none ;;
                   1606: esac
                   1607: case "$statepref" in
                   1608: '') dflt="";;
                   1609: *)  dflt="[$statepref] ";;
                   1610: esac
                   1611: $echo $n "What is the distribution prefix for your state/province? $dflt$c"
                   1612: . myread
                   1613: case "$ans" in
                   1614: '') ;;
                   1615: *)  statepref="$ans";;
                   1616: esac
                   1617: case $statepref in
                   1618:   '') statepref=none ;;
                   1619: esac
                   1620: case "$cntrypref" in
                   1621: '') dflt="";;
                   1622: *)  dflt="[$cntrypref] ";;
                   1623: esac
                   1624: $echo $n "What is the distribution prefix for your country? $dflt$c"
                   1625: . myread
                   1626: case "$ans" in
                   1627: '') ;;
                   1628: *)  cntrypref="$ans";;
                   1629: esac
                   1630: case $cntrypref in
                   1631:   '') cntrypref=none ;;
                   1632: esac
                   1633: case "$contpref" in
                   1634: '') dflt="";;
                   1635: *)  dflt="[$contpref] ";;
                   1636: esac
                   1637: $echo $n "What is the distribution prefix for your continent? $dflt$c"
                   1638: . myread
                   1639: case "$ans" in
                   1640: '') ;;
                   1641: *)  contpref="$ans";;
                   1642: esac
                   1643: case $contpref in
                   1644:   '') contpref=none ;;
                   1645: esac
                   1646: 
                   1647: $echo " "
                   1648: $echo "If you have any other distribution groups you will need to edit Pnews"
                   1649: $echo "and newsetup to add them."
                   1650: $echo " "
                   1651: 
                   1652: : determine root id
                   1653: rootid=`$sed </etc/passwd -e "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"`
                   1654: case $rootid in
                   1655:   '') rootid=0 ;;
                   1656:   *)  $echo "Root uid = $rootid" ;;
                   1657: esac
                   1658: 
                   1659: : weed out incompatibilities
                   1660: case $douname in
                   1661:   define) whoami=undef ;;
                   1662: esac
                   1663: 
                   1664: : preserve RCS keywords in files with variable substitution, grrr
                   1665: Log='$Log'
                   1666: Header='$Header'
                   1667: 
                   1668: : Warnings
                   1669: if v7; then
                   1670:     cat <<'EOM'
                   1671:  
                   1672: NOTE: the V7 compiler may ignore some #undefs that rn uses.  If so, you will
                   1673: get messages about redefining EXT.  Some V7 compilers also have difficulties
                   1674: with #defines near buffer boundaries, so beware.  You may have to play with
                   1675: the spacing in common.h.
                   1676: EOM
                   1677: fi
                   1678: 
                   1679: if pdp11; then
                   1680:     cat <<'EOM'
                   1681:  
                   1682: NOTE: the PDP-11 does not have enough data space to do subject caching
                   1683: reliably.  That feature will be disabled automatically.  Subject searching
                   1684: will tend to be slow.
                   1685: EOM
                   1686: fi
                   1687: 
                   1688: $echo " "
                   1689: $echo "End of configuration questions."
                   1690: $echo " "
                   1691: 
                   1692: : create config.sh file
                   1693: $echo " "
                   1694: $echo "Creating config.sh..."
                   1695: $spitshell <<EOT >config.sh
                   1696: $startsh
                   1697: # config.sh
                   1698: # This file was produced by running the Configure script.
                   1699: 
                   1700: n='$n'
                   1701: c='$c'
                   1702: libc='$libc'
                   1703: eunicefix='$eunicefix'
                   1704: eunice='$eunice'
                   1705: cpp='$cpp'
                   1706: shsharp='$shsharp'
                   1707: startsh='$startsh'
                   1708: spitshell='$spitshell'
                   1709: test='$test'
                   1710: expr='$expr'
                   1711: sed='$sed'
                   1712: echo='$echo'
                   1713: cat='$cat'
                   1714: rm='$rm'
                   1715: mv='$mv'
                   1716: cp='$cp'
                   1717: tail='$tail'
                   1718: tr='$tr'
                   1719: mkdir='$mkdir'
                   1720: sort='$sort'
                   1721: uniq='$uniq'
                   1722: inews='$inews'
                   1723: grep='$grep'
                   1724: egrep='$egrep'
                   1725: contains='$contains'
                   1726: lib='$lib'
                   1727: libexp='$libexp'
                   1728: nametype='$nametype'
                   1729: cc='$cc'
                   1730: iandd='$iandd'
                   1731: termlib='$termlib'
                   1732: jobslib='$jobslib'
                   1733: ndirlib='$ndirlib'
                   1734: libndir='$libndir'
                   1735: usendir='$usendir'
                   1736: ndirc='$ndirc'
                   1737: ndiro='$ndiro'
                   1738: pager='$pager'
                   1739: mailer='$mailer'
                   1740: internet='$internet'
                   1741: rnbin='$rnbin'
                   1742: filexp='$filexp'
                   1743: distlist='$distlist'
                   1744: Log='$Log'
                   1745: Header='$Header'
                   1746: sitename='$sitename'
                   1747: orgname='$orgname'
                   1748: isadmin='$isadmin'
                   1749: newsadmin='$newsadmin'
                   1750: rnlib='$rnlib'
                   1751: mansrc='$mansrc'
                   1752: manext='$manext'
                   1753: maildir='$maildir'
                   1754: spool='$spool'
                   1755: active='$active'
                   1756: myactive='$myactive'
                   1757: mininact='$mininact'
                   1758: pref='$pref'
                   1759: defeditor='$defeditor'
                   1760: rootid='$rootid'
                   1761: mboxchar='$mboxchar'
                   1762: locpref='$locpref'
                   1763: orgpref='$orgpref'
                   1764: citypref='$citypref'
                   1765: statepref='$statepref'
                   1766: cntrypref='$cntrypref'
                   1767: contpref='$contpref'
                   1768: strchr='$strchr'
                   1769: novoid='$novoid'
                   1770: novfork='$novfork'
                   1771: portable='$portable'
                   1772: passnam='$passnam'
                   1773: berknam='$berknam'
                   1774: usgnam='$usgnam'
                   1775: whoami='$whoami'
                   1776: termio='$termio'
                   1777: fcntl='$fcntl'
                   1778: ioctl='$ioctl'
                   1779: normsig='$normsig'
                   1780: havetlib='$havetlib'
                   1781: getpwent='$getpwent'
                   1782: gethostname='$gethostname'
                   1783: douname='$douname'
                   1784: phostname='$phostname'
                   1785: hostcmd='$hostcmd'
                   1786: CONFIG=true
                   1787: EOT
                   1788: 
                   1789: : create config.h file
                   1790: $echo " "
                   1791: $echo "Creating config.h..."
                   1792: $cat <<EOT >config.h
                   1793: /* config.h
                   1794:  * This file was produced by running the Configure script.
                   1795:  * Feel free to modify any of this as the need arises.
                   1796:  */
                   1797: 
                   1798: /* name of the site.  May be overridden by gethostname, uname, etc. */
                   1799: #define SITENAME "$sitename"
                   1800: 
                   1801: /* name of the organization, may be a file name */
                   1802: #define ORGNAME "$orgname"
                   1803: 
                   1804: /* login name of news administrator, if any. */
                   1805: #$isadmin NEWSADMIN "$newsadmin"
                   1806: 
                   1807: /* news library, may use only ~ and %l expansion */
                   1808: #define LIB "$lib"
                   1809: 
                   1810: /* rn private library, may use ~ expansion, %x and %l */
                   1811: #define RNLIB "$rnlib"
                   1812: 
                   1813: /* location of the news spool directory, may use ~ expansion, %x and %l */
                   1814: #define SPOOL "$spool"
                   1815: 
                   1816: /* location of the active file, may use ~ expansion, %x and %l */
                   1817: #define ACTIVE "$active"
                   1818: 
                   1819: /* location of spooled mail */
                   1820: #define MAILFILE "$maildir/%L"
                   1821: 
                   1822: /* default shell--ok to be a slow shell like csh */
                   1823: #define PREFSHELL "$pref"
                   1824: 
                   1825: /* default editor */
                   1826: #define DEFEDITOR "$defeditor"
                   1827: 
                   1828: /* root uid */
                   1829: #define ROOTID $rootid
                   1830: 
                   1831: /* what is the first character of a mailbox? */
                   1832: #define MBOXCHAR '$mboxchar'
                   1833: 
                   1834: /* how to cancel an article */
                   1835: #define CANCEL "$inews -h <%h"
                   1836: 
                   1837: /* distribution groups */
                   1838: #define LOCDIST "$locpref"
                   1839: #define ORGDIST "$orgpref"
                   1840: #define CITYDIST "$citypref"
                   1841: #define STATEDIST "$statepref"
                   1842: #define CNTRYDIST "$cntrypref"
                   1843: #define CONTDIST "$contpref"
                   1844: 
                   1845: #$strchr       index strchr    /* cultural */
                   1846: #$strchr       rindex strrchr  /*  differences? */
                   1847: #$novoid       void int        /* is void to be avoided? */
                   1848: #$novfork      vfork fork      /* is vfork too virtual? */
                   1849: #$eunice       EUNICE          /* no linking? */
                   1850: #$eunice       VMS             /* not currently used, here just in case */
                   1851: #$usendir      USENDIR         /* include ndir.c? */
                   1852: #$libndir      LIBNDIR         /* include /usr/include/ndir.h? */
                   1853: #$mininact     MININACT        /* include 2.10.2 optimization? */
                   1854: #$portable     PORTABLE        /* do we do extra lookups to start up? */
                   1855: #$passnam      PASSNAMES       /* do names come from the passwd file? */
                   1856:                                /*  (undef to take name from ~/.fullname) */
                   1857: #$berknam      BERKNAMES       /* if so, are they Berkeley format? */
                   1858:                                /* (that is, ":name,stuff:") */
                   1859: #$usgnam       USGNAMES        /* or are they USG format? */
                   1860:                                /* (that is, ":stuff-name(stuff):") */
                   1861: #$whoami       WHOAMI          /* should we include whoami.h? */
                   1862: #$termio       TERMIO          /* is this a termio system? */
                   1863: #$fcntl                FCNTL           /* should we include fcntl.h? */
                   1864: #$ioctl                IOCTL           /* are ioctl args all defined in one place? */
                   1865: #$normsig      NORMSIG         /* use signal rather than sigset? */
                   1866: #$havetlib     HAVETERMLIB     /* do we have termlib-style routines? */
                   1867: #$getpwent     GETPWENT        /* need we include slow getpwent? */
                   1868: #$internet     INTERNET        /* does our mailer do INTERNET addressing? */
                   1869: #$gethostname  GETHOSTNAME     /* do we have a gethostname function? */
                   1870: #$douname      DOUNAME         /* do we have a uname function? */
                   1871: #$phostname    PHOSTNAME "$hostcmd"    /* how to get host name with popen */
                   1872: EOT
                   1873: 
                   1874: CONFIG=true
                   1875: 
                   1876: $rm -f libc.list .distlist kit*isdone
                   1877: 
                   1878: echo " "
                   1879: echo "Doing variable substitutions on various files..."
                   1880: echo " "
                   1881: set `$grep <MANIFEST '\.SH' | awk '{print $1}'`
                   1882: for file in $*; do
                   1883:     . $file
                   1884: done
                   1885: 
                   1886: echo " "
                   1887: echo 'Now you need to generate make dependencies by running "makedepend".'
                   1888: echo 'You might prefer to run it in background: "makedepend > makedepend.out &"'
                   1889: echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c" 
                   1890: . myread
                   1891: case "$ans" in
                   1892: y*) makedepend;;
                   1893: esac
                   1894: : 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.