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