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