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