BSD 4_3_Reno development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 28 Oct 1986 02:45:31 +0000 (18:45 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Tue, 28 Oct 1986 02:45:31 +0000 (18:45 -0800)
Work on file usr/src/contrib/patch/Configure
Work on file usr/src/contrib/patch/util.h
Work on file usr/src/contrib/patch/EXTERN.h

Synthesized-from: CSRG/cd2/4.3reno

usr/src/contrib/patch/Configure [new file with mode: 0644]
usr/src/contrib/patch/EXTERN.h [new file with mode: 0644]
usr/src/contrib/patch/util.h [new file with mode: 0644]

diff --git a/usr/src/contrib/patch/Configure b/usr/src/contrib/patch/Configure
new file mode 100644 (file)
index 0000000..0e1c568
--- /dev/null
@@ -0,0 +1,998 @@
+#! /bin/sh
+#
+# If these # comments don't work, trim them.  Don't worry about any other
+# shell scripts, Configure will trim # comments from them for you.
+#
+# Note: if you are running ksh, be sure to say "sh Configure".
+#
+# (If you are trying to port this package to a machine without sh, I would
+# suggest you cut out the prototypical config.h from the end of Configure
+# and edit it to reflect your system.  Some packages may include samples
+# of config.h for certain machines, so you might look for one of those.)
+#
+# $Header: Configure,v 2.0 86/09/17 15:32:58 lwall Exp $
+#
+# $Log:        Configure,v $
+# Revision 2.0  86/09/17  15:32:58  lwall
+# Baseline for netwide release.
+# 
+#
+# Yes, you may rip this off to use in other distribution packages.
+#
+# (Note: this Configure script was generated automatically.  Rather than
+# working with this copy of Configure, you may wish to get metaconfig.)
+
+define='define'
+undef='/*undef'
+
+d_eunice=''
+eunicefix=''
+loclist=''
+expr=''
+sed=''
+echo=''
+cat=''
+rm=''
+mv=''
+cp=''
+tail=''
+tr=''
+mkdir=''
+sort=''
+uniq=''
+grep=''
+trylist=''
+test=''
+inews=''
+egrep=''
+more=''
+pg=''
+Mcc=''
+vi=''
+mailx=''
+Log=''
+Header=''
+bin=''
+cc=''
+contains=''
+cpp=''
+d_index=''
+d_void=''
+iandd=''
+libc=''
+mansrc=''
+manext=''
+n=''
+c=''
+package=''
+registers=''
+reg1=''
+reg2=''
+reg3=''
+reg4=''
+reg5=''
+reg6=''
+reg7=''
+reg8=''
+reg9=''
+reg10=''
+reg11=''
+reg12=''
+reg13=''
+reg14=''
+reg15=''
+reg16=''
+spitshell=''
+shsharp=''
+sharpbang=''
+startsh=''
+CONFIG=''
+
+package=patch
+
+echo "Beginning of configuration questions for $package kit."
+: Eunice requires " " instead of "", can you believe it
+echo " "
+
+: sanity checks
+PATH='.:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc'
+export PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
+
+if test ! -t 0; then
+    echo "Say 'sh Configure', not 'sh <Configure'"
+    exit 1
+fi
+
+: some greps do not return status, grrr.
+echo "grimblepritz" >grimble
+if grep blurfldyick grimble >/dev/null 2>&1 ; then
+    contains=contains
+else
+    if grep grimblepritz grimble >/dev/null 2>&1 ; then
+       contains=grep
+    else
+       contains=contains
+    fi
+fi
+rm -f grimble
+: the following should work in any shell
+case "$contains" in
+contains*)
+    echo " "
+    echo "AGH!  Grep doesn't return a status.  Attempting remedial action."
+    cat >contains <<'EOSS'
+grep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
+EOSS
+chmod 755 contains
+esac
+
+: first determine how to suppress newline on echo command
+echo "Checking echo to see how to suppress newlines..."
+(echo "hi there\c" ; echo " ") >.echotmp
+if $contains c .echotmp >/dev/null 2>&1 ; then
+    echo "...using -n."
+    n='-n'
+    c=''
+else
+    echo "...using \\\c"
+    echo "c."
+    n=''
+    c='\c'
+fi
+echo $n "Type carriage return to continue.  Your cursor should be here-->$c"
+read ans
+rm -f .echotmp
+
+: now set up to do reads with possible shell escape
+: if this does not work on your machine, 1,$ s/. myread/read ans/
+cat <<EOSC >myread
+ans='!'
+while expr "X\$ans" : "X!" >/dev/null; do
+    read ans
+    case "\$ans" in
+    !)
+       sh
+       echo " "
+       echo $n "\$rp $c"
+       ;;
+    !*)
+       set \`expr "X\$ans" : "X!\(.*\)\$"\`
+       sh -c "\$*"
+       echo " "
+       echo $n "\$rp $c"
+       ;;
+    esac
+done
+rp='Your answer:'
+EOSC
+
+: general instructions
+cat <<EOH
+This installation shell script will examine your system and ask you questions
+to determine how $package and any auxiliary files should be installed.  If you
+get stuck on a question, you may use a ! shell escape to start a subshell or
+execute a command.  Many of the questions will have default answers in
+square brackets--typing carriage return will give you the default.
+
+On some of the questions which ask for file or directory names you are
+allowed to use the ~name construct to specify the login directory belonging
+to "name", even if you don't have a shell which knows about that.  Questions
+where this is allowed will be marked "(~name ok)".
+EOH
+rp="[Type carriage return to continue]"
+echo $n "$rp $c"
+. myread
+cat <<EOH
+Much effort has been expended to ensure that this shell script will run
+on any Unix system.  If despite that it blows up on you, your best bet is
+to edit Configure and run it again.  (Trying to install this package
+without having run Configure may be well nigh impossible.)  Also, let me
+(lwall@sdcrdcf.UUCP) know how I blew it.
+
+This installation script affects things in two ways: 1) it may do direct
+variable substitutions on some of the files included in this kit, and
+2) it builds a config.h file for inclusion in C programs.  You may edit
+any of these files as the need arises after running this script.
+
+EOH
+rp="[Type carriage return to continue]"
+echo $n "$rp $c"
+. myread
+
+: get old answers, if there is a config file out there
+if test -f config.sh; then
+    echo " "
+    rp="I see a config.sh file.  Did Configure make it on THIS system? [y]"
+    echo $n "$rp $c"
+    . myread
+    case "$ans" in
+    n*) echo "OK, I'll ignore it.";;
+    *)  echo "Fetching default answers from your old config.sh file..."
+        . config.sh
+       ;;
+    esac
+fi
+
+: get list of predefined functions in a handy place
+echo " "
+if test -f /lib/libc.a; then
+    echo "Your C library is in /lib/libc.a.  You're normal."
+    libc=/lib/libc.a
+else
+    if test -f /usr/lib/libc.a; then
+       echo "Your C library is in /usr/lib/libc.a, of all places."
+       libc=/usr/lib/libc.a
+    else
+       if test -f "$libc"; then
+           echo "Your C library is in $libc, like you said before."
+       else
+           cat <<'EOM'
+I can't seem to find your C library.  I've looked for /lib/libc.a and
+/usr/lib/libc.a, but neither of those are there.  What is the full name
+EOM
+           echo $n "of your C library? $c"
+           rp='C library full name?'
+           . myread
+           libc="$ans"
+       fi
+    fi
+fi
+echo " "
+echo $n "Extracting names from $libc for later perusal...$c"
+if ar t $libc > libc.list; then
+    echo "done"
+else
+    echo " "
+    echo "The archiver doesn't think $libc is a reasonable library."
+    exit 1
+fi
+
+: make some quick guesses about what we are up against
+echo " "
+echo $n "Hmm...  $c"
+if $contains SIGTSTP /usr/include/signal.h >/dev/null 2>&1 ; then
+    echo "Looks kind of like a BSD system, but we'll see..."
+    echo exit 0 >bsd
+    echo exit 1 >usg
+    echo exit 1 >v7
+else
+    if $contains fcntl libc.list >/dev/null 2>&1 ; then
+       echo "Looks kind of like a USG system, but we'll see..."
+       echo exit 1 >bsd
+       echo exit 0 >usg
+       echo exit 1 >v7
+    else
+       echo "Looks kind of like a version 7 system, but we'll see..."
+       echo exit 1 >bsd
+       echo exit 1 >usg
+       echo exit 0 >v7
+    fi
+fi
+if $contains vmssystem libc.list >/dev/null 2>&1 ; then
+    cat <<'EOI'
+There is, however, a strange, musty smell in the air that reminds me of
+something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
+EOI
+    echo "exit 0" >eunice
+    eunicefix=unixtovms
+    d_eunice="$define"
+: it so happens the Eunice I know will not run shell scripts in Unix format
+else
+    echo " "
+    echo "Congratulations.  You aren't running Eunice."
+    eunicefix=':'
+    d_eunice="$undef"
+    echo "exit 1" >eunice
+fi
+chmod 755 bsd usg v7 eunice
+$eunicefix bsd usg v7 eunice
+
+: see if sh knows # comments
+echo " "
+echo "Checking your sh to see if it knows about # comments..."
+if sh -c '#' >/dev/null 2>&1 ; then
+    echo "Your sh handles # comments correctly."
+    shsharp=true
+    spitshell=cat
+    echo " "
+    echo "Okay, let's see if #! works on this system..."
+    echo "#!/bin/echo hi" > try
+    $eunicefix try
+    chmod 755 try
+    try > today
+    if test -s today; then
+       echo "It does."
+       sharpbang='#!'
+    else
+       echo "#! /bin/echo hi" > try
+       $eunicefix try
+       chmod 755 try
+       try > today
+       if test -s today; then
+           echo "It does."
+           sharpbang='#! '
+       else
+           echo "It doesn't."
+           sharpbang=': use '
+       fi
+    fi
+else
+    echo "Your sh doesn't grok # comments--I will strip them later on."
+    shsharp=false
+    echo "exec grep -v '^#'" >spitshell
+    chmod 755 spitshell
+    $eunicefix spitshell
+    spitshell=`pwd`/spitshell
+    echo "I presume that if # doesn't work, #! won't work either!"
+    sharpbang=': use '
+fi
+
+: figure out how to guarantee sh startup
+echo " "
+echo "Checking out how to guarantee sh startup..."
+startsh=$sharpbang'/bin/sh'
+echo "Let's see if '$startsh' works..."
+cat >try <<EOSS
+$startsh
+set abc
+test "$?abc" != 1
+EOSS
+
+chmod 755 try
+$eunicefix try
+if try; then
+    echo "Yup, it does."
+else
+    echo "Nope.  You may have to fix up the shell scripts to make sure sh runs them."
+fi
+rm -f try today
+
+: find out where common programs are
+echo " "
+echo "Locating common programs..."
+pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib"
+cat <<EOSC >loc
+$startsh
+thing=\$1
+shift
+dflt=\$1
+shift
+for dir in \$*; do
+    case "\$thing" in
+    .)
+       if test -d \$dir/\$thing; then
+           echo \$dir
+           exit 0
+       fi
+       ;;
+    *)
+       if test -f \$dir/\$thing; then
+           echo \$dir/\$thing
+           exit 0
+       fi
+       ;;
+    esac
+done
+echo \$dflt
+exit 1
+EOSC
+chmod 755 loc
+$eunicefix loc
+loclist="
+expr
+sed
+echo
+cat
+rm
+grep
+"
+trylist="
+test
+Mcc
+"
+for file in $loclist; do
+    xxx=`loc $file $file $pth`
+    eval $file=$xxx
+    case "$xxx" in
+    /*)
+       echo $file is in $xxx.
+       ;;
+    *)
+       echo "I don't know where $file is.  I hope it's in everyone's PATH."
+       ;;
+    esac
+done
+echo " "
+echo "Don't worry if any of the following aren't found..."
+ans=offhand
+for file in $trylist; do
+    xxx=`loc $file $file $pth`
+    eval $file=$xxx
+    case "$xxx" in
+    /*)
+       echo $file is in $xxx.
+       ;;
+    *)
+       echo "I don't see $file out there, $ans."
+       ans=either
+       ;;
+    esac
+done
+case "$egrep" in
+egrep)
+    echo "Substituting grep for egrep."
+    egrep=$grep
+    ;;
+esac
+case "$test" in
+test)
+    echo "Hopefully test is built into your sh."
+    ;;
+/bin/test)
+    echo " "
+    echo $n 'Is your "test" built into sh? [n] (OK to guess) '"$c"
+    rp='test built into sh? [n]'
+    . myread
+    case "$ans" in
+    y*) test=test ;;
+    esac
+    ;;
+*)
+    test=test
+    ;;
+esac
+case "$echo" in
+echo)
+    echo "Hopefully echo is built into your sh."
+    ;;
+/bin/echo)
+    echo " "
+    echo "Checking compatibility between /bin/echo and builtin echo (if any)..."
+    $echo $n "hi there$c" >foo1
+    echo $n "hi there$c" >foo2
+    if cmp foo1 foo2 >/dev/null 2>&1; then
+       echo "They are compatible.  In fact, they may be identical."
+    else
+       echo "They are not compatible--the echo builtin will be used."
+       echo=echo
+    fi
+    $rm -f foo1 foo2
+    ;;
+*)
+    echo=echo
+    ;;
+esac
+
+: index or strcpy
+$echo " "
+if $contains index libc.list >/dev/null 2>&1 ; then
+    $echo "Your system appears to use index() and rindex() rather than strchr()"
+    $echo $n "and strrchr().  Is this correct? [y] $c"
+    rp='index() rather than strchr()? [y]'
+    . myread
+    case "$ans" in
+       n*|f*) d_index="$define" ;;
+       *)     d_index="$undef" ;;
+    esac
+else
+    $echo "Your system appears to use strchr() and strrchr() rather than index()"
+    $echo $n "and rindex().  Is this correct? [y] $c"
+    rp='strchr() rather than index()? [y]'
+    . myread
+    case "$ans" in
+       n*|f*) d_index="$undef" ;;
+       *)     d_index="$define" ;;
+    esac
+fi
+
+: check for void type
+$echo " "
+$echo "Checking to see if your C compiler groks the void type..."
+$cat >try.c <<'EOCP'
+void main();
+EOCP
+if cc -c try.c >/dev/null 2>&1 ; then
+    d_void="$undef"
+    $echo "Yup, it does."
+else
+    d_void="$define"
+    $echo "Nope, it doesn't (boo hiss).  I will substitute int."
+fi
+$rm -f try.*
+
+: see how we invoke the C preprocessor
+echo " "
+echo "Checking to see how your C preprocessor is invoked..."
+cat <<'EOT' >testcpp.c
+#define ABC abc
+#define XYZ xyz
+ABC.XYZ
+EOT
+echo 'Maybe "cc -E" will work...'
+cc -E testcpp.c >testcpp.out 2>&1
+if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
+    echo "Yup, it does."
+    cpp='cc -E'
+else
+    echo 'Nope...maybe "cc -P" will work...'
+    cc -P testcpp.c >testcpp.out 2>&1
+    if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
+       echo "Yup, that does."
+       cpp='cc -P'
+    else
+       echo 'Nixed again...maybe "/lib/cpp" will work...'
+       /lib/cpp testcpp.c >testcpp.out 2>&1
+       if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
+           echo "Hooray, it works!  I was beginning to wonder."
+           cpp='/lib/cpp'
+       else
+           echo 'Hmm...maybe you already told me...'
+           case "$cpp" in
+           '') ;;
+           *) $cpp testcpp.c >testcpp.out 2>&1;;
+           esac
+           if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
+               echo "Hooray, you did!  I was beginning to wonder."
+           else
+               echo $n "Nope. I can't find a C preprocessor.  Name one: $c"
+               rp='Name a C preprocessor:'
+               . myread
+               cpp="$ans"
+               $cpp testcpp.c >testcpp.out 2>&1
+               if $contains 'abc.xyz' testcpp.out >/dev/null 2>&1 ; then
+                   echo "OK, that will do."
+               else
+                   echo "Sorry, I can't get that to work.  Go find one."
+                   exit 1
+               fi
+           fi
+       fi
+    fi
+fi
+rm -f testcpp.c testcpp.out
+
+: get C preprocessor symbols handy
+echo " "
+cat <<'EOT' >Cppsym.c
+char *sym[] = {
+#ifdef mc68000
+       "mc68000",
+#endif
+#ifdef sun
+       "sun",
+#endif
+#ifdef gcos
+       "gcos",
+#endif
+#ifdef unix
+       "unix",
+#endif
+#ifdef ibm
+       "ibm",
+#endif
+#ifdef gimpel
+       "gimpel",
+#endif
+#ifdef interdata
+       "interdata",
+#endif
+#ifdef tss
+       "tss",
+#endif
+#ifdef os
+       "os",
+#endif
+#ifdef mert
+       "mert",
+#endif
+#ifdef pyr
+       "pyr",
+#endif
+#ifdef vax
+       "vax",
+#endif
+#ifdef pdp11
+       "pdp11",
+#endif
+#ifdef i8086
+       "i8086",
+#endif
+#ifdef z8000
+       "z8000",
+#endif
+#ifdef 3b2
+       "3b2",
+#endif
+#ifdef 3b5
+       "3b5",
+#endif
+#ifdef 3b20
+       "3b20",
+#endif
+#ifdef 3b200
+       "3b200",
+#endif
+0};
+main(argc,argv)
+int argc;
+char **argv;
+{
+    int i;
+
+    for (argc--,argv++; argc; argc--,argv++) {
+       for (i=0; sym[i]; i++) {
+           if (strcmp(argv[0],sym[i]) == 0)
+               exit(0);
+       }
+    }
+    exit(1);
+}
+EOT
+echo "Your machine appears to have the following attributes:"
+$cpp Cppsym.c | sed -n -e 's/^ "\(.*\)",$/\1/p'
+cc Cppsym.c -o Cppsym
+rm -f Cppsym.c
+
+: see how many register declarations we want to use
+case "$registers" in
+'')
+    if Cppsym pdp11 i8086 z8000; then
+       dflt=3
+    else
+       if Cppsym sun mc68000; then
+           dflt=10
+       else
+           : if you have any other numbers for me, send them in
+           dflt=6
+       fi
+    fi
+    ;;
+*)  dflt=$registers ;;
+esac
+cat <<EOM
+Different C compilers on different machines pay attention to different
+numbers of register declarations.  About how many register declarations in
+EOM
+$echo $n "each routine does your C compiler pay attention to? (OK to guess) [$dflt] $c"
+rp="# register declarations used? [$dflt]"
+. myread
+case "$ans" in
+'') ans=$dflt;;
+esac
+registers=$ans
+reg1=''
+awk "END { for (i=1; i<=16; i++) printf \"reg%d=''\n\", i}" </dev/null >.foo
+. .foo
+awk "END { for (i=1; i<=$registers; i++) printf \"reg%d=register\n\", i}" \
+       </dev/null >.foo
+. .foo
+rm -f .foo
+
+: preserve RCS keywords in files with variable substitution, grrr
+Log='$Log'
+Header='$Header'
+
+: set up shell script to do ~ expansion
+cat >filexp <<EOSS
+$startsh
+: expand filename
+case "\$1" in
+~/*|~)
+    $echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
+    ;;
+~*)
+    if $test -f /bin/csh; then
+       /bin/csh -f -c "glob \$1"
+       $echo ""
+    else
+       name=\`$expr x\$1 : '..\([^/]*\)'\`
+       dir=\`$sed </etc/passwd -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}'\`
+       if $test ! -d "\$dir"; then
+           me=\`basename \$0\`
+           $echo "\$me: can't locate home directory for: \$name" >&2
+           exit 1
+       fi
+       case "\$1" in
+       */*)
+           $echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
+           ;;
+       *)
+           $echo \$dir
+           ;;
+       esac
+    fi
+    ;;
+*)
+    $echo \$1
+    ;;
+esac
+EOSS
+chmod 755 filexp
+$eunicefix filexp
+
+: determine where public executables go
+case "$bin" in
+'')
+    dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
+    ;;
+*)  dflt="$bin"
+    ;;
+esac
+bin='blurfl/dyick'
+while $test ! -d "$bin" ; do
+    case "$bin" in
+      blurfl*) ;;
+      *) $echo "$bin does not appear to exist." ;;
+    esac
+    $echo " "
+    rp="Where do you want to put the public executables? [$dflt]"
+    $echo $n "$rp $c"
+    . myread
+    bin="$ans"
+    bin=`filexp $bin`
+    case "$bin" in
+      '') bin=$dflt ;;
+    esac
+done
+
+: determine where manual pages go
+case "$mansrc" in
+'')
+    dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1`
+    ;;
+*)  dflt="$mansrc"
+    ;;
+esac
+mansrc='blurfl/dyick'
+while $test ! -d "$mansrc" ; do
+    case "$mansrc" in
+      blurfl*) ;;
+      *) $echo "$mansrc does not appear to exist." ;;
+    esac
+    $echo " "
+    rp="Where do the manual pages (source) go? [$dflt]"
+    $echo $n "$rp $c"
+    . myread
+    mansrc=`filexp "$ans"`
+    case "$mansrc" in
+      '') mansrc=$dflt ;;
+    esac
+done
+case "$mansrc" in
+*l)
+    manext=l
+    ;;
+*n)
+    manext=n
+    ;;
+*)
+    manext=1
+    ;;
+esac
+
+: see if we need a special compiler
+$echo " "
+if usg; then
+    case "$cc" in
+    '')
+       case "$Mcc" in
+       /*) dflt='Mcc'
+           ;;
+       *)
+           if $contains '\-M' $mansrc/cc.1 >/dev/null 2>&1 ; then
+               dflt='cc -M'
+           else
+               dflt='cc'
+           fi
+           ;;
+       esac
+       ;;
+    *)  dflt="$cc";;
+    esac
+    $cat <<'EOM'
+On some systems the default C compiler will not resolve multiple global
+references that happen to have the same name.  On some such systems the
+"Mcc" command may be used to force these to be resolved.  On other systems
+a "cc -M" command is required.  What command will force resolution on
+EOM
+    $echo $n "this system? [$dflt] $c"
+    rp="Command to resolve multiple refs? [$dflt]"
+    . myread
+    cc="$ans"
+    case "$cc" in
+       '') cc="$dflt" ;;
+    esac
+else
+    $echo "Not a USG system--assuming cc can resolve multiple definitions."
+    cc=cc
+fi
+
+: see if we should throw a -i into the Makefile
+$echo " "
+if Cppsym pdp11 i8086 z8000; then
+    if $contains '\-i' $mansrc/cc.1 >/dev/null 2>&1 ; then
+       rp="Your system appears to have separate I and D space.  Is this true? [y]"
+       $echo $n "$rp $c"
+       . myread
+       case "$ans" in
+           n*|f*) iandd='' ;;
+           *)     iandd='-i' ;;
+       esac
+    else
+       $echo "Your system appears to NOT have separate I and D space."
+       $echo $n "Is this correct? [y] $c"
+       rp='No separate I and D.  Correct? [y]'
+       . myread
+       case "$ans" in
+           n*|f*) iandd='-i' ;;
+           *)     iandd='' ;;
+       esac
+    fi
+else
+    $echo $n "Does your machine have separate I and D space? [n] $c"
+    . myread
+    case "$ans" in
+       y*)    iandd='-i' ;;
+       *)     iandd='' ;;
+    esac
+fi
+
+$echo " "
+$echo "End of configuration questions."
+$echo " "
+
+: create config.sh file
+$echo " "
+$echo "Creating config.sh..."
+$spitshell <<EOT >config.sh
+$startsh
+# config.sh
+# This file was produced by running the Configure script.
+
+d_eunice='$d_eunice'
+eunicefix='$eunicefix'
+loclist='$loclist'
+expr='$expr'
+sed='$sed'
+echo='$echo'
+cat='$cat'
+rm='$rm'
+mv='$mv'
+cp='$cp'
+tail='$tail'
+tr='$tr'
+mkdir='$mkdir'
+sort='$sort'
+uniq='$uniq'
+grep='$grep'
+trylist='$trylist'
+test='$test'
+inews='$inews'
+egrep='$egrep'
+more='$more'
+pg='$pg'
+Mcc='$Mcc'
+vi='$vi'
+mailx='$mailx'
+Log='$Log'
+Header='$Header'
+bin='$bin'
+cc='$cc'
+contains='$contains'
+cpp='$cpp'
+d_index='$d_index'
+d_void='$d_void'
+iandd='$iandd'
+libc='$libc'
+mansrc='$mansrc'
+manext='$manext'
+n='$n'
+c='$c'
+package='$package'
+registers='$registers'
+reg1='$reg1'
+reg2='$reg2'
+reg3='$reg3'
+reg4='$reg4'
+reg5='$reg5'
+reg6='$reg6'
+reg7='$reg7'
+reg8='$reg8'
+reg9='$reg9'
+reg10='$reg10'
+reg11='$reg11'
+reg12='$reg12'
+reg13='$reg13'
+reg14='$reg14'
+reg15='$reg15'
+reg16='$reg16'
+spitshell='$spitshell'
+shsharp='$shsharp'
+sharpbang='$sharpbang'
+startsh='$startsh'
+CONFIG=true
+EOT
+: create config.h file
+$echo " "
+$echo "Creating config.h..."
+$cat <<EOT >config.h
+/* config.h
+ * This file was produced by running the Configure script.
+ * Feel free to modify any of this as the need arises.
+ */
+
+
+#$d_eunice     EUNICE          /* no file linking? */
+#$d_eunice     VMS             /* other assorted ickies? */
+
+#$d_index      index strchr    /* cultural */
+#$d_index      rindex strrchr  /*  differences? */
+
+#$d_void       void int        /* is void to be avoided? */
+
+/* How many register declarations are paid attention to? */
+
+#define Reg1 $reg1             /**/
+#define Reg2 $reg2             /**/
+#define Reg3 $reg3             /**/
+#define Reg4 $reg4             /**/
+#define Reg5 $reg5             /**/
+#define Reg6 $reg6             /**/
+#define Reg7 $reg7             /**/
+#define Reg8 $reg8             /**/
+#define Reg9 $reg9             /**/
+#define Reg10 $reg10           /**/
+#define Reg11 $reg11           /**/
+#define Reg12 $reg12           /**/
+#define Reg13 $reg13           /**/
+#define Reg14 $reg14           /**/
+#define Reg15 $reg15           /**/
+#define Reg16 $reg16           /**/
+
+EOT
+CONFIG=true
+
+if $contains '\.SH' MANIFEST >/dev/null 2>&1; then
+    $echo " "
+    $echo "Doing variable substitutions on .SH files..."
+    set `$grep <MANIFEST '\.SH' | awk '{print $1}'`
+    for file in $*; do
+       case "$file" in
+       */*)
+           dir=`$expr X$file : 'X\(.*\)/'`
+           file=`$expr X$file : 'X.*/\(.*\)'`
+           (cd $dir && . $file)
+           ;;
+       *)
+           . $file
+           ;;
+       esac
+    done
+fi
+
+if $contains '^depend:' Makefile >/dev/null 2>&1; then
+    $echo " "
+    $echo 'Now you need to generate make dependencies by running "make depend".'
+    $echo 'You might prefer to run it in background: "make depend > makedepend.out &"'
+    $echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c" 
+    rp="Run make depend now? [n]"
+    . myread
+    case "$ans" in
+    y*) make depend;;
+    esac
+fi
+
+$rm -f libc.list kit*isdone bsd usg v7 eunice loc Cppsym
+
+if test -f Makefile; then
+    $echo " "
+    $echo "Now you must run a make."
+else
+    $echo "Done."
+fi
+: end of Configure
diff --git a/usr/src/contrib/patch/EXTERN.h b/usr/src/contrib/patch/EXTERN.h
new file mode 100644 (file)
index 0000000..0271074
--- /dev/null
@@ -0,0 +1,15 @@
+/* $Header: EXTERN.h,v 2.0 86/09/17 15:35:37 lwall Exp $
+ *
+ * $Log:       EXTERN.h,v $
+ * Revision 2.0  86/09/17  15:35:37  lwall
+ * Baseline for netwide release.
+ * 
+ */
+
+#undef EXT
+#define EXT extern
+
+#undef INIT
+#define INIT(x)
+
+#undef DOINIT
diff --git a/usr/src/contrib/patch/util.h b/usr/src/contrib/patch/util.h
new file mode 100644 (file)
index 0000000..9896c63
--- /dev/null
@@ -0,0 +1,74 @@
+/* $Header: util.h,v 2.0 86/09/17 15:40:06 lwall Exp $
+ *
+ * $Log:       util.h,v $
+ * Revision 2.0  86/09/17  15:40:06  lwall
+ * Baseline for netwide release.
+ * 
+ */
+
+/* and for those machine that can't handle a variable argument list */
+
+#ifdef CANVARARG
+
+#define say1 say
+#define say2 say
+#define say3 say
+#define say4 say
+#define ask1 ask
+#define ask2 ask
+#define ask3 ask
+#define ask4 ask
+#define fatal1 fatal
+#define fatal2 fatal
+#define fatal3 fatal
+#define fatal4 fatal
+
+#else /* hope they allow multi-line macro actual arguments */
+
+#ifdef lint
+
+#define say1(a) say(a, 0, 0, 0)
+#define say2(a,b) say(a, (b)==(b), 0, 0)
+#define say3(a,b,c) say(a, (b)==(b), (c)==(c), 0)
+#define say4(a,b,c,d) say(a, (b)==(b), (c)==(c), (d)==(d))
+#define ask1(a) ask(a, 0, 0, 0)
+#define ask2(a,b) ask(a, (b)==(b), 0, 0)
+#define ask3(a,b,c) ask(a, (b)==(b), (c)==(c), 0)
+#define ask4(a,b,c,d) ask(a, (b)==(b), (c)==(c), (d)==(d))
+#define fatal1(a) fatal(a, 0, 0, 0)
+#define fatal2(a,b) fatal(a, (b)==(b), 0, 0)
+#define fatal3(a,b,c) fatal(a, (b)==(b), (c)==(c), 0)
+#define fatal4(a,b,c,d) fatal(a, (b)==(b), (c)==(c), (d)==(d))
+
+#else /* lint */
+    /* if this doesn't work, try defining CANVARARG above */
+#define say1(a) say(a, Nullch, Nullch, Nullch)
+#define say2(a,b) say(a, b, Nullch, Nullch)
+#define say3(a,b,c) say(a, b, c, Nullch)
+#define say4 say
+#define ask1(a) ask(a, Nullch, Nullch, Nullch)
+#define ask2(a,b) ask(a, b, Nullch, Nullch)
+#define ask3(a,b,c) ask(a, b, c, Nullch)
+#define ask4 ask
+#define fatal1(a) fatal(a, Nullch, Nullch, Nullch)
+#define fatal2(a,b) fatal(a, b, Nullch, Nullch)
+#define fatal3(a,b,c) fatal(a, b, c, Nullch)
+#define fatal4 fatal
+
+#endif /* lint */
+
+/* if neither of the above work, join all multi-line macro calls. */
+#endif
+
+EXT char serrbuf[BUFSIZ];              /* buffer for stderr */
+
+char *fetchname();
+int move_file();
+void copy_file();
+void say();
+void fatal();
+void ask();
+char *savestr();
+void set_signals();
+void ignore_signals();
+void makedirs();