|
|
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.