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