This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Force bin.U before archlib.U and privlib.U
[metaconfig.git] / U / modified / Oldconfig.U
CommitLineData
959f3c4c
JH
1?RCS: $Id: Oldconfig.U,v 3.0.1.10 1997/02/28 15:06:39 ram Exp $
2?RCS:
3?RCS: Copyright (c) 1991-1993, Raphael Manfredi
d01e9330 4?RCS:
959f3c4c
JH
5?RCS: You may redistribute only under the terms of the Artistic Licence,
6?RCS: as specified in the README file that comes with the distribution.
7?RCS: You may reuse parts of this distribution only within the terms of
8?RCS: that same Artistic Licence; a copy of which may be found at the root
9?RCS: of the source tree for dist 3.0.
10?RCS:
11?RCS: $Log: Oldconfig.U,v $
12?RCS: Revision 3.0.1.10 1997/02/28 15:06:39 ram
13?RCS: patch61: added support for src.U
14?RCS: patch61: new OSNAME define
15?RCS: patch61: can now sense new OSes
16?RCS:
17?RCS: Revision 3.0.1.9 1995/07/25 13:40:51 ram
18?RCS: patch56: now knows about OS/2 platforms
19?RCS:
20?RCS: Revision 3.0.1.8 1995/05/12 12:04:18 ram
21?RCS: patch54: config.sh reload logic now knows about new -K switch
22?RCS: patch54: cleaned up and extended osvers for DEC OSF/1 (ADO)
23?RCS: patch54: added MachTen detection (ADO)
24?RCS:
25?RCS: Revision 3.0.1.7 1995/02/15 14:13:41 ram
26?RCS: patch51: adapted osvers computation for AIX (ADO)
27?RCS:
28?RCS: Revision 3.0.1.6 1995/01/30 14:27:15 ram
29?RCS: patch49: unit Options.U now exports file optdef.sh, not a variable
30?RCS: patch49: update code for myuname changed (WED)
31?RCS:
32?RCS: Revision 3.0.1.5 1995/01/11 15:15:36 ram
33?RCS: patch45: added quotes around the INITPROG variable (ADO)
34?RCS: patch45: allows variable overriding after config file loading
35?RCS:
36?RCS: Revision 3.0.1.4 1994/10/29 15:57:05 ram
37?RCS: patch36: added ?F: line for metalint file checking
38?RCS: patch36: merged with the version used for perl5's Configure (ADO)
39?RCS:
40?RCS: Revision 3.0.1.3 1994/05/06 14:24:17 ram
41?RCS: patch23: added support for osf1 hints
42?RCS: patch23: new support for solaris and i386 systems (ADO)
43?RCS:
44?RCS: Revision 3.0.1.2 1994/01/24 14:05:02 ram
45?RCS: patch16: added post-processing on myuname for Xenix targets
46?RCS: patch16: message proposing config.sh defaults made consistent
47?RCS:
48?RCS: Revision 3.0.1.1 1993/09/13 15:56:32 ram
49?RCS: patch10: force use of config.sh when -d option is used (WAD)
50?RCS: patch10: complain about non-existent hint files (WAD)
51?RCS: patch10: added Options dependency for fastread variable
52?RCS:
53?RCS: Revision 3.0 1993/08/18 12:05:12 ram
54?RCS: Baseline for dist 3.0 netwide release.
55?RCS:
56?X:
57?X: This unit tries to remember what we did last time we ran Configure, mostly
58?X: for the sake of setting defaults.
59?X:
68f55076 60?MAKE:Oldconfig hint myuname osname osvers: Instruct Myread uname \
0f00356b 61 Checkcc Mksymlinks run \
959f3c4c
JH
62 sh awk sed test cat rm lns tr n c contains Loc Options Tr src trnl ln
63?MAKE: -pick wipe $@ %<
64?S:myuname:
65?S: The output of 'uname -a' if available, otherwise the hostname. On Xenix,
66?S: pseudo variables assignments in the output are stripped, thank you. The
67?S: whole thing is then lower-cased.
68?S:.
69?S:hint:
70?S: Gives the type of hints used for previous answers. May be one of
71?S: "default", "recommended" or "previous".
72?S:.
73?S:osname:
74?S: This variable contains the operating system name (e.g. sunos,
75?S: solaris, hpux, etc.). It can be useful later on for setting
76?S: defaults. Any spaces are replaced with underscores. It is set
77?S: to a null string if we can't figure it out.
78?S:.
79?S:osvers:
80?S: This variable contains the operating system version (e.g.
81?S: 4.1.3, 5.2, etc.). It is primarily used for helping select
82?S: an appropriate hints file, but might be useful elsewhere for
83?S: setting defaults. It is set to '' if we can't figure it out.
84?S: We try to be flexible about how much of the version number
85?S: to keep, e.g. if 4.1.1, 4.1.2, and 4.1.3 are essentially the
86?S: same for this package, hints files might just be os_4.0 or
87?S: os_4.1, etc., not keeping separate files for each little release.
88?S:.
89?C:OSNAME:
90?C: This symbol contains the name of the operating system, as determined
91?C: by Configure. You shouldn't rely on it too much; the specific
92?C: feature tests from Configure are generally more reliable.
93?C:.
dd6f1bc3
JH
94?C:OSVERS:
95?C: This symbol contains the version of the operating system, as determined
96?C: by Configure. You shouldn't rely on it too much; the specific
97?C: feature tests from Configure are generally more reliable.
98?C:.
959f3c4c 99?H:#define OSNAME "$osname" /**/
dd6f1bc3 100?H:#define OSVERS "$osvers" /**/
959f3c4c
JH
101?H:.
102?F:!config.sh
103?T:tmp tmp_n tmp_c tmp_sh file
104?T:xxxxfile xxxfile xxfile xfile hintfile newmyuname
105?T:tans _ isesix INITPROG DJGPP
106?D:osname=''
107?LINT:change n c sh
0f00356b
JH
108?LINT:extern targetarch
109?LINT:extern hostarch
110?LINT:change hostarch
111?LINT:use run
1056f0f3 112?LINT:extern is_os2
959f3c4c
JH
113: Try to determine whether config.sh was made on this system
114case "$config_sh" in
115'')
116?X: indentation wrong on purpose--RAM
117?X: Leave a white space between first two '(' for ksh. The sub-shell is needed
118?X: on some machines to avoid the error message when uname is not found; e.g.
119?X: old SUN-OS 3.2 would not execute hostname in (uname -a || hostname). Sigh!
508a21cd
JH
120?X: Now not using a subshell but instead $test.
121myuname=`$uname -a 2>/dev/null`
122$test -z "$myuname" && myuname=`hostname 2>/dev/null`
959f3c4c
JH
123?X: Special mention for Xenix, whose 'uname -a' gives us output like this:
124?X: sysname=XENIX
125?X: nodename=whatever
126?X: release=2.3.2 .. etc...
127?X: Therefore, we strip all this variable assignment junk and remove all the
128?X: new lines to keep the myuname variable sane... --RAM
129# tr '[A-Z]' '[a-z]' would not work in EBCDIC
130# because the A-Z/a-z are not consecutive.
131myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
132 ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
133?X: Save the value we just computed to reset myuname after we get done here.
134newmyuname="$myuname"
135dflt=n
136case "$knowitall" in
137'')
138 if test -f ../config.sh; then
139 if $contains myuname= ../config.sh >/dev/null 2>&1; then
140 eval "`grep myuname= ../config.sh`"
141 fi
142 if test "X$myuname" = "X$newmyuname"; then
143 dflt=y
144 fi
145 fi
146 ;;
147*) dflt=y;;
148esac
149
150@if {test -d ../hints}
151: Get old answers from old config file if Configure was run on the
152: same system, otherwise use the hints.
153hint=default
154cd ..
155?X: Since we are now at the root of the source tree, we must use $src
156?X: to access the sources and not $rsrc. See src.U for details...
157if test -f config.sh; then
158 echo " "
159 rp="I see a config.sh file. Shall I use it to set the defaults?"
160 . UU/myread
161 case "$ans" in
aac52537
AD
162 n*|N*) echo "OK, I'll ignore it."
163 mv config.sh config.sh.old
164 myuname="$newmyuname"
165 ;;
959f3c4c
JH
166 *) echo "Fetching default answers from your old config.sh file..." >&4
167 tmp_n="$n"
168 tmp_c="$c"
169 tmp_sh="$sh"
170 . ./config.sh
171 cp config.sh UU
172 n="$tmp_n"
173 c="$tmp_c"
174 : Older versions did not always set $sh. Catch re-use of such
175 : an old config.sh.
176 case "$sh" in
177 '') sh="$tmp_sh" ;;
178 esac
179 hint=previous
180 ;;
181 esac
182fi
14054727 183. ./UU/checkcc
959f3c4c
JH
184if test ! -f config.sh; then
185 $cat <<EOM
186
187First time through, eh? I have some defaults handy for some systems
188that need some extra help getting the Configure answers right:
189
190EOM
191 (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4
192 dflt=''
193 : Half the following guesses are probably wrong... If you have better
194 : tests or hints, please send them to <MAINTLOC>
195 : The metaconfig authors would also appreciate a copy...
196 $test -f /irix && osname=irix
197 $test -f /xenix && osname=sco_xenix
198 $test -f /dynix && osname=dynix
199 $test -f /dnix && osname=dnix
200 $test -f /lynx.os && osname=lynxos
201 $test -f /unicos && osname=unicos && osvers=`$uname -r`
73f6f260 202 $test -f /unicosmk && osname=unicosmk && osvers=`$uname -r`
959f3c4c
JH
203 $test -f /unicosmk.ar && osname=unicosmk && osvers=`$uname -r`
204 $test -f /bin/mips && /bin/mips && osname=mips
205 $test -d /NextApps && set X `hostinfo | grep 'NeXT Mach.*:' | \
206 $sed -e 's/://' -e 's/\./_/'` && osname=next && osvers=$4
207 $test -d /usr/apollo/bin && osname=apollo
208 $test -f /etc/saf/_sactab && osname=svr4
209 $test -d /usr/include/minix && osname=minix
ea7a0c8f 210 $test -f /system/gnu_library/bin/ar.pm && osname=vos
959f3c4c
JH
211 if $test -d /MachTen -o -d /MachTen_Folder; then
212?X: MachTen uname -a output looks like
213?X: xxx 4 0.0 Macintosh
214?X: MachTen /sbin/version output looks like
215?X: MachTen 4.0 Mon Aug 28 10:18:00 1995
216?X: MachTen 3.x had the 'version' command in /usr/etc/version.
217 osname=machten
218 if $test -x /sbin/version; then
219 osvers=`/sbin/version | $awk '{print $2}' |
220 $sed -e 's/[A-Za-z]$//'`
221 elif $test -x /usr/etc/version; then
222 osvers=`/usr/etc/version | $awk '{print $2}' |
223 $sed -e 's/[A-Za-z]$//'`
224 else
225 osvers="$2.$3"
226 fi
227 fi
edd6115f
JH
228
229 $test -f /sys/posix.dll &&
230 $test -f /usr/bin/what &&
231 set X `/usr/bin/what /sys/posix.dll` &&
232 $test "$3" = UWIN &&
233 osname=uwin &&
234 osvers="$5"
235
959f3c4c
JH
236?X: If we have uname, we already computed a suitable uname -a output, correctly
237?X: formatted for Xenix, and it lies in $myuname.
238 if $test -f $uname; then
239 set X $myuname
240 shift
241
242 case "$5" in
243 fps*) osname=fps ;;
244 mips*)
245 case "$4" in
246 umips) osname=umips ;;
247 *) osname=mips ;;
248 esac;;
249 [23]100) osname=mips ;;
250 next*) osname=next ;;
251?X: Interactive Unix.
252 i386*)
253 tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
254 if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
255 osname='sco'
256 osvers=$tmp
257 elif $test -f /etc/kconfig; then
258 osname=isc
259 if test "$lns" = "$ln -s"; then
260 osvers=4
261 elif $contains _SYSV3 /usr/include/stdio.h > /dev/null 2>&1 ; then
262 osvers=3
263 elif $contains _POSIX_SOURCE /usr/include/stdio.h > /dev/null 2>&1 ; then
264 osvers=2
265 fi
266 fi
267 tmp=''
268 ;;
269?X: MS-DOS djgpp uname -a output looks like:
270?X: ms-dos xxx 6 22 pc
271?X: $1 is the "dos flavor" (need not be "ms-dos").
272?X: $2 is the node name
273?X: $3 and $4 are version/subversion
274?X: $5 is always "pc", but that might not be unique to DJGPP.
275?X: (e.g. Solaris_x86 has $5 = i86pc, which doesn't actually conflict,
d01e9330 276?X: but it's close enought that I can easily imagine other vendors also
959f3c4c
JH
277?X: using variants of pc* in $5.)
278?X: The "DJGPP" environment variable is always set when djgpp is active.
279 pc*)
280 if test -n "$DJGPP"; then
281 osname=dos
282 osvers=djgpp
283 fi
284 ;;
285 esac
286
287 case "$1" in
288 aix) osname=aix
289?X: aix 4.1 uname -a output looks like
d01e9330 290?X: AIX foo 1 4 000123456789
959f3c4c
JH
291?X: where $4 is the major release number and $3 is the (minor) version.
292?X: More detail on the version is available with the oslevel command.
293?X: in 3.2.x, it output a string (see case statements below). In 4.1,
294?X: it puts out something like 4.1.1.0
295 tmp=`( (oslevel) 2>/dev/null || echo "not found") 2>&1`
296 case "$tmp" in
461356af
MB
297 # oslevel can fail with:
298 # oslevel: Unable to acquire lock.
299 *not\ found) osvers="$4"."$3" ;;
959f3c4c
JH
300 '<3240'|'<>3240') osvers=3.2.0 ;;
301 '=3240'|'>3240'|'<3250'|'<>3250') osvers=3.2.4 ;;
302 '=3250'|'>3250') osvers=3.2.5 ;;
303 *) osvers=$tmp;;
304 esac
305 ;;
edd6115f
JH
306 bsd386) osname=bsd386
307 osvers=`$uname -r`
308 ;;
309 cygwin*) osname=cygwin
310 osvers="$3"
311 ;;
959f3c4c
JH
312 *dc.osx) osname=dcosx
313 osvers="$3"
314 ;;
315 dnix) osname=dnix
316 osvers="$3"
317 ;;
318 domainos) osname=apollo
319 osvers="$3"
320 ;;
d01e9330
RSG
321 dgux) osname=dgux
322 osvers="$3"
323 ;;
324 dragonfly) osname=dragonfly
959f3c4c
JH
325 osvers="$3"
326 ;;
327?X: uname -a returns
328?X: DYNIX/ptx xxx 4.0 V4.1.2 i386
329 dynixptx*) osname=dynixptx
330 osvers=`echo "$4"|sed 's/^v//'`
331 ;;
d01e9330 332 freebsd) osname=freebsd
959f3c4c 333 osvers="$3" ;;
1fde2680 334 genix) osname=genix ;;
32643781
AD
335?X: GNU/Hurd uname -a gives something like:
336?X: GNU foo 0.3 GNU-Mach 1.4/Hurd-0.3 i386-AT386 GNU
337?X: GNU gnu 0.3 GNUmach-1.2/Hurd-0.3 i386-AT386 GNU
338?X: Note the hostname on the second one, which will fool Configure
339?X: into using the SysV case!
1fde2680
BD
340 gnu) osname=gnu
341 osvers="$3" ;;
959f3c4c
JH
342?X: HP-UX uname -a gives something like
343?X: HP-UX foobar B.10.20 A 9000/735 2016483812 two-user license
344?X: Preserve the full 10.20 string instead of the previous plain '10'.
345?X: Thanks to Graham Barr. --AD 6/30/1998
d01e9330 346 hp*) osname=hpux
959f3c4c
JH
347 osvers=`echo "$3" | $sed 's,.*\.\([0-9]*\.[0-9]*\),\1,'`
348 ;;
1fde2680 349 irix*) osname=irix
959f3c4c
JH
350 case "$3" in
351 4*) osvers=4 ;;
352 5*) osvers=5 ;;
353 *) osvers="$3" ;;
354 esac
355 ;;
1fde2680 356 linux) osname=linux
959f3c4c
JH
357 case "$3" in
358 *) osvers="$3" ;;
359 esac
360 ;;
1fde2680 361 MiNT) osname=mint
959f3c4c
JH
362 ;;
363 netbsd*) osname=netbsd
364 osvers="$3"
365 ;;
366 news-os) osvers="$3"
367 case "$3" in
368 4*) osname=newsos4 ;;
369 *) osname=newsos ;;
370 esac
371 ;;
edd6115f 372 next*) osname=next ;;
9f872204 373 nonstop-ux) osname=nonstopux ;;
b0f4b628
JH
374 openbsd) osname=openbsd
375 osvers="$3"
376 ;;
1056f0f3
JH
377 os2) osname=os2
378 osvers="$4"
379 ;;
edd6115f
JH
380 POSIX-BC | posix-bc ) osname=posix-bc
381 osvers="$3"
959f3c4c 382 ;;
959f3c4c
JH
383 powerux | power_ux | powermax_os | powermaxos | \
384 powerunix | power_unix) osname=powerux
385 osvers="$3"
386 ;;
edd6115f
JH
387 qnx) osname=qnx
388 osvers="$4"
389 ;;
959f3c4c
JH
390 solaris) osname=solaris
391 case "$3" in
392 5*) osvers=`echo $3 | $sed 's/^5/2/g'` ;;
393 *) osvers="$3" ;;
394 esac
395 ;;
396 sunos) osname=sunos
397 case "$3" in
398 5*) osname=solaris
399 osvers=`echo $3 | $sed 's/^5/2/g'` ;;
400 *) osvers="$3" ;;
401 esac
402 ;;
403 titanos) osname=titanos
404 case "$3" in
405 1*) osvers=1 ;;
406 2*) osvers=2 ;;
407 3*) osvers=3 ;;
408 4*) osvers=4 ;;
409 *) osvers="$3" ;;
410 esac
411 ;;
412 ultrix) osname=ultrix
413 osvers="$3"
414 ;;
415 osf1|mls+) case "$5" in
416 alpha)
417?X: DEC OSF/1 myuname -a output looks like: osf1 xxxx t3.2 123.4 alpha
418?X: where the version number can be something like [xvt]n.n
419 osname=dec_osf
5d7a094e 420?X: sizer knows the minor minor version: the letter
8320b5cb 421 osvers=`sizer -v | awk -FUNIX '{print $2}' | awk '{print $1}' | tr '[A-Z]' '[a-z]' | sed 's/^[xvt]//'`
5d7a094e
JH
422 case "$osvers" in
423 [1-9].[0-9]*) ;;
424 *) osvers=`echo "$3" | sed 's/^[xvt]//'` ;;
425 esac
959f3c4c
JH
426 ;;
427 hp*) osname=hp_osf1 ;;
428 mips) osname=mips_osf1 ;;
429?X: hp and mips were unsupported Technology Releases -- ADO, 24/10/94
430 esac
431 ;;
6e46fa65 432 # UnixWare 7.1.2 is known as Open UNIX 8
a5f24678 433 openunix|unixware) osname=svr5
4ac3c55c
A
434 osvers="$4"
435 ;;
9dbcc431 436 uts) osname=uts
959f3c4c
JH
437 osvers="$3"
438 ;;
9dbcc431
JH
439 vos) osvers="$3"
440 ;;
959f3c4c
JH
441 $2) case "$osname" in
442 *isc*) ;;
443 *freebsd*) ;;
444 svr*)
445 : svr4.x or possibly later
d01e9330 446 case "svr$3" in
959f3c4c
JH
447 ${osname}*)
448 osname=svr$3
449 osvers=$4
450 ;;
451 esac
452 case "$osname" in
453 svr4.0)
454 : Check for ESIX
455 if test -f /stand/boot ; then
456 eval `grep '^INITPROG=[a-z/0-9]*$' /stand/boot`
457 if test -n "$INITPROG" -a -f "$INITPROG"; then
458 isesix=`strings -a $INITPROG|grep 'ESIX SYSTEM V/386 Release 4.0'`
459 if test -n "$isesix"; then
460 osname=esix4
461 fi
462 fi
463 fi
464 ;;
465 esac
466 ;;
467 *) if test -f /etc/systemid; then
468 osname=sco
469 set `echo $3 | $sed 's/\./ /g'` $4
470 if $test -f $src/hints/sco_$1_$2_$3.sh; then
471 osvers=$1.$2.$3
472 elif $test -f $src/hints/sco_$1_$2.sh; then
473 osvers=$1.$2
474 elif $test -f $src/hints/sco_$1.sh; then
475 osvers=$1
476 fi
477 else
478 case "$osname" in
479 '') : Still unknown. Probably a generic Sys V.
480 osname="sysv"
481 osvers="$3"
482 ;;
483 esac
484 fi
485 ;;
486 esac
487 ;;
488 *) case "$osname" in
489 '') : Still unknown. Probably a generic BSD.
490 osname="$1"
491 osvers="$3"
492 ;;
493 esac
494 ;;
495 esac
496 else
497?X: Try to identify sony's NEWS-OS (BSD unix)
498 if test -f /vmunix -a -f $src/hints/news_os.sh; then
499 (what /vmunix | UU/tr '[A-Z]' '[a-z]') > UU/kernel.what 2>&1
500 if $contains news-os UU/kernel.what >/dev/null 2>&1; then
501 osname=news_os
502 fi
503 $rm -f UU/kernel.what
504?X: Maybe it's OS/2 or DOS or something similar
1056f0f3 505 elif test -d c:/. -o -n "$is_os2" ; then
959f3c4c
JH
506 set X $myuname
507 osname=os2
508 osvers="$5"
509 fi
510 fi
d01e9330 511
0f00356b
JH
512 case "$targetarch" in
513 '') ;;
514 *) hostarch=$osname
515 osname=`echo $targetarch|sed 's,^[^-]*-,,'`
516 osvers=''
517 ;;
518 esac
519
959f3c4c
JH
520 : Now look for a hint file osname_osvers, unless one has been
521 : specified already.
522 case "$hintfile" in
523 ''|' ')
70ffff07 524 file=`echo "${osname}_${osvers}" | $sed -e 's%\.%_%g' -e 's%_$%%'`
959f3c4c 525 : Also try without trailing minor version numbers.
70ffff07
DD
526 xfile=`echo $file | $sed -e 's%_[^_]*$%%'`
527 xxfile=`echo $xfile | $sed -e 's%_[^_]*$%%'`
528 xxxfile=`echo $xxfile | $sed -e 's%_[^_]*$%%'`
529 xxxxfile=`echo $xxxfile | $sed -e 's%_[^_]*$%%'`
959f3c4c
JH
530 case "$file" in
531 '') dflt=none ;;
532 *) case "$osvers" in
533 '') dflt=$file
534 ;;
535 *) if $test -f $src/hints/$file.sh ; then
536 dflt=$file
537 elif $test -f $src/hints/$xfile.sh ; then
538 dflt=$xfile
539 elif $test -f $src/hints/$xxfile.sh ; then
540 dflt=$xxfile
541 elif $test -f $src/hints/$xxxfile.sh ; then
542 dflt=$xxxfile
543 elif $test -f $src/hints/$xxxxfile.sh ; then
544 dflt=$xxxxfile
545 elif $test -f "$src/hints/${osname}.sh" ; then
546 dflt="${osname}"
547 else
548 dflt=none
549 fi
550 ;;
551 esac
552 ;;
553 esac
554 if $test -f Policy.sh ; then
555 case "$dflt" in
556 *Policy*) ;;
557 none) dflt="Policy" ;;
558 *) dflt="Policy $dflt" ;;
559 esac
560 fi
561 ;;
562 *)
563 dflt=`echo $hintfile | $sed 's/\.sh$//'`
564 ;;
565 esac
566
567 if $test -f Policy.sh ; then
568 $cat <<EOM
569
570There's also a Policy hint file available, which should make the
571site-specific (policy) questions easier to answer.
572EOM
573
574 fi
575
576 $cat <<EOM
577
578You may give one or more space-separated answers, or "none" if appropriate.
579A well-behaved OS will have no hints, so answering "none" or just "Policy"
86a2f2c4 580is a good thing. DO NOT give a wrong version or a wrong OS.
959f3c4c
JH
581
582EOM
583
584 rp="Which of these apply, if any?"
585 . UU/myread
586 tans=$ans
587 for file in $tans; do
588 if $test X$file = XPolicy -a -f Policy.sh; then
589 . Policy.sh
590 $cat Policy.sh >> UU/config.sh
591 elif $test -f $src/hints/$file.sh; then
592 . $src/hints/$file.sh
593 $cat $src/hints/$file.sh >> UU/config.sh
0f00356b 594 elif $test X"$tans" = X -o X"$tans" = Xnone ; then
959f3c4c
JH
595 : nothing
596 else
597 : Give one chance to correct a possible typo.
598 echo "$file.sh does not exist"
599 dflt=$file
600 rp="hint to use instead?"
601 . UU/myread
602 for file in $ans; do
603 if $test -f "$src/hints/$file.sh"; then
604 . $src/hints/$file.sh
605 $cat $src/hints/$file.sh >> UU/config.sh
606 elif $test X$ans = X -o X$ans = Xnone ; then
607 : nothing
608 else
609 echo "$file.sh does not exist -- ignored."
610 fi
611 done
612 fi
613 done
614
615 hint=recommended
616 : Remember our hint file for later.
617 if $test -f "$src/hints/$file.sh" ; then
618 hintfile="$file"
619 else
620 hintfile=''
621 fi
622fi
623cd UU
624?X: From here on, we must use $rsrc instead of $src
625@else
626: Get old answers, if there is a config file out there
627hint=default
628hintfile=''
629if test -f ../config.sh; then
630 echo " "
631 rp="I see a config.sh file. Shall I use it to set the defaults?"
632 . ./myread
633 case "$ans" in
634 n*|N*) echo "OK, I'll ignore it.";;
635 *) echo "Fetching default answers from your old config.sh file..." >&4
636 tmp_n="$n"
637 tmp_c="$c"
638 . ../config.sh
639 cp ../config.sh .
640 n="$tmp_n"
641 c="$tmp_c"
642 hint=previous
643 ;;
644 esac
645fi
646@end
647?X: remember, indentation is wrong--RAM
648;;
649*)
650 echo " "
651 echo "Fetching default answers from $config_sh..." >&4
652 tmp_n="$n"
653 tmp_c="$c"
654 cd ..
655?X: preserve symbolic links, if any
656 cp $config_sh config.sh 2>/dev/null
657 chmod +w config.sh
658 . ./config.sh
659 cd UU
660 cp ../config.sh .
661 n="$tmp_n"
662 c="$tmp_c"
663 hint=previous
664 ;;
665esac
666test "$override" && . ./optdef.sh
959f3c4c
JH
667
668: Restore computed paths
669for file in $loclist $trylist; do
670 eval $file="\$_$file"
671done
672
673@if osname || osvers
674cat << EOM
675
676Configure uses the operating system name and version to set some defaults.
677The default value is probably right if the name rings a bell. Otherwise,
678since spelling matters for me, either accept the default or answer "none"
679to leave it blank.
680
681EOM
682@end
683@if osname
684case "$osname" in
685 ''|' ')
686 case "$hintfile" in
687 ''|' '|none) dflt=none ;;
688 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/_.*$//'` ;;
689 esac
690 ;;
691 *) dflt="$osname" ;;
692esac
693rp="Operating system name?"
694. ./myread
695case "$ans" in
696none) osname='' ;;
697*) osname=`echo "$ans" | $sed -e 's/[ ][ ]*/_/g' | ./tr '[A-Z]' '[a-z]'`;;
698esac
699@end
700@if osvers
701@if osname
702echo " "
703@end
704case "$osvers" in
705 ''|' ')
706 case "$hintfile" in
707 ''|' '|none) dflt=none ;;
708 *) dflt=`echo $hintfile | $sed -e 's/\.sh$//' -e 's/^[^_]*//'`
709 dflt=`echo $dflt | $sed -e 's/^_//' -e 's/_/./g'`
710 case "$dflt" in
711 ''|' ') dflt=none ;;
712 esac
713 ;;
714 esac
715 ;;
716 *) dflt="$osvers" ;;
717esac
718rp="Operating system version?"
719. ./myread
720case "$ans" in
721none) osvers='' ;;
722*) osvers="$ans" ;;
723esac
724
725@end
c71449a6
JH
726
727. ./posthint.sh
728