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