rsalz@uunet.uu.net (Rich Salz) (10/18/88)
Submitted-by: lwall@jpl-devvax.jpl.nasa.gov (Larry Wall) Posting-number: Volume 16, Issue 39 Archive-name: dist2/part06 #! /bin/sh # Make a new directory for the dist sources, cd to it, and run kits 1 # thru 7 through sh. When all 7 kits have been run, read README. echo "This is dist 2.0 kit 6 (of 7). If kit 6 is complete, the line" echo '"'"End of kit 6 (of 7)"'" will echo at the end.' echo "" export PATH || (echo "You didn't use sh, you clunch." ; kill $$) mkdir mcon mcon/U pl 2>/dev/null echo Extracting mcon/U/uidtype.U sed >mcon/U/uidtype.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: uidtype.U,v 1.0 87/05/22 12:33:47 lwall Exp $ X?RCS: $Log: uidtype.U,v $ X?RCS: Revision 1.0 87/05/22 12:33:47 lwall X?RCS: Initial revision X?RCS: X?MAKE:uidtype: echo n c Myread Oldconfig Loc contains X?MAKE: -pick add $@ %* X?S:uidtype: X?S: This variable defines UIDTYPE to be something like uid_t, int, X?S: ushort, or whatever type is used to declare user ids in the kernel. X?S:. X?C:UIDTYPE: X?C: This symbol has a value like uid_t, int, ushort, or whatever type is X?C: used to declare user ids in the kernel. X?C:. X?H:?%1:#define UIDTYPE $uidtype /**/ X?H:?%1: X: see what type uids are declared as in the kernel Xcase "$uidtype" in X'') X if $contains 'uid_t;' /usr/include/sys/types.h >/dev/null 2>&1 ; then X dflt='uid_t'; X else X set `grep '_ruid;' /usr/include/sys/user.h 2>/dev/null` unsigned short X case $1 in X unsigned) dflt="$1 $2" ;; X *) dflt="$1" ;; X esac X fi X ;; X*) dflt="$uidtype" X ;; Xesac Xcont=true Xecho " " Xrp="What type are user ids on this system declared as? [$dflt]" X$echo $n "$rp $c" X. myread Xuidtype="$ans" X !STUFFY!FUNK! echo Extracting mcon/U/defeditor.U sed >mcon/U/defeditor.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: defeditor.U,v 2.0 88/06/28 23:16:36 lwall Locked $ X?RCS: $Log: defeditor.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:36 lwall X?RCS: Baseline. X?RCS: X?MAKE:defeditor: test echo n c Myread Oldconfig Loc vi X?MAKE: -pick add $@ %* X?S:defeditor: X?S: This variable contains the eventual value of the DEFEDITOR symbol, X?S: which contains the name of the default editor. X?S:. X?C:DEFEDITOR: X?C: This symbol contains the name of the default editor. X?C:. X?H:?%1:#define DEFEDITOR "$defeditor" /**/ X?H:?%1: X: determine default editor Xcase "$defeditor" in X'') X case "$_vi" in X */*) dflt="$_vi";; X *) dflt=/usr/ucb/vi;; X esac X ;; X*) dflt="$defeditor" X ;; Xesac Xcont=true Xwhile $test "$cont" ; do X echo " " X rp="What is the default editor on your system? [$dflt]" X $echo $n "$rp $c" X . myread X defeditor="$ans" X if test -f $ans; then X cont='' X else X dflt=n X rp="File $ans doesn't exist. Use that name anyway? [$dflt]" X $echo $n "$rp $c" X . myread X dflt='' X case "$ans" in X y*) cont='';; X esac X fi Xdone X !STUFFY!FUNK! echo Extracting mcon/U/sunscanf.U sed >mcon/U/sunscanf.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: sunscanf.U,v 2.0 88/06/28 23:18:31 lwall Locked $ X?RCS: $Log: sunscanf.U,v $ X?RCS:Revision 2.0 88/06/28 23:18:31 lwall X?RCS:Baseline. X?RCS: X?MAKE:sunscanf: cat rm Myread echo n c X?MAKE: -pick add $@ %* X?S:sunscanf: X?S: This variable is set if this system runs with the Sun version X?S: of scanf. X?S:. X?C:SUNSCANF: X?C: This variable is set if this system runs with the Sun version X?C: of scanf. X?C:. X?H:?%1:#$sunscanf SUNSCANF /**/ X?H:?%1: X: check to see what kinda scanf your using. Xecho " " Xecho $n "Checking to see what flavor of scanf you have..." X$cat >scanf.c <<'EOCP' Xmain() X{ X float value; X X sscanf("4.5","%g",&value); X printf("%d\n",value==4.5); X} XEOCP Xif cc scanf.c -o scanf >/dev/null 2>&1 ; then X $echo " " X if $test `scanf` = 0; then X $echo "Hmm.. seems your not running the USG flavor.." X sunscanf="$undef" X else X $echo "Uh... your running the USG flavor of scanf" X sunscanf="$define" X fi Xelse X $echo " I can't seem to compile the test program... " X sunscanf="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/contains.U sed >mcon/U/contains.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: contains.U,v 2.0 88/06/28 23:14:11 lwall Locked $ X?RCS: $Log: contains.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:11 lwall X?RCS: Baseline. X?RCS: X?MAKE:contains: Myinit X?MAKE: -pick add $@ %* X?S:contains: X?S: This variable holds the command to do a grep with a proper return X?S: status. On most sane systems it is simply "grep". On insane systems X?S: it is a grep followed by a cat followed by a test. This variable X?S: is primarily for the use of other Configure units. X?S:. X: some greps do not return status, grrr. Xecho "grimblepritz" >grimble Xif grep blurfldyick grimble >/dev/null 2>&1 ; then X contains=contains Xelif grep grimblepritz grimble >/dev/null 2>&1 ; then X contains=grep Xelse X contains=contains Xfi Xrm -f grimble X: the following should work in any shell Xcase "$contains" in Xcontains*) X echo " " X echo "AGH! Grep doesn't return a status. Attempting remedial action." X cat >contains <<'EOSS' Xgrep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp XEOSS Xchmod +x contains Xesac X !STUFFY!FUNK! echo Extracting mcon/U/d_sgndchr.U sed >mcon/U/d_sgndchr.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_sgndchr.U,v 2.0 88/06/28 23:15:43 lwall Locked $ X?RCS: $Log: d_sgndchr.U,v $ X?RCS: Revision 2.0 88/06/28 23:15:43 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_sgndchr: cat rm X?MAKE: -pick add $@ %* X?S:d_sgndchr: X?S: This variable conditionally defines the SIGNEDCHAR symbol, which X?S: indicates to the C program that signed characters are available. X?S:. X?C:SIGNEDCHAR: X?C: This symbol, if defined, indicates that characters are a signed type. X?C: If not defined, things declared as signed characters (and that make X?C: use of negative values) should probably be declared as shorts instead. X?C:. X?H:?%1:#$d_sgndchr SIGNEDCHAR /**/ X?H:?%1: X: check for signed chars Xecho " " Xecho "Checking to see if your C compiler can do signed chars..." X$cat >try.c <<'EOCP' Xmain() X{ X char c = 0; X X c--; X exit(c >= 0); X} XEOCP Xcc -o a.out try.c Xif a.out; then X d_sgndchr="$define" X echo "It certainly can." Xelse X d_sgndchr="$undef" X echo "It can't. I'll have to make some things type short." Xfi X$rm -f try.* a.out X !STUFFY!FUNK! echo Extracting mcon/U/d_voidsig.U sed >mcon/U/d_voidsig.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_voidsig.U,v 2.0 88/06/28 23:16:29 lwall Locked $ X?RCS: $Log: d_voidsig.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:29 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_voidsig: contains X?MAKE: -pick add $@ %* X?S:d_voidsig: X?S: This variable conditionally defines VOIDSIG if this system X?S: declares "void (*signal())()" in signal.h. The old way was to X?S: declare it as "int (*signal())()". X?S:. X?C:VOIDSIG: X?C: This symbol is defined if this system declares "void (*signal())()" in X?C: signal.h. The old way was to declare it as "int (*signal())()". It X?C: is up to the package author to declare things correctly based on the X?C: symbol. X?C:. X?H:?%1:#$d_voidsig VOIDSIG /**/ X?H:?%1: X: see if signal is declared as pointer to function returning int or void Xecho " " Xif $contains 'void.*signal' /usr/include/signal.h >/dev/null 2>&1 ; then X echo "You have void (*signal())() instead of int." X d_voidsig="$define" Xelse X echo "You have int (*signal())() instead of void." X d_voidsig="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/n.U sed >mcon/U/n.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: n.U,v 2.0 88/06/28 23:17:30 lwall Locked $ X?RCS: $Log: n.U,v $ X?RCS: Revision 2.0 88/06/28 23:17:30 lwall X?RCS: Baseline. X?RCS: X?MAKE:n c: contains X?MAKE: -pick add $@ %* X?S:n: X?S: This variable contains the -n flag if that is what causes the echo X?S: command to suppress newline. Otherwise it is null. Correct usage is X?S: $echo $n "prompt for a question: $c". X?S:. X?S:c: X?S: This variable contains the \c string if that is what causes the echo X?S: command to suppress newline. Otherwise it is null. Correct usage is X?S: $echo $n "prompt for a question: $c". X?S:. X: first determine how to suppress newline on echo command Xecho "Checking echo to see how to suppress newlines..." X(echo "hi there\c" ; echo " ") >.echotmp Xif $contains c .echotmp >/dev/null 2>&1 ; then X echo "...using -n." X n='-n' X c='' Xelse X cat <<'EOM' X...using \c XEOM X n='' X c='\c' Xfi Xecho $n "Type carriage return to continue. Your cursor should be here-->$c" Xread ans Xrm -f .echotmp X !STUFFY!FUNK! echo Extracting mcon/U/bin.U sed >mcon/U/bin.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: bin.U,v 2.0 88/06/28 23:14:02 lwall Locked $ X?RCS: $Log: bin.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:02 lwall X?RCS: Baseline. X?RCS: X?MAKE:bin: test echo n c Myread Loc Filexp Oldconfig X?MAKE: -pick add $@ %* X?S:bin: X?S: This variable holds the name of the directory in which the user wants X?S: to put publicly executable images for the package in question. It X?S: is most often a local directory such as /usr/local/bin. X?S:. X: determine where public executables go Xcase "$bin" in X'') X dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin` X ;; X*) dflt="$bin" X ;; Xesac Xcont=true Xwhile $test "$cont" ; do X echo " " X rp="Where do you want to put the public executables? [$dflt]" X $echo $n "$rp $c" X . myread X bin="$ans" X bin=`filexp $bin` X if test -d $bin; then X cont='' X else X dflt=n X rp="Directory $bin doesn't exist. Use that name anyway? [$dflt]" X $echo $n "$rp $c" X . myread X dflt='' X case "$ans" in X y*) cont='';; X esac X fi Xdone X !STUFFY!FUNK! echo Extracting mcon/U/d_strctcpy.U sed >mcon/U/d_strctcpy.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_strctcpy.U,v 2.0 88/06/28 23:16:02 lwall Locked $ X?RCS: $Log: d_strctcpy.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:02 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_strctcpy: cat rm X?MAKE: -pick add $@ %* X?S:d_strctcpy: X?S: This variable conditionally defines the STRUCTCOPY symbol, which X?S: indicates to the C program that this C compiler knows how to copy X?S: structures. X?S:. X?C:STRUCTCOPY: X?C: This symbol, if defined, indicates that this C compiler knows how X?C: to copy structures. If undefined, you'll need to use a block copy X?C: routine of some sort instead. X?C:. X?H:?%1:#$d_strctcpy STRUCTCOPY /**/ X?H:?%1: X: check for structure copying Xecho " " Xecho "Checking to see if your C compiler can copy structs..." X$cat >try.c <<'EOCP' Xmain() X{ X struct blurfl { X int dyick; X } foo, bar; X X foo = bar; X} XEOCP Xif cc -c try.c >/dev/null 2>&1 ; then X d_strctcpy="$define" X echo "Yup, it can." Xelse X d_strctcpy="$undef" X echo "Nope, it can't." Xfi X$rm -f try.* X !STUFFY!FUNK! echo Extracting mcon/U/d_rdchk.U sed >mcon/U/d_rdchk.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_rdchk.U,v 2.0 88/06/28 23:15:35 lwall Locked $ X?RCS: $Log: d_rdchk.U,v $ X?RCS: Revision 2.0 88/06/28 23:15:35 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_rdchk: contains Guess X?MAKE: -pick add $@ %* X?S:d_rdchk: X?S: This variable conditionally defines the RDCHK symbol, which X?S: indicates to the C program that the rdchk() routine is available X?S: to find out if there is input pending on an IO channel. X?S:. X?C:RDCHK: X?C: This symbol, if defined, indicates that the rdchk routine is available X?C: to find out if there is input pending on an IO channel. Generally X?C: the routine is used only if FIONREAD and O_NDELAY aren't available. X?C:. X?H:?%1:#$d_rdchk RDCHK /**/ X?H:?%1: X: see if rdchk exists Xecho " " Xif $contains '^rdchk$' libc.list >/dev/null 2>&1; then X echo 'rdchk() found.' X d_rdchk="$define" Xelse X if v7; then X echo "rdchk() not found--you'd better have FIONREAD or O_NDELAY." X else X echo 'rdchk() not found.' X fi X d_rdchk="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/Myread.U sed >mcon/U/Myread.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Myread.U,v 2.0 88/06/28 23:13:39 lwall Locked $ X?X: X?X: This unit produces a bit of shell code that must be dotted in in order X?X: to do a read. It allows for shell escapes and default assignment. X?X: X?RCS: $Log: Myread.U,v $ X?RCS: Revision 2.0 88/06/28 23:13:39 lwall X?RCS: Baseline. X?RCS: X?MAKE:Myread: n c X?MAKE: -pick add $@ %* X: now set up to do reads with possible shell escape and default assignment Xcat <<EOSC >myread Xcase "\$fastread" in Xyes) ans=''; echo " " ;; X*) ans='!';; Xesac Xwhile expr "X\$ans" : "X!" >/dev/null; do X read ans X case "\$ans" in X !) X sh X echo " " X?X: The $n and $c below are substituted before Loc does its silly echo check X?X: so don't put a $ on the echo below so we get builtin, even if $echo is X?X: pointing to /bin/echo. X echo $n "\$rp $c" X ;; X !*) X set \`expr "X\$ans" : "X!\(.*\)\$"\` X sh -c "\$*" X echo " " X echo $n "\$rp $c" X ;; X esac Xdone Xrp='Your answer:' Xcase "\$ans" in X'') ans="\$dflt";; Xesac XEOSC X !STUFFY!FUNK! echo Extracting mcon/U/d_tminsys.U sed >mcon/U/d_tminsys.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_tminsys.U,v 2.0 88/06/28 23:16:11 lwall Locked $ X?RCS: $Log: d_tminsys.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:11 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_tminsys: contains X?MAKE: -pick add $@ %* X?S:d_tminsys: X?S: This variable conditionally defines TMINSYS if this system X?S: declares "struct tm" in <sys/time.h> rather than <time.h>. X?S:. X?C:TMINSYS: X?C: This symbol is defined if this system declares "struct tm" in X?C: in <sys/time.h> rather than <time.h>. We can't just say X?C: -I/usr/include/sys because some systems have both time files, and X?C: the -I trick gets the wrong one. X?C:. X?H:?%1:#$d_tminsys TMINSYS /**/ X?H:?%1: X: see if struct tm is defined in sys/time.h Xecho " " Xif $contains 'struct tm' /usr/include/time.h >/dev/null 2>&1 ; then X echo "You have struct tm defined in <time.h> rather than <sys/time.h>." X d_tminsys="$undef" Xelse X echo "You have struct tm defined in <sys/time.h> rather than <time.h>." X d_tminsys="$define" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_statblks.U sed >mcon/U/d_statblks.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_statblks.U,v 2.0 88/06/28 23:15:54 lwall Locked $ X?RCS: $Log: d_statblks.U,v $ X?RCS: Revision 2.0 88/06/28 23:15:54 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_statblks: contains X?MAKE: -pick add $@ %* X?S:d_statblks: X?S: This variable conditionally defines STATBLOCKS if this system X?S: has a stat structure declaring st_blksize and st_blocks. X?S:. X?C:STATBLOCKS: X?C: This symbol is defined if this system has a stat structure declaring X?C: st_blksize and st_blocks. X?C:. X?H:?%1:#$d_statblks STATBLOCKS /**/ X?H:?%1: X: see if stat knows about block sizes Xecho " " Xif $contains 'st_blocks;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then X if $contains 'st_blksize;' /usr/include/sys/stat.h >/dev/null 2>&1 ; then X echo "Your stat knows about block sizes." X d_statblks="$define" X else X echo "Your stat doesn't know about block sizes." X d_statblks="$undef" X fi Xelse X echo "Your stat doesn't know about block sizes." X d_statblks="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_raster.U sed >mcon/U/d_raster.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_raster.U,v 2.0 88/06/28 23:15:32 lwall Locked $ X?RCS: $Log: d_raster.U,v $ X?RCS:Revision 2.0 88/06/28 23:15:32 lwall X?RCS:Baseline. X?RCS: X?RCS: X?RCS: Revision 1.0 87/05/22 12:32:25 siegel X?RCS: Initial revision X?RCS: X?MAKE:d_raster: contains echo n Myread c X?MAKE: -pick add $@ %* X?S:d_raster: X?S: set to be the compile flag if this is a raster tech machine X?S:. X?C:RASTER_TEK: X?C: Defined if this is a rastertech machine. X?C:. X?H:?%1:#$d_raster RASTER_TEK /**/ X?H:?%1: X X: See if this is a raster tech machine. X Xecho " " Xd_raster='/*undef' Xif $test -r /dev/mirage; then X $echo "You seem to have a mirage device... this is normally" X $echo "associated with a raster technologies graphics workstation." X $echo " " X $echo "Is that what this is, and if it is," X X dflt='y' X $echo $n "should I compile it in? [$dflt] $c" X rp="use raster tech? [$dflt] " X . myread X if $test $ans = "y"; then X d_raster='define' X fi Xfi X !STUFFY!FUNK! echo Extracting mcon/U/Init.U sed >mcon/U/Init.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Init.U,v 2.0 88/06/28 23:13:17 lwall Locked $ X?X: X?X: This file initializes certain default variables used by Configure. They X?X: may be overridden or added to by definitions in Myinit.U. X?X: X?RCS: $Log: Init.U,v $ X?RCS: Revision 2.0 88/06/28 23:13:17 lwall X?RCS: Baseline. X?RCS: X?MAKE:Init define: Null package X?MAKE: -pick add $@ %* X?MAKE: -pick weed $@ ./.Init Xecho " " Xecho "Beginning of configuration questions for $package kit." X: Eunice requires " " instead of "", can you believe it Xecho " " X Xdefine='define' Xundef='undef' Xlibpth='/usr/lib /usr/local/lib /lib' Xsmallmach='pdp11 i8086 z8000 i80286 iAPX286' Xrmlist='kit[1-9]isdone kit[1-9][0-9]isdone' Xtrap 'echo " "; rm -f $rmlist; exit 1' 1 2 3 X X: We must find out about Eunice early Xeunicefix=':' Xif test -f /etc/unixtovms; then X eunicefix=/etc/unixtovms Xfi Xif test -f /etc/unixtovms.exe; then X eunicefix=/etc/unixtovms.exe Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_stdstdio.U sed >mcon/U/d_stdstdio.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_stdstdio.U,v 2.0 88/06/28 23:15:58 lwall Locked $ X?RCS: $Log: d_stdstdio.U,v $ X?RCS: Revision 2.0 88/06/28 23:15:58 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_stdstdio: contains X?MAKE: -pick add $@ %* X?S:d_stdstdio: X?S: This variable conditionally defines STDSTDIO if this system X?S: has a FILE structure declaring _ptr and _cnt in stdio.h. X?S:. X?C:STDSTDIO: X?C: This symbol is defined if this system has a FILE structure declaring X?C: _ptr and _cnt in stdio.h. X?C:. X?H:?%1:#$d_stdstdio STDSTDIO /**/ X?H:?%1: X: see if stdio is really std Xecho " " Xif $contains 'char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then X if $contains '_cnt;' /usr/include/stdio.h >/dev/null 2>&1 ; then X echo "Your stdio is pretty std." X d_stdstdio="$define" X else X echo "Your stdio isn't very std." X d_stdstdio="$undef" X fi Xelse X echo "Your stdio isn't very std." X d_stdstdio="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_getgrps.U sed >mcon/U/d_getgrps.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_getgrps.U,v 2.0 88/06/29 00:18:51 lwall Locked $ X?RCS: $Log: d_getgrps.U,v $ X?RCS: Revision 2.0 88/06/29 00:18:51 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_getgrps: contains Guess X?MAKE: -pick add $@ %* X?S:d_getgrps: X?S: This variable conditionally defines the GETGROUPS symbol, which X?S: indicates to the C program that the getgroups() routine is available X?S: to get the list of process groups. X?S:. X?C:GETGROUPS: X?C: This symbol, if defined, indicates that the getgroups() routine is X?C: available to get the list of process groups. If unavailable, multiple X?C: groups are probably not supported. X?C:. X?H:?%1:#$d_getgrps GETGROUPS /**/ X?H:?%1: X: see if getgroups exists Xecho " " Xif $contains '^getgroups$' libc.list >/dev/null 2>&1; then X echo 'getgroups() found.' X d_getgrps="$define" Xelse X echo 'getgroups() not found.' X d_getgrps="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/maildir.U sed >mcon/U/maildir.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: maildir.U,v 2.0 88/06/28 23:17:02 lwall Locked $ X?RCS: $Log: maildir.U,v $ X?RCS: Revision 2.0 88/06/28 23:17:02 lwall X?RCS: Baseline. X?RCS: X?MAKE:maildir: test echo n c Myread Loc Filexp Oldconfig X?MAKE: -pick add $@ %* X?S:maildir: X?S: This variable contains the name of the directory in which mail is X?S: spooled. X?S:. X: determine where mail is spooled Xcase "$maildir" in X'') X dflt=`loc . /usr/spool/mail /usr/spool/mail /usr/mail` X ;; X*) dflt="$maildir" X ;; Xesac Xcont=true Xwhile $test "$cont" ; do X echo " " X rp="Where is yet-to-be-read mail spooled? [$dflt]" X $echo $n "$rp $c" X . myread X maildir=`filexp "$ans"` X if test -d $maildir; then X cont='' X else X dflt=n X rp="Directory $maildir doesn't exist. Use that name anyway? [$dflt]" X $echo $n "$rp $c" X . myread X dflt='' X case "$ans" in X y*) cont='';; X esac X fi Xdone X !STUFFY!FUNK! echo Extracting pl/rcsargs.pl sed >pl/rcsargs.pl <<'!STUFFY!FUNK!' -e 's/X//' Xsub rcsargs { X local($result) = ''; X local($_); X while ($_ = shift(@_)) { X if ($_ =~ /^-/) { X $result .= $_ . ' '; X } X elsif ($#_ >= 0 && do equiv($_,$_[0])) { X $result .= $_ . ' ' . $_[0] . ' '; X shift(@_); X } X else { X $result .= $_ . ' ' . do other($_) . ' '; X } X } X $result; X} X Xsub equiv { X local($s1, $s2) = @_; X $s1 =~ s|.*/||; X $s2 =~ s|.*/||; X if ($s1 eq $s2) { X 0; X } X elsif ($s1 =~ s/$RCSEXT$// || $s2 =~ s/$RCSEXT$//) { X $s1 eq $s2; X } X else { X 0; X } X} X Xsub other { X local($s1) = @_; X ($dir,$file) = ('./',$s1) unless local($dir,$file) = ($s1 =~ m|(.*/)(.*)|); X local($wasrcs) = ($file =~ s/$RCSEXT$//); X if ($wasrcs) { X `mkdir $dir` unless -d $dir; X $dir =~ s|RCS/||; X } X else { X $dir .= 'RCS/'; X `mkdir $dir` unless -d $dir; X $file .= $RCSEXT; X } X "$dir$file"; X} X !STUFFY!FUNK! echo Extracting mcon/U/d_memcpy.U sed >mcon/U/d_memcpy.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_memcpy.U,v 2.0 88/06/29 00:19:17 lwall Locked $ X?RCS: $Log: d_memcpy.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:17 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_memcpy: contains Guess X?MAKE: -pick add $@ %* X?S:d_memcpy: X?S: This variable conditionally defines the MEMCPY symbol, which X?S: indicates to the C program that the memcpy() routine is available X?S: to copy blocks of memory. X?S:. X?C:MEMCPY: X?C: This symbol, if defined, indicates that the memcpy routine is available X?C: to copy blocks of memory. Otherwise you should probably use bcopy(). X?C: If neither is defined, roll your own. X?C:. X?H:?%1:#$d_memcpy MEMCPY /**/ X?H:?%1: X: see if memcpy exists Xecho " " Xif $contains '^memcpy$' libc.list >/dev/null 2>&1; then X echo 'memcpy() found.' X d_memcpy="$define" Xelse X echo 'memcpy() not found.' X d_memcpy="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_killpg.U sed >mcon/U/d_killpg.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_killpg.U,v 2.0 88/06/29 00:19:10 lwall Locked $ X?RCS: $Log: d_killpg.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:10 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_killpg: contains Guess X?MAKE: -pick add $@ %* X?S:d_killpg: X?S: This variable conditionally defines the KILLPG symbol, which X?S: indicates to the C program that the killpg() routine is available X?S: to kill process groups. X?S:. X?C:KILLPG: X?C: This symbol, if defined, indicates that the killpg routine is available X?C: to kill process groups. If unavailable, you probably should use kill X?C: with a negative process number. X?C:. X?H:?%1:#$d_killpg KILLPG /**/ X?H:?%1: X: see if killpg exists Xecho " " Xif $contains '^killpg$' libc.list >/dev/null 2>&1; then X echo 'killpg() found.' X d_killpg="$define" Xelse X echo 'killpg() not found.' X d_killpg="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_seteuid.U sed >mcon/U/d_seteuid.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_seteuid.U,v 2.0 88/06/29 00:19:46 lwall Locked $ X?RCS: $Log: d_seteuid.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:46 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_seteuid: contains Guess X?MAKE: -pick add $@ %* X?S:d_seteuid: X?S: This variable conditionally defines the SETEUID symbol, which X?S: indicates to the C program that the seteuid() routine is available X?S: to change the effective uid of the current program. X?S:. X?C:SETEUID: X?C: This symbol, if defined, indicates that the seteuid routine is available X?C: to change the effective uid of the current program. X?C:. X?H:?%1:#$d_seteuid SETEUID /**/ X?H:?%1: X: see if seteuid exists Xecho " " Xif $contains '^seteuid$' libc.list >/dev/null 2>&1; then X echo 'seteuid() found.' X d_seteuid="$define" Xelse X echo 'seteuid() not found.' X d_seteuid="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_getpwent.U sed >mcon/U/d_getpwent.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_getpwent.U,v 2.0 88/06/28 23:14:47 lwall Locked $ X?RCS: $Log: d_getpwent.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:47 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_getpwent: contains libc X?MAKE: -pick add $@ %* X?S:d_getpwent: X?S: This variable conditionally defines the GETPWENT symbol, which X?S: indicates to the C program that it should use the getpwent() X?S: routine instead of the getpw() routine. X?S:. X?C:GETPWENT: X?C: This symbol, if defined, indicates that the getpwent() routine X?C: should be used instead of the getpw() routine. X?C:. X?H:?%1:#$d_getpwent GETPWENT /**/ X?H:?%1: X: see if there is a getpw Xecho " " Xif $contains '^getpw$' libc.list >/dev/null 2>&1 ; then X echo "getpw() found." X d_getpwent="$undef" Xelse X echo "No getpw() found--will use getpwent() instead." X d_getpwent="$define" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_setegid.U sed >mcon/U/d_setegid.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_setegid.U,v 2.0 88/06/29 00:19:34 lwall Locked $ X?RCS: $Log: d_setegid.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:34 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_setegid: contains Guess X?MAKE: -pick add $@ %* X?S:d_setegid: X?S: This variable conditionally defines the SETEGID symbol, which X?S: indicates to the C program that the setegid() routine is available X?S: to change the effective gid of the current program. X?S:. X?C:SETEGID: X?C: This symbol, if defined, indicates that the setegid routine is available X?C: to change the effective gid of the current program. X?C:. X?H:?%1:#$d_setegid SETEGID /**/ X?H:?%1: X: see if setegid exists Xecho " " Xif $contains '^setegid$' libc.list >/dev/null 2>&1; then X echo 'setegid() found.' X d_setegid="$define" Xelse X echo 'setegid() not found.' X d_setegid="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_setruid.U sed >mcon/U/d_setruid.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_setruid.U,v 2.0 88/06/29 00:19:56 lwall Locked $ X?RCS: $Log: d_setruid.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:56 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_setruid: contains Guess X?MAKE: -pick add $@ %* X?S:d_setruid: X?S: This variable conditionally defines the SETRUID symbol, which X?S: indicates to the C program that the setruid() routine is available X?S: to change the real uid of the current program. X?S:. X?C:SETRUID: X?C: This symbol, if defined, indicates that the setruid routine is available X?C: to change the real uid of the current program. X?C:. X?H:?%1:#$d_setruid SETRUID /**/ X?H:?%1: X: see if setruid exists Xecho " " Xif $contains '^setruid$' libc.list >/dev/null 2>&1; then X echo 'setruid() found.' X d_setruid="$define" Xelse X echo 'setruid() not found.' X d_setruid="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_setrgid.U sed >mcon/U/d_setrgid.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_setrgid.U,v 2.0 88/06/29 00:19:52 lwall Locked $ X?RCS: $Log: d_setrgid.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:52 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_setrgid: contains Guess X?MAKE: -pick add $@ %* X?S:d_setrgid: X?S: This variable conditionally defines the SETRGID symbol, which X?S: indicates to the C program that the setrgid() routine is available X?S: to change the real gid of the current program. X?S:. X?C:SETRGID: X?C: This symbol, if defined, indicates that the setrgid routine is available X?C: to change the real gid of the current program. X?C:. X?H:?%1:#$d_setrgid SETRGID /**/ X?H:?%1: X: see if setrgid exists Xecho " " Xif $contains '^setrgid$' libc.list >/dev/null 2>&1; then X echo 'setrgid() found.' X d_setrgid="$define" Xelse X echo 'setrgid() not found.' X d_setrgid="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_fchown.U sed >mcon/U/d_fchown.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_fchown.U,v 2.0 88/06/29 00:18:44 lwall Locked $ X?RCS: $Log: d_fchown.U,v $ X?RCS: Revision 2.0 88/06/29 00:18:44 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_fchown: contains Guess X?MAKE: -pick add $@ %* X?S:d_fchown: X?S: This variable conditionally defines the FCHOWN symbol, which X?S: indicates to the C program that the fchown() routine is available X?S: to change ownership of opened files. X?S:. X?C:FCHOWN: X?C: This symbol, if defined, indicates that the fchown routine is available X?C: to change ownership of opened files. If unavailable, use chown(). X?C:. X?H:?%1:#$d_fchown FCHOWN /**/ X?H:?%1: X: see if fchown exists Xecho " " Xif $contains '^fchown$' libc.list >/dev/null 2>&1; then X echo 'fchown() found.' X d_fchown="$define" Xelse X echo 'fchown() not found.' X d_fchown="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_rename.U sed >mcon/U/d_rename.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_rename.U,v 2.0 88/06/29 00:19:24 lwall Locked $ X?RCS: $Log: d_rename.U,v $ X?RCS: Revision 2.0 88/06/29 00:19:24 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_rename: contains Guess X?MAKE: -pick add $@ %* X?S:d_rename: X?S: This variable conditionally defines the RENAME symbol, which X?S: indicates to the C program that the rename() routine is available X?S: to rename files. X?S:. X?C:RENAME: X?C: This symbol, if defined, indicates that the rename routine is available X?C: to rename files. Otherwise you should do the unlink(), link(), unlink() X?C: trick. X?C:. X?H:?%1:#$d_rename RENAME /**/ X?H:?%1: X: see if rename exists Xecho " " Xif $contains '^rename$' libc.list >/dev/null 2>&1; then X echo 'rename() found.' X d_rename="$define" Xelse X echo 'rename() not found.' X d_rename="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/stdchar.U sed >mcon/U/stdchar.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: stdchar.U,v 2.0 88/06/28 23:18:26 lwall Locked $ X?RCS: $Log: stdchar.U,v $ X?RCS: Revision 2.0 88/06/28 23:18:26 lwall X?RCS: Baseline. X?RCS: X?MAKE:stdchar: contains X?MAKE: -pick add $@ %* X?S:stdchar: X?S: This variable conditionally defines STDCHAR to be the type of char X?S: used in stdio.h. It has the values "unsigned char" or "char". X?S:. X?C:STDCHAR: X?C: This symbol is defined to be the type of char used in stdio.h. X?C: It has the values "unsigned char" or "char". X?C:. X?H:?%1:#define STDCHAR $stdchar /**/ X?H:?%1: X: see what type of char stdio uses. Xecho " " Xif $contains 'unsigned.*char.*_ptr;' /usr/include/stdio.h >/dev/null 2>&1 ; then X echo "Your stdio uses unsigned chars." X stdchar="unsigned char" Xelse X echo "Your stdio uses signed chars." X stdchar="char" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/Oldconfig.U sed >mcon/U/Oldconfig.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Oldconfig.U,v 2.0 88/06/28 23:13:47 lwall Locked $ X?X: X?X: This unit tries to remember what we did last time we ran Configure, mostly X?X: for the sake of setting defaults. X?X: X?RCS: $Log: Oldconfig.U,v $ X?RCS: Revision 2.0 88/06/28 23:13:47 lwall X?RCS: Baseline. X?RCS: X?MAKE:Oldconfig: Instruct Myread X?MAKE: -pick add $@ %* X: get old answers, if there is a config file out there Xif test -f ../config.sh; then X echo " " X dflt=y X rp="I see a config.sh file. Did Configure make it on THIS system? [$dflt]" X?X: No $echo wanted here. X echo $n "$rp $c" X . myread X case "$ans" in X n*) echo "OK, I'll ignore it.";; X *) echo "Fetching default answers from your old config.sh file..." X tmp="$n" X ans="$c" X . ../config.sh X n="$tmp" X c="$ans" X ;; X esac Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_fchmod.U sed >mcon/U/d_fchmod.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_fchmod.U,v 2.0 88/06/29 00:18:32 lwall Locked $ X?RCS: $Log: d_fchmod.U,v $ X?RCS: Revision 2.0 88/06/29 00:18:32 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_fchmod: contains Guess X?MAKE: -pick add $@ %* X?S:d_fchmod: X?S: This variable conditionally defines the FCHMOD symbol, which X?S: indicates to the C program that the fchmod() routine is available X?S: to change mode of opened files. X?S:. X?C:FCHMOD: X?C: This symbol, if defined, indicates that the fchmod routine is available X?C: to change mode of opened files. If unavailable, use chmod(). X?C:. X?H:?%1:#$d_fchmod FCHMOD /**/ X?H:?%1: X: see if fchmod exists Xecho " " Xif $contains '^fchmod$' libc.list >/dev/null 2>&1; then X echo 'fchmod() found.' X d_fchmod="$define" Xelse X echo 'fchmod() not found.' X d_fchmod="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/startsh.U sed >mcon/U/startsh.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: startsh.U,v 2.0 88/06/28 23:18:22 lwall Locked $ X?RCS: $Log: startsh.U,v $ X?RCS: Revision 2.0 88/06/28 23:18:22 lwall X?RCS: Baseline. X?RCS: X?MAKE:startsh: sharpbang eunicefix X?MAKE: -pick add $@ %* X?S:startsh: X?S: This variable contains the string to put on the front of a shell X?S: script to make sure (hopefully) that it runs with sh and not some X?S: other shell. X?S:. X: figure out how to guarantee sh startup Xecho " " Xecho "Checking out how to guarantee sh startup..." Xstartsh=$sharpbang'/bin/sh' Xecho "Let's see if '$startsh' works..." Xcat >try <<EOSS X$startsh Xset abc Xtest "$?abc" != 1 XEOSS X Xchmod +x try X$eunicefix try Xif try; then X echo "Yup, it does." Xelse X echo "Nope. You may have to fix up the shell scripts to make sure sh runs them." Xfi Xrm -f try today X !STUFFY!FUNK! echo Extracting mcon/U/d_bcopy.U sed >mcon/U/d_bcopy.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_bcopy.U,v 2.0 88/06/28 23:14:16 lwall Locked $ X?RCS: $Log: d_bcopy.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:16 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_bcopy: contains Guess X?MAKE: -pick add $@ %* X?S:d_bcopy: X?S: This variable conditionally defines the BCOPY symbol, which X?S: indicates to the C program that the bcopy() routine is available X?S: to copy blocks of memory. X?S:. X?C:BCOPY: X?C: This symbol, if defined, indicates that the bcopy routine is available X?C: to copy blocks of memory. Otherwise you should probably use memcpy(). X?C:. X?H:?%1:#$d_bcopy BCOPY /**/ X?H:?%1: X: see if bcopy exists Xecho " " Xif $contains '^bcopy$' libc.list >/dev/null 2>&1; then X echo 'bcopy() found.' X d_bcopy="$define" Xelse X echo 'bcopy() not found.' X d_bcopy="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_ioctl.U sed >mcon/U/d_ioctl.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_ioctl.U,v 2.0 88/06/28 23:15:08 lwall Locked $ X?RCS: $Log: d_ioctl.U,v $ X?RCS: Revision 2.0 88/06/28 23:15:08 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_ioctl: test X?MAKE: -pick add $@ %* X?S:d_ioctl: X?S: This variable conditionally defines the IOCTL symbol, which X?S: indicates to the C program that sys/ioctl.h exists and should X?S: be included. X?S:. X?C:IOCTL: X?C: This symbol, if defined, indicates that sys/ioctl.h exists and should X?C: be included. X?C:. X?H:?%1:#$d_ioctl IOCTL /**/ X?H:?%1: X: see if ioctl defs are in sgtty/termio or sys/ioctl Xecho " " Xif $test -r /usr/include/sys/ioctl.h ; then X d_ioctl="$define" X echo "sys/ioctl.h found." Xelse X d_ioctl="$undef" X echo "sys/ioctl.h not found, assuming ioctl args are defined in sgtty.h." Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_symlink.U sed >mcon/U/d_symlink.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_symlink.U,v 2.0 88/06/28 23:16:06 lwall Locked $ X?RCS: $Log: d_symlink.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:06 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_symlink: contains Guess X?MAKE: -pick add $@ %* X?S:d_symlink: X?S: This variable conditionally defines the SYMLINK symbol, which X?S: indicates to the C program that the symlink() routine is available X?S: to create symbolic links. X?S:. X?C:SYMLINK: X?C: This symbol, if defined, indicates that the symlink routine is available X?C: to create symbolic links. X?C:. X?H:?%1:#$d_symlink SYMLINK /**/ X?H:?%1: X: see if symlink exists Xecho " " Xif $contains '^symlink$' libc.list >/dev/null 2>&1; then X echo 'symlink() found.' X d_symlink="$define" Xelse X echo 'symlink() not found.' X d_symlink="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/libnm.U sed >mcon/U/libnm.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: libnm.U,v 2.0 88/06/28 23:16:55 lwall Locked $ X?RCS: $Log: libnm.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:55 lwall X?RCS: Baseline. X?RCS: X?MAKE:libnm: test Loc X?MAKE: -pick add $@ %* X?S:libnm X?S: This variable contains the argument to pass to the loader in order X?S: to get the new math library routines. If there is no new math X?S: library, it is null. X?S:. X: see if we should include -lnm Xecho " " Xif $test -r /usr/lib/libnm.a || $test -r /usr/local/lib/libnm.a ; then X echo "New math library found." X libnm='-lnm' Xelse X ans=`loc libnm.a x $libpth` X case "$ans" in X x) X echo "No nm library found--the normal math library will have to do." X libnm='' X ;; X *) X echo "New math library found in $ans." X libnm="$ans" X ;; X esac Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_crypt.U sed >mcon/U/d_crypt.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_crypt.U,v 2.0 88/06/28 23:14:25 lwall Locked $ X?RCS: $Log: d_crypt.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:25 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_crypt: contains Guess X?MAKE: -pick add $@ %* X?S:d_crypt: X?S: This variable conditionally defines the CRYPT symbol, which X?S: indicates to the C program that the crypt() routine is available X?S: to encrypt passwords and the like. X?S:. X?C:CRYPT: X?C: This symbol, if defined, indicates that the crypt routine is available X?C: to encrypt passwords and the like. X?C:. X?H:?%1:#$d_crypt CRYPT /**/ X?H:?%1: X: see if crypt exists Xecho " " Xif $contains '^crypt$' libc.list >/dev/null 2>&1; then X echo 'crypt() found.' X d_crypt="$define" Xelse X echo 'crypt() not found.' X d_crypt="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_strcspn.U sed >mcon/U/d_strcspn.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_strcspn.U,v 2.0 88/06/29 00:20:02 lwall Locked $ X?RCS: $Log: d_strcspn.U,v $ X?RCS: Revision 2.0 88/06/29 00:20:02 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_strcspn: contains Guess X?MAKE: -pick add $@ %* X?S:d_strcspn: X?S: This variable conditionally defines the STRCSPN symbol, which X?S: indicates to the C program that the strcspn() routine is available X?S: to scan strings. X?S:. X?C:STRCSPN: X?C: This symbol, if defined, indicates that the strcspn routine is available X?C: to scan strings. X?C:. X?H:?%1:#$d_strcspn STRCSPN /**/ X?H:?%1: X: see if strcspn exists Xecho " " Xif $contains '^strcspn$' libc.list >/dev/null 2>&1; then X echo 'strcspn() found.' X d_strcspn="$define" Xelse X echo 'strcspn() not found.' X d_strcspn="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_ftime.U sed >mcon/U/d_ftime.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_ftime.U,v 2.0 88/06/28 23:14:37 lwall Locked $ X?RCS: $Log: d_ftime.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:37 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_ftime: contains X?MAKE: -pick add $@ %* X?S:d_ftime: X?S: This variable conditionally defines the FTIMER symbol, which indicates X?S: that the ftime() routine exists. The ftime() routine is basically X?S: a sub-second accuracy clock. X?S:. X?C:FTIMER: X?C: This symbol, if defined, indicates that the ftime() routine exists. X?C:. X?H:?%1:#$d_ftime FTIMER /**/ X?H:?%1: X: see if ftime exists Xecho " " Xif $contains '^ftime$' libc.list >/dev/null 2>&1; then X echo 'ftime() found.' X d_ftime="$define" Xelse X echo 'ftime() not found--timing may be less accurate.' X d_ftime="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_vfork.U sed >mcon/U/d_vfork.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_vfork.U,v 2.0 88/06/28 23:16:24 lwall Locked $ X?RCS: $Log: d_vfork.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:24 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_vfork: contains libc X?MAKE: -pick add $@ %* X?S:d_vfork: X?S: This variable conditionally defines the vfork symbol, which X?S: redefines vfork to fork if the vfork() routine doesn't exist. X?S:. X?C:vfork: X?C: This symbol, if defined, remaps the vfork routine to fork if the X?C: vfork() routine isn't supported here. X?C:. X?H:?%1:#$d_vfork vfork fork /**/ X?H:?%1: X: see if there is a vfork Xecho " " Xif $contains '^vfork$' libc.list >/dev/null 2>&1 ; then X echo "vfork() found." X d_vfork="$undef" Xelse X echo "No vfork() found--will use fork() instead." X d_vfork="$define" Xfi X !STUFFY!FUNK! echo Extracting pl/fullname.pl sed >pl/fullname.pl <<'!STUFFY!FUNK!' -e 's/X//' Xsub getfullname { X local($logname) = @_; X local($foo,$bar); X if ($ENV{'NAME'}) { X $ENV{'NAME'}; X } X else { X open(PASSWD,'/etc/passwd') || die "Can't open /etc/passwd"; X while (<PASSWD>) { X /(\w+):/; X last if $1 eq $logname; X } X close PASSWD; X local($login,$passwd,$uid,$gid,$gcos,$home,$shell) = split(/:/); X if (-f "$home/.fullname") { X open(FN,"$home/.fullname"); X chop($foo = <FN>); X close FN; X $foo; X } X elsif ($nametype eq 'bsd') { X $gcos =~ s/[,;].*//; X if ($gcos =~ /&/) { # oh crud X ($foo,$bar) = ($logname =~ /(.)(.*)/); X $foo =~ y/a-z/A-Z/; X $gcos =~ s/&/$foo$bar/; X } X $gcos; X } X else { X $gcos =~ s/[(].*//; X $gcos =~ s/.*-//; X $gcos; X } X } X} !STUFFY!FUNK! echo Extracting mcon/U/Warn_v7EXT.U sed >mcon/U/Warn_v7EXT.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Warn_v7EXT.U,v 2.0 88/06/28 23:13:50 lwall Locked $ X?X: X?X: This unit issues warnings to V7 sites that they are living dangerously. X?X: This unit needs to get mentioned in End.U to get included. X?X: X?RCS: $Log: Warn_v7EXT.U,v $ X?RCS: Revision 2.0 88/06/28 23:13:50 lwall X?RCS: Baseline. X?RCS: X?MAKE:Warn_v7EXT: package Guess X?MAKE: -pick add $@ %* X: Warnings Xif v7; then X cat <<'EOM' X XNOTE: the V7 compiler may ignore some #undefs that $package uses. If so, Xyou may get messages about redefining EXT. Some V7 compilers also have Xdifficulties with #defines near buffer boundaries, so beware. You may have Xto play with the spacing in some .h files, believe it or not. XEOM Xfi X !STUFFY!FUNK! echo Extracting mcon/U/d_fcntl.U sed >mcon/U/d_fcntl.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_fcntl.U,v 2.0 88/06/28 23:14:29 lwall Locked $ X?RCS: $Log: d_fcntl.U,v $ X?RCS: Revision 2.0 88/06/28 23:14:29 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_fcntl: test X?MAKE: -pick add $@ %* X?S:d_fcntl: X?S: This variable conditionally defines the FCNTL symbol, and indicates X?S: whether a C program should include fcntl.h. X?S:. X?C:FCNTL: X?C: This symbol, if defined, indicates to the C program that it should X?C: include fcntl.h. X?C:. X?H:?%1:#$d_fcntl FCNTL /**/ X?H:?%1: X: see if this is an fcntl system Xecho " " Xif $test -r /usr/include/fcntl.h ; then X d_fcntl="$define" X echo "fcntl.h found." Xelse X d_fcntl="$undef" X echo "No fcntl.h found, but that's ok." Xfi X !STUFFY!FUNK! echo Extracting mcon/U/Config_sh.U sed >mcon/U/Config_sh.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Config_sh.U,v 2.0 88/06/28 23:12:46 lwall Locked $ X?X: X?X: This unit produces ends up producing the config.sh script, which contains X?X: all the definitions figured out by Configure. The add.Config_sh script X?X: knows what variables need to be remembered. It also adds the EOT. X?X: X?RCS: $Log: Config_sh.U,v $ X?RCS: Revision 2.0 88/06/28 23:12:46 lwall X?RCS: Baseline. X?RCS: X?MAKE:Config_sh: spitshell startsh End X?MAKE: -pick add.Config_sh $@ %* X: create config.sh file Xecho " " Xif test -d ../UU; then X cd .. Xfi Xecho "Creating config.sh..." X$spitshell <<EOT >config.sh X$startsh X# config.sh X# This file was produced by running the Configure script. X !STUFFY!FUNK! echo Extracting pl/rangeargs.pl sed >pl/rangeargs.pl <<'!STUFFY!FUNK!' -e 's/X//' Xsub rangeargs { X local($result) = ''; X local($min,$max,$_); X open(PL,"patchlevel.h") || die "Can't open patchlevel.h\n"; X while (<PL>) { X $maxspec = $1 if /^#define\s+PATCHLEVEL\s+(\d+)/; X } X close PL; X die "Malformed patchlevel.h file.\n" if $maxspec eq ''; X while ($#_ >= 0) { X $_ = shift(@_); X while (/^\s*\d/) { X s/^\s*(\d+)//; X $min = $1; X if (s/^,//) { X $max = $min; X } X elsif (s/^-(\d*)//) { X $max = $1; X if ($max == 0 && $maxspec) { X $max = $maxspec; X } X s/^[^,],?//; X } X else { X $max = $min; X } X for ($i = $min; $i <= $max; ++$i) { X $result .= $i . ' '; X } X } X } X $result; X} !STUFFY!FUNK! echo Extracting mcon/U/d_whoami.U sed >mcon/U/d_whoami.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: d_whoami.U,v 2.0 88/06/28 23:16:33 lwall Locked $ X?RCS: $Log: d_whoami.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:33 lwall X?RCS: Baseline. X?RCS: X?MAKE:d_whoami: test X?MAKE: -pick add $@ %* X?S:d_whoami: X?S: This variable conditionally defines the WHOAMI symbol, which X?S: indicates to the C program that it should include whoami.h. X?S:. X?C:WHOAMI: X?C: This symbol, if defined, indicates that the program may include X?C: whoami.h. X?C:. X?H:?%1:#$d_whoami WHOAMI /**/ X?H:?%1: X: see if there is a whoami file Xecho " " Xif $test -r /usr/include/whoami.h ; then X d_whoami="$define" X echo "whoami.h found." Xelse X d_whoami="$undef" Xfi X !STUFFY!FUNK! echo Extracting mcon/U/rootid.U sed >mcon/U/rootid.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: rootid.U,v 2.0 88/06/28 23:18:15 lwall Locked $ X?RCS: $Log: rootid.U,v $ X?RCS: Revision 2.0 88/06/28 23:18:15 lwall X?RCS: Baseline. X?RCS: X?MAKE:rootid: sed X?MAKE: -pick add $@ %* X?S:rootid: X?S: This variable contains the eventual value of the ROOTID symbol, X?S: which is the uid of root. X?S:. X?C:ROOTID: X?C: This symbol contains the uid of root, normally 0. X?C:. X?H:?%1:#define ROOTID $rootid /**/ X?H:?%1: X: determine root id Xecho " " Xrootid=`$sed -e "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e "q" -e "}" -e "d" </etc/passwd` Xcase "$rootid" in X '') rootid=0 ;; X *) echo "Root uid = $rootid" ;; Xesac X !STUFFY!FUNK! echo Extracting mcon/U/Warn_v7ND.U sed >mcon/U/Warn_v7ND.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: Warn_v7ND.U,v 2.0 88/06/28 23:13:54 lwall Locked $ X?X: X?X: This unit warns V7 sites that they may not have a non-blocking read. X?X: This unit needs to be mentioned in End.U to get included. X?X: X?RCS: $Log: Warn_v7ND.U,v $ X?RCS: Revision 2.0 88/06/28 23:13:54 lwall X?RCS: Baseline. X?RCS: X?MAKE:Warn_v7ND: package Guess X?MAKE: -pick add $@ %* X: Warnings Xif v7; then X cat <<'EOM' X XNOTE: many V7 systems do not have a way to do a non-blocking read. If you Xdon't have any of FIONREAD, O_NDELAY, or rdchk(), the $package package Xmay not work as well as it might. It might not work at all. XEOM Xfi X !STUFFY!FUNK! echo Extracting mcon/U/End.U sed >mcon/U/End.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: End.U,v 2.0 88/06/28 23:12:54 lwall Locked $ X?X: X?X: This unit serves as the goal which forces make to choose all the units that X?X: ask questions. The $W on the ?MAKE: line is the list of all symbols wanted. X?X: To force any unit to be included, copy this unit to your private U directory X?X: and add the name of the unit desired to the ?MAKE: dependency line. X?X: X?RCS: $Log: End.U,v $ X?RCS: Revision 2.0 88/06/28 23:12:54 lwall X?RCS: Baseline. X?RCS: X?MAKE:End: $W X?MAKE: -pick add $@ %* Xecho " " Xecho "End of configuration questions." Xecho " " X !STUFFY!FUNK! echo Extracting pl/package.pl sed >pl/package.pl <<'!STUFFY!FUNK!' -e 's/X//' Xsub readpackage { X if (! -f '.package') { X if (-f '../.package' || -f '../../.package') { X die "Run in top level directory only.\n"; X } X else { X die "No .package file! Run packinit.\n"; X } X } X open(package,'.package'); X while (<package>) { X next if /^:/; X next if /^#/; X if (($var,$val) = /^\s*(\w+)=(.*)/) { X $val = "\"$val\"" unless $val =~ /^['"]/; X eval "\$$var = $val;"; X } X } X close package; X} X !STUFFY!FUNK! echo Extracting mcon/U/filexp.U sed >mcon/U/filexp.U <<'!STUFFY!FUNK!' -e 's/X//' X?RCS:$Header: filexp.U,v 2.0 88/06/28 23:16:40 lwall Locked $ X?RCS: $Log: filexp.U,v $ X?RCS: Revision 2.0 88/06/28 23:16:40 lwall X?RCS: Baseline. X?RCS: X?MAKE:filexp: privlib X?MAKE: -pick add $@ %* X?S:filexp: X?S: This symbol contains the full pathname of the filexp script, in case we X?S: are saving the script for posterity. X?S:. X: must not allow self reference Xcase "$privlib" in X /*) X filexp=$privlib/filexp X ;; X *) X filexp=`pwd`/filexp X ;; Xesac X !STUFFY!FUNK! echo Extracting pl/comment.pl sed >pl/comment.pl <<'!STUFFY!FUNK!' -e 's/X//' Xsub rcscomment { X local($file) = @_; X local($comment) = ''; X open(FILE,$file); X while (<FILE>) { X if (/^(.*)\$Log[:\$]/) { # they know better than us (hopefully) X $comment = $1; X last; X } X } X close FILE; X unless ($comment) { X if ($file =~ /\.SH$|[Mm]akefile/) { X $comment = '# '; X } X elsif ($file =~ /\.U$/) { X $comment = '?RCS: '; X } X elsif ($file =~ /\.man$/) { X $comment = "''' "; X } X } X $comment; X} X !STUFFY!FUNK! echo "" echo "End of kit 6 (of 7)" cat /dev/null >kit6isdone run='' config='' for iskit in 1 2 3 4 5 6 7; do if test -f kit${iskit}isdone; then run="$run $iskit" else todo="$todo $iskit" fi done case $todo in '') echo "You have run all your kits. Please read README and then type Configure." chmod 755 Configure ;; *) echo "You have run$run." echo "You still need to run$todo." ;; esac : Someone might mail this, so... exit -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.