SHELL=/bin/sh
include local.mk
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# This is the makefile for JC's misc directory, This  directory  contains  an #
# assortment of programs.  Some are just useful little tools.  Some aren't so #
# little.  (And some aren't so useful on some systems.  ;-)                   #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Note: this makefile is somewhat incomplete.  A lot of the things won't make #
# properly  until  you  have  done  the links that are triggered by the "all" #
# entry. So first do a "make all", and watch what it does.  You may need some #
# of  the  environment  stuff about the machine and system type, which may be #
# determined by the hostype script.  If you are a csh user, type:             #
#    eval `hostype -cshe`                                                     #
# and it will generate csh setenv commands.  Other shells are similar.        #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# You might need to change the following definitions for your system:

# The $(S) directory is where we find the  real  source.   If  it  is
# different  from the current directory, the dependencies will update
# our files from it.
SRCDIR=..
S=$(SRCDIR)/misc

# The $(B) directory is where we will install binaries.  We  do  this
# using  the Lc command that is created here, which will make backups
# automatically, so nothing is destroyed.
#B=../bin
B=$(HOME)/$(SYSTYPE)/bin

# The $(VDIR) directory is where the V  (verbose/debug)  package  was
# installed.  Most of the programs here use it.
VDIR=../V
#VDIR=$(SRCDIR)/V

# Compile and link flags:
#CFLAGS=-g -p
#LDFLAGS=-g -p 
CFLAGS=-O
LDFLAGS=-L../V

# The $(MK) command is used for sub-makes.
MK=make -k

# The $(LC) command is used to get and put files.  It is best if  you
# have the "lc" and "Lc" commands, which do a link if possible, and a
# copy if the link fails. But you could just use ln or cp if lc isn't
# available.
LC=Lc
RM=rm

# You shouldn't have to change anything past this point.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# These .h files are used by nearly everything here:

h=V.h \
	V_M.h local.h str.h sys_ctype.h sys_errno.h sys_stdio.h sys_time.h \
	sys_types.h 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# These .c files can be recreated from the .b files if they are deleted:

ctemp= \
	Hex.c Rm.c addr.c chist ae.c align.c args.c asc.c b7.c box.c bsplit.c \
	byteyears.c call.c chars.c Cat.c clmr.c conn.c count.c cputype.c cut.c \
	detab.c dirnam.c dmp_ip.c dump.c duplen.c env.c factor.c false.c \
	findsb.c finfo.c fp.c gdbmsrvr.c gdbmtest.c goedel.c hd.c hex.c \
	hosttype.c icmp.c jabber.c laman.c lastarg.c lastfld.c line.c \
	machtype.c mailfile.c makeraw.c makesane.c minrand.c misc.c mkdir.c \
	mod.c nbiotest.c newer.c newtype.c nonnumeric.c nop.c numtest.c \
	older.c overwrite.c p34.c p43.c page.c perror.c ping.c pktime.c \
	pkunpk.c proto.c proxy.c randline.c relink.c rowbytesum.c rs.c say.c \
	saying.c sel.c slowcopy.c sorthosts.c spin.c split.c str.c strcmp.c \
	stripman.c sucmd.c symtime.c synclock.c systype.c taillog.c \
	tcpclient.c tcpproxy.c fd.c tcpserver.c tee.c testfloat.c testrand.c \
	timestamp.c to.c true.c udpclient.c udpserver.c unixtime.c unlink.c \
	unpackmail.c utsname.c uudecode.c uuencode.c which.c wrapper.c xd.c \
	xor.c 

# This is a list of all the .c and source files:
CFILES=$(ctemp) 
SFILES=$h *.h $(CFILES)

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
C=$(CC) -c
L=$(LDFLAGS)
M=/usr/man/manl
#O=-o
O=libV.a $L -o
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here is the list of (most) programs that we can make.  Note the sublists of
# links to a single program.

BOX=box Box abox Abox cbox Cbox Sbox
CLMR=clmr cp Cp lc Lc ln mv Mv rs Rs Bp bp rm
FP=fp Fp

P= Cat \
	$(BOX) $(CLMR) $(FP) Bp Cp Hex Lc Ln Mkdir Mv Rm addr chist ae align args \
	asc b7 bp bsplit byteyears call chars charset conn count cputype cut \
	detab dirnam duplen env factor false finfo gdbmsrvr gdbmtest goedel hd \
	hello hex hosttype jabber lastarg machtype mailfile mkdir mod nbiotest \
	newer newtype nop older overwrite p34 p43 page perror proxy randline \
	relink rowbytesum say saying sel slowcopy sorthosts spin strcmp \
	stripman symtime synclock systype taillog tcpclient tcpproxy fd tcpserver \
	tee testfloat testrand timestamp to true udpclient udpserver unixtime \
	unlink utsname uudecode uuencode which wrapper xd xor 

E= \
	Mkdir Which false fp0 fp1 fp2 machtype mailfile nop sbox sucmd true \
	unlink unpackmail 

T=hostype.c

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

BC=b-c 0-7a-t 8-9u-z 
.SUFFIXES:
.SUFFIXES: .o .i .s .c .b
.b.c:;$(BC) <$*.b >$@
.b.i:;make $*.c; make $*.i
.b.s:;make $*.c; make $*.s
.b.o:;make $*.c; make $*.o
.c.i:;$(CC) -E $(CFLAGS) $*.c |sed '/^[ 	]*$$/d' >$@
.c.s:;$(CC) -S $(CFLAGS) $*.c
.c.o:;$(CC) -c $(CFLAGS) $*.c

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

all: scripts $h $P

progs: $h $P

strip:	$P; strip $P

neat:
	@echo Dir: `pwd`
	-/bin/rm -f *- *~ *.out *.log *.bak *.BAK core
clean: neat; -/bin/rm -rf *.a *.o *.i *.L *.sh?? test/???/* install
clobber:clean; -/bin/rm -rf addr ping local.h $(ctemp) $P $E $T *tags Sayindx

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# The test stuff uses the Test script, which is written in perl, so none of
# this will work unless you perl (4 or 5).

test: tests
tests: Test $P
	Test
	touch tests
Tested:
Test: pl/Test
	$(LC) pl/Test Test

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

cfiles: $(CFILES)

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here's a small library of subroutines:

LM=libmisc.a libV.a

MISC= \
	dmp_ip.o err.o getdate.o lastfld.o makeraw.o makesane.o minrand.o \
	misc.o pktime.o split.o str.o

libmisc.a: $(MISC); ar ru libmisc.a $(MISC); ranlib libmisc.a 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here's the distributed library:

LDIST=libdist.a libV.a
DL=-L. -ldist -lV

ODIST= D_newfile.o \
	D_data.o D_init.o D_open.o D_read.o D_write.o D_close.o D_exit.o

libdist.a: $(ODIST); ar ru libdist.a $(ODIST); ranlib libdist.a 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Most programs here invoke the V package. These lines should almost always
# succeed in making it available, if you haven't been too clever in where you
# installed it.  One gotcha:  Until local.h is properly linked, we can't even
# create  Lc, which is used to link in local.h; so we punt and simply require
# the user to decide on a local.h file.  This has the  added  advantage  that
# users who haven't bothered to read README will be stuck forever ...

#local.h:; LinkMy local.h
local.h: *_local.h 
	./Configure

D=libV.a
libV.a:	$(VDIR)/libV.a; Ln $(VDIR)/libV.a libV.a
V.h:	$(VDIR)/V.h; Ln $(VDIR)/V.h V.h
V_M.h: $(VDIR)/V_M.h;Ln $(VDIR)/V_M.h V_M.h
$(VDIR)/libV.a:; cd $(VDIR); make libV.a
#verbose.a:	$(VDIR)/libV.a; Ln $(VDIR)/libV.a verbose.a
#verbose.h:	$(VDIR)/V.h; Ln $(VDIR)/V.h verbose.h
memchunk.h: $(VDIR)/memchunk.h;Ln $(VDIR)/memchunk.h memchunk.h
LinkMy: sh/LinkMy; Ln sh/LinkMy LinkMy

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

GDBM=../gdbm
libgdbm.a: $(GDBM)/libgdbm.a
	Lc $(GDBM)/libgdbm.a libgdbm.a
$(GDBM)/libgdbm.a:
	cd $(GDBM); make 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Invoke the errnotbl script to generate a table of errno codes for this system.

#err.c err.h: errnotbl ; errnotbl 2 errno
#err.c err.h: errnotbl ; errnotbl 2 intro
#err.c err.h: errnotbl ; errnotbl -1 solaris_Intro.2 
#err.c err.h: errnotbl ; errnotbl -1 /usr/include/errno.h
#err.c err.h: errnotbl ; errnotbl -1 /usr/include/linux/errno.h
err.c err.h: errnotbl ; errnotbl -1 /usr/include/sys/errno.h
err.o: err.c err.h
errnotbl: sh/errnotbl; $(LC) sh/errnotbl errnotbl

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

H=V.h V_M.h local.h sys_ctype.h sys_types.h sys_time.h 

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# The getdate module (shamelessly lifted from the GNU emacs package) is a bit
# unusual.   The  source  is  called "getdate.y", and generates a "getdate.c"
# which contains both a main() (protected by #ifdef TEST)  and  a  get_date()
# function.   Note  the  name  difference:  getdate versus get_date.  We link
# getdate.c to get_date.c, so we can compile the two modules separately. This
# is  something  that  changes periodically, as we encounter new systems with
# new bizarrenesses in  the  compiler/linker/make.   See  also  the  unixtime
# program, which is a simple test driver for get_date().

YACC=yacc
getdate.c: getdate.y
	@echo expect 10 shift/reduce conflicts
	$(YACC) $S/getdate.y
	-@if test -f y.tab.c; then \
	   mv y.tab.c getdate.c ;\
	else \
	   if test -f getdate.tab.c ; then \
	       mv getdate.tab.c getdate.c ; \
	   else \
	       echo '*** Unable to create getdate.c' ;\
	   fi ;\
	fi

get_date.o: get_date.c
get_date.c: getdate.c; ln getdate.c get_date.c
getdate.o: getdate.c; $(CC) $(CFLAGS) -c getdate.c

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Most of the programs here are fairly small, and  can  be  made  via  a  few
# one-liners.   It  is  convenient  to  put all the lines for one module here
# together, to minimize the work in making the entries for a new  one.   Just
# find one that is similar, clone it, and change the name.



#.b: $S/#.b; $(LC) $S/#.b #.b
#.h: $S/#.h; $(LC) $S/#.h #.h
#.h: $S/#.h; $(LC) $S/#.h #.h
#Rm: Rm.o $(LM) $D; $(CC) Rm.o $(LM) $D $O Rm
Abox: box; Ln box Abox
Box: box; Ln box Box
Cbox: box; Ln box Cbox
Hex.b: $S/Hex.b; $(LC) $S/Hex.b Hex.b
Hex.c: Hex.b; $(BC) <Hex.b >Hex.c
Hex.o: Hex.c $H
Hex: Hex.o $(LM); $(CC) Hex.o libmisc.a $O Hex
Mkdir: mkdir; -Ln mkdir Mkdir
Rm.b: $S/Rm.b; $(LC) $S/Rm.b Rm.b
Rm.c: Rm.b; $(BC) <Rm.b >Rm.c
Rm: Rm.o $(LM); $(CC) Rm.o libmisc.a $O Rm
Sbox: box; Ln box Sbox
Which: which; Ln which Which
abox: box; Ln box abox
addr.b: $S/addr.b; $(LC) $S/addr.b addr.b
addr.c: addr.b; $(BC) <addr.b >addr.c
addr.o: addr.c $H sys_fcntl.h sys_if.h sys_in.h sys_ioctl.h sys_netdb.h sys_route.h sys_socket.h
ae.b: $S/ae.b; $(LC) $S/ae.b ae.b
ae.c: ae.b; $(BC) <ae.b >ae.c
ae.o: ae.c
ae: ae.o; $(CC) ae.o -o ae
chist.b: $S/chist.b; $(LC) $S/chist.b chist.b
chist.c: chist.b; $(BC) <chist.b >chist.c
chist.o: chist.c
chist: chist.o $D; $(CC) chist.o $D $O chist
align.b: $S/align.b; $(LC) $S/align.b align.b
align.c: align.b; $(BC) <align.b >align.c
align.o: align.c $H
align: align.o $D; $(CC) align.o $D $O align
args.b: $S/args.b; $(LC) $S/args.b args.b
args.c: args.b; $(BC) <args.b >args.c
args.o: args.c
args: args.o; $(CC) args.o -o args
asc.b: $S/asc.b; $(LC) $S/asc.b asc.b
asc.c: asc.b; $(BC) <asc.b >asc.c
asc.o: asc.c $H
asc: asc.o ;$(CC) asc.o -o asc
ascii.h: $S/ascii.h; $(LC) $S/ascii.h ascii.h
atob.o: atob.c
b7.b: $S/b7.b; $(LC) $S/b7.b b7.b
b7.c: b7.b; $(BC) <b7.b >b7.c
b7.o: b7.c
b7: b7.o; $(CC) b7.o -s $(LDFLAGS) $O b7
box.b: $S/box.b; $(LC) $S/box.b box.b
box.c: box.b; $(BC) <box.b >box.c
box.o: box.c $H
box: box.o $(LM); $(CC) box.o $(LM) $O box
bsplit.b: $S/bsplit.b; $(LC) $S/bsplit.b bsplit.b
bsplit.c: bsplit.b; $(BC) <bsplit.b >bsplit.c
bsplit: bsplit.o ;$(CC) bsplit.o $O bsplit
btoa.o: btoa.c
byteyears.b: $S/byteyears.b; $(LC) $S/byteyears.b byteyears.b
byteyears.c: byteyears.b; $(BC) <byteyears.b >byteyears.c
byteyears.o: byteyears.c $H sys_values.h
byteyears: byteyears.o $(LM); $(CC) byteyears.o $(LM) $O byteyears
call.b: $S/call.b; $(LC) $S/call.b call.b
call.c: call.b; $(BC) <call.b >call.c
call.o: call.c $H
call: call.o $D; $(CC) call.o $D $O call
cbox: box; Ln box cbox
chars.b: $S/chars.b; $(LC) $S/chars.b chars.b
chars.c: chars.b; $(BC) <chars.b >chars.c
chars.o: chars.c $H
chars: chars.o $D; $(CC) chars.o $D $O chars
charset.b: $S/charset.b; $(LC) $S/charset.b charset.b
charset.c: charset.b; $(BC) <charset.b >charset.c
charset.o: charset.c
charset.src: charset.c
conn.b: $S/conn.b; $(LC) $S/conn.b conn.b
conn.c: conn.b; $(BC) <conn.b >conn.c
conn.o: conn.c $H sys_fcntl.h sys_signal.h
conn: conn.o connsig.o $(LM); $(CC) conn.o connsig.o $(LM) $O conn
connsig.b: $S/connsig.b; $(LC) $S/connsig.b connsig.b
connsig.c: connsig.b; $(BC) <connsig.b >connsig.c
connsig.o: connsig.c $H sys_fcntl.h sys_signal.h mbox.h
count.b: $S/count.b; $(LC) $S/count.b count.b
count.c: count.b; $(BC) <count.b >count.c
count.o: count.c
count: count.o; $(CC) count.o -s $(LDFLAGS) $O count
cputype.b: $S/cputype.b; $(LC) $S/cputype.b cputype.b
cputype.c: cputype.b; $(BC) <cputype.b >cputype.c
cputype.o: cputype.c local.h
cputype: cputype.o; $(CC) cputype.o $O cputype
cut.b: $S/cut.b; $(LC) $S/cut.b cut.b
cut.c: cut.b; $(BC) <cut.b >cut.c
cut.o: cut.c
cut: cut.o; $(CC) cut.o $O cut
deljunk.b: $S/deljunk.b; $(LC) $S/deljunk.b deljunk.b
deljunk.c: deljunk.b; $(BC) <deljunk.b >deljunk.c
detab.b: $S/detab.b; $(LC) $S/detab.b detab.b
detab.c: detab.b; $(BC) <detab.b >detab.c
detab.o: detab.c
detab: detab.o; $(CC) detab.o $O detab
dirnam.b: $S/dirnam.b; $(LC) $S/dirnam.b dirnam.b
dirnam.c: dirnam.b; $(BC) <dirnam.b >dirnam.c
dirnam.o: dirnam.c
dirnam: dirnam.o; $(CC) dirnam.o $O dirnam
dmp_ip.b: $S/dmp_ip.b; $(LC) $S/dmp_ip.b dmp_ip.b
dmp_ip.c: dmp_ip.b; $(BC) <dmp_ip.b >dmp_ip.c
dmp_ip.o: dmp_ip.c $H icmp.h ip.h iphdr.h
duplen.b: $S/duplen.b; $(LC) $S/duplen.b duplen.b
duplen.c: duplen.b; $(BC) <duplen.b >duplen.c
duplen.o: duplen.c
duplen: duplen.o; $(CC) duplen.o $O duplen
echo.b: $S/echo.b; $(LC) $S/echo.b echo.b
echo.c: echo.b; $(BC) <echo.b >echo.c
env.b: $S/env.b; $(LC) $S/env.b env.b
env.c: env.b; $(BC) <env.b >env.c
env.o: env.c
env: env.o; $(CC) env.o -o env
factor.b: $S/factor.b; $(LC) $S/factor.b factor.b
factor.c: factor.b; $(BC) <factor.b >factor.c
factor.o: factor.c
factor: factor.o; $(CC) factor.o $O factor
false: false.c; $(CC) false.c -o false
findsb.b: $S/findsb.b; $(LC) $S/findsb.b findsb.b
findsb.c: findsb.b; $(BC) <findsb.b >findsb.c
findsb.o: findsb.c
findsb: findsb.o $(LM); $(CC) findsb.o $(LM) $O findsb
finfo.b: $S/finfo.b; $(LC) $S/finfo.b finfo.b
finfo.c: finfo.b; $(BC) <finfo.b >finfo.c
finfo.o: finfo.c $H sys_fcntl.h
finfo: finfo.o $(LM); $(CC) finfo.o $(LM) $O finfo
fp.h: $S/fp.h; $(LC) $S/fp.h fp.h
gdbm.h: $S/gdbm.h; $(LC) $S/gdbm.h gdbm.h
gdbmsrvr.b: $S/gdbmsrvr.b; $(LC) $S/gdbmsrvr.b gdbmsrvr.b
gdbmsrvr.c: gdbmsrvr.b; $(BC) <gdbmsrvr.b >gdbmsrvr.c
gdbmsrvr.h: $S/gdbmsrvr.h; $(LC) $S/gdbmsrvr.h gdbmsrvr.h
gdbmsrvr.o: gdbmsrvr.c gdbmsrvr.h $H
gdbmsrvr: gdbmsrvr.o $D libgdbm.a; $(CC) gdbmsrvr.o $D $(LDFLAGS) libgdbm.a $O gdbmsrvr
gdbmtest.b: $S/gdbmtest.b; $(LC) $S/gdbmtest.b gdbmtest.b
gdbmtest.c: gdbmtest.b; $(BC) <gdbmtest.b >gdbmtest.c
gdbmtest.o: gdbmtest.c $H
gdbmtest: gdbmtest.o $D; $(CC) gdbmtest.o $D $(LDFLAGS) $O gdbmtest
getime.b: $S/getime.b; $(LC) $S/getime.b getime.b
getime.c: getime.b; $(BC) <getime.b >getime.c
goedel.b: $S/goedel.b; $(LC) $S/goedel.b goedel.b
goedel.c: goedel.b; $(BC) <goedel.b >goedel.c
goedel.o: goedel.c $H
goedel: goedel.o ;$(CC) goedel.o -o goedel
hd.b: $S/hd.b; $(LC) $S/hd.b hd.b
hd.c: hd.b; $(BC) <hd.b >hd.c
hd.o: hd.c $H sys_fcntl.h
hd: hd.o libV.a; $(CC) hd.o $O hd
hello.b: $S/hello.b; $(LC) $S/hello.b hello.b
hello.c: hello.b; $(BC) <hello.b >hello.c
hex.b: $S/hex.b; $(LC) $S/hex.b hex.b
hex.c: hex.b; $(BC) <hex.b >hex.c
hex.o: hex.c $H
hex: hex.o $(LM); $(CC) hex.o $(LM) $O hex
hosttype.b: $S/hosttype.b; $(LC) $S/hosttype.b hosttype.b
hosttype.c: hosttype.b; $(BC) <hosttype.b >hosttype.c
hosttype: hosttype.o $(LM); $(CC) hosttype.o $(LM) $O hosttype
icmp.b: $S/icmp.b; $(LC) $S/icmp.b icmp.b
icmp.c: icmp.b; $(BC) <icmp.b >icmp.c
icmp.h: $S/icmp.h; $(LC) $S/icmp.h icmp.h
ip.h: $S/ip.h; $(LC) $S/ip.h ip.h
iphdr.h: $S/iphdr.h; $(LC) $S/iphdr.h iphdr.h
jabber.b: $S/jabber.b; $(LC) $S/jabber.b jabber.b
jabber.c: jabber.b; $(BC) <jabber.b >jabber.c
jabber.o: jabber.c
jabber: jabber.o; $(CC) jabber.o $O jabber
laman.b: $S/laman.b; $(LC) $S/laman.b laman.b
laman.c: laman.b; $(BC) <laman.b >laman.c
laman.o: laman.c
last.o: last.c
lastarg.b: $S/lastarg.b; $(LC) $S/lastarg.b lastarg.b
lastarg.c: lastarg.b; $(BC) <lastarg.b >lastarg.c
lastarg.o: lastarg.c
lastarg: lastarg.o; $(CC) lastarg.o $O lastarg
lastfld.b: $S/lastfld.b; $(LC) $S/lastfld.b lastfld.b
lastfld.c: lastfld.b; $(BC) <lastfld.b >lastfld.c
lastfld.o: lastfld.c
line.b: $S/line.b; $(LC) $S/line.b line.b
line.c: line.b; $(BC) <line.b >line.c
machtype.b: $S/machtype.b; $(LC) $S/machtype.b machtype.b
machtype.c: machtype.b; $(BC) <machtype.b >machtype.c
machtype.o: machtype.c local.h
machtype: machtype.o; $(CC) machtype.o $O machtype
mailfile.b: $S/mailfile.b; $(LC) $S/mailfile.b mailfile.b
mailfile.c: mailfile.b; $(BC) <mailfile.b >mailfile.c
mailfile.o: mailfile.c local.h
mailfile: mailfile.o; $(CC) mailfile.o $O mailfile
makeraw.b: $S/makeraw.b; $(LC) $S/makeraw.b makeraw.b
makeraw.c: makeraw.b; $(BC) <makeraw.b >makeraw.c
makeraw.o: makeraw.c V.h $(H) ascii.h sys_termio.h sys_termios.h sys_sgtty.h
makesane.b: $S/makesane.b; $(LC) $S/makesane.b makesane.b
makesane.c: makesane.b; $(BC) <makesane.b >makesane.c
makesane.o: makesane.c V.h $(H) sys_termio.h sys_termios.h sys_sgtty.h
mbox.h: $S/mbox.h; $(LC) $S/mbox.h mbox.h
minrand.b: $S/minrand.b; $(LC) $S/minrand.b minrand.b
minrand.c: minrand.b; $(BC) <minrand.b >minrand.c
minrand.h: $S/minrand.h; $(LC) $S/minrand.h minrand.h
minrand.o: minrand.c
misc.b: $S/misc.b; $(LC) $S/misc.b misc.b
misc.c: misc.b; $(BC) <misc.b >misc.c
misc.o: misc.c $H
mkdir.b: $S/mkdir.b; $(LC) $S/mkdir.b mkdir.b
mkdir.c: mkdir.b; $(BC) <mkdir.b >mkdir.c
mkdir.o: mkdir.c $H
mkdir: mkdir.o $(LM); $(CC) mkdir.o $(LM) $O mkdir
mod.b: $S/mod.b; $(LC) $S/mod.b mod.b
mod.c: mod.b; $(BC) <mod.b >mod.c
mod.o: mod.c $H sys_fcntl.h
mod: mod.o $D; $(CC) mod.o $D $O mod
nbiotest.b: $S/nbiotest.b; $(LC) $S/nbiotest.b nbiotest.b
nbiotest.c: nbiotest.b; $(BC) <nbiotest.b >nbiotest.c
nbiotest.o: nbiotest.c $H sys_fcntl.h
nbiotest: nbiotest.o $D; $(CC) nbiotest.o $D $O nbiotest
newer.b: $S/newer.b; $(LC) $S/newer.b newer.b
newer.c: newer.b; $(BC) <newer.b >newer.c
newer.o: newer.c $H
newer: newer.o $D; $(CC) newer.o $D $O newer
newtype.b: $S/newtype.b; $(LC) $S/newtype.b newtype.b
newtype.c: newtype.b; $(BC) <newtype.b >newtype.c
newtype.o: newtype.c $H sys_dir.h
newtype: newtype.o $(LM) $D; $(CC) newtype.o $(LM) $D $O newtype
nonnumeric.b: $S/nonnumeric.b; $(LC) $S/nonnumeric.b nonnumeric.b
nonnumeric.c: nonnumeric.b; $(BC) <nonnumeric.b >nonnumeric.c
nop.b: $S/nop.b; $(LC) $S/nop.b nop.b
nop.c: nop.b; $(BC) <nop.b >nop.c
nop: nop.c; $(CC) nop.c -o nop
numtest.b: $S/numtest.b; $(LC) $S/numtest.b numtest.b
numtest.c: numtest.b; $(BC) <numtest.b >numtest.c
older.b: $S/older.b; $(LC) $S/older.b older.b
older.c: older.b; $(BC) <older.b >older.c
older.o: older.c $H
older: older.o $D; $(CC) older.o $D $O older
open.b: $S/open.b; $(LC) $S/open.b open.b
open.c: open.b; $(BC) <open.b >open.c
open.o: open.c $H
open: open.o; $(CC) open.o -o open
overwrite.b: $S/overwrite.b; $(LC) $S/overwrite.b overwrite.b
overwrite.c: overwrite.b; $(BC) <overwrite.b >overwrite.c
overwrite.o: overwrite.c; $(CC) -c -DDEBUG=0 overwrite.c
overwrite: overwrite.o; $(CC) overwrite.o $O overwrite
p34.b: $S/p34.b; $(LC) $S/p34.b p34.b
p34.c: p34.b; $(BC) <p34.b >p34.c
p34.o: p34.c $H
p34: p34.o pkunpk.o; $(CC) p34.o pkunpk.o $D $O p34
p43.b: $S/p43.b; $(LC) $S/p43.b p43.b
p43.c: p43.b; $(BC) <p43.b >p43.c
p43.o: p43.c $H
p43: p43.o pkunpk.o; $(CC) p43.o pkunpk.o $D $O p43
page.b: $S/page.b; $(LC) $S/page.b page.b
page.c: page.b; $(BC) <page.b >page.c
page.o: page.c; $(CC) -c -DDEBUG=0 page.c
page: page.o; $(CC) page.o $O page
perror.b: $S/perror.b; $(LC) $S/perror.b perror.b
perror.c: perror.b; $(BC) <perror.b >perror.c
perror.o: perror.c $H sys_errno.h
perror: perror.o $(LM) libV.a; $(CC) perror.o $(LM) $O perror
pgph.b: $S/pgph.b; $(LC) $S/pgph.b pgph.b
pgph.c: pgph.b; $(BC) <pgph.b >pgph.c
ping.b: $S/ping.b; $(LC) $S/ping.b ping.b
ping.c: ping.b; $(BC) <ping.b >ping.c
ping.o: ping.c $H sys_file.h sys_param.h sys_ip.h sys_ip_icmp.h sys_wait.h
pktime.b: $S/pktime.b; $(LC) $S/pktime.b pktime.b
pktime.c: pktime.b; $(BC) <pktime.b >pktime.c
pktime.h: $S/pktime.h; $(LC) $S/pktime.h pktime.h
pktime.o: pktime.c pktime.h $H
pkunpk.b: $S/pkunpk.b; $(LC) $S/pkunpk.b pkunpk.b
pkunpk.c: pkunpk.b; $(BC) <pkunpk.b >pkunpk.c
pkunpk.o: pkunpk.c $H
proto.b: $S/proto.b; $(LC) $S/proto.b proto.b
proto.c: proto.b; $(BC) <proto.b >proto.c
proxy.b: $S/proxy.b; $(LC) $S/proxy.b proxy.b
proxy.c: proxy.b; $(BC) <proxy.b >proxy.c
proxy.o: proxy.c
proxy: proxy.o $(LM); $(CC) proxy.o $(LM) $O proxy
wrapper.b: $S/wrapper.b; $(LC) $S/wrapper.b wrapper.b
wrapper.c: wrapper.b; $(BC) <wrapper.b >wrapper.c
wrapper.o: wrapper.c
wrapper: wrapper.o $(LM); $(CC) wrapper.o $(LM) $O wrapper
randline.b: $S/randline.b; $(LC) $S/randline.b randline.b
randline.c: randline.b; $(BC) <randline.b >randline.c
randline.o: randline.c local.h
randline: randline.o $(LM); $(CC) randline.o $(LM) $O randline
relink.b: $S/relink.b; $(LC) $S/relink.b relink.b
relink.c: relink.b; $(BC) <relink.b >relink.c
relink.o: relink.c $H sys_mount.h sys_string.h
relink: relink.o $(LM); $(CC) relink.o $(LM) $O relink
rowbytesum.b: $S/rowbytesum.b; $(LC) $S/rowbytesum.b rowbytesum.b
rowbytesum.c: rowbytesum.b; $(BC) <rowbytesum.b >rowbytesum.c
rowbytesum.o: rowbytesum.c $H
rowbytesum: rowbytesum.o $D; $(CC) rowbytesum.o $D $(LDFLAGS) $O rowbytesum
rs.b: $S/rs.b; $(LC) $S/rs.b rs.b
rs.c: rs.b; $(BC) <rs.b >rs.c
rs.o: rs.c $H sys_stat.h
say.b: $S/say.b; $(LC) $S/say.b say.b
say.c: say.b; $(BC) <say.b >say.c
say.o: say.c $H
say: say.o $D; $(CC) say.o $D $(LDFLAGS) $O say
saying.b: $S/saying.b; $(LC) $S/saying.b saying.b
saying.c: saying.b; $(BC) <saying.b >saying.c
saying.o: saying.c $H sys_fcntl.h
saying: saying.o $(LM) libV.a; $(CC) saying.o $(LM) $O saying
sbox: box; Ln box sbox
sel.b: $S/sel.b; $(LC) $S/sel.b sel.b
sel.c: sel.b; $(BC) <sel.b >sel.c
sel.o: sel.c $H sys_limits.h
sel: sel.o; $(CC) sel.o $O sel
slowcopy.b: $S/slowcopy.b; $(LC) $S/slowcopy.b slowcopy.b
slowcopy.c: slowcopy.b; $(BC) <slowcopy.b >slowcopy.c
slowcopy.o: slowcopy.c $H
slowcopy: slowcopy.o $(LM); $(CC) slowcopy.o $(LM) $O slowcopy
sorthosts.b: $S/sorthosts.b; $(LC) $S/sorthosts.b sorthosts.b
sorthosts.c: sorthosts.b; $(BC) <sorthosts.b >sorthosts.c
sorthosts.o: sorthosts.c $H
sorthosts: sorthosts.o $(LM); $(CC) sorthosts.o $(LM) $O sorthosts
spin.b: $S/spin.b; $(LC) $S/spin.b spin.b
spin.c: spin.b; $(BC) <spin.b >spin.c
spin.o: spin.c $H
spin: spin.o ;$(CC) spin.o -o spin
split.b: $S/split.b; $(LC) $S/split.b split.b
split.c: split.b; $(BC) <split.b >split.c
str.h: $S/str.h; $(LC) $S/str.h str.h
strcmp.b: $S/strcmp.b; $(LC) $S/strcmp.b strcmp.b
strcmp.c: strcmp.b; $(BC) <strcmp.b >strcmp.c
strcmp.o: strcmp.c $H
strcmp: strcmp.o $D; $(CC) strcmp.o $D $(LDFLAGS) $O strcmp
stripman.b: $S/stripman.b; $(LC) $S/stripman.b stripman.b
stripman.c: stripman.b; $(BC) <stripman.b >stripman.c
stripman.o: stripman.c
stripman: stripman.o; $(CC) stripman.o $O stripman
strng.b: $S/strng.b; $(LC) $S/strng.b strng.b
strng.c: strng.b; $(BC) <strng.b >strng.c
sucmd.b: $S/sucmd.b; $(LC) $S/sucmd.b sucmd.b
sucmd.c: sucmd.b; $(BC) <sucmd.b >sucmd.c
symtime.b: $S/symtime.b; $(LC) $S/symtime.b symtime.b
symtime.c: symtime.b; $(BC) <symtime.b >symtime.c
symtime.o: symtime.c $H
symtime: symtime.o; $(CC) symtime.o $O symtime
synclock.b: $S/synclock.b; $(LC) $S/synclock.b synclock.b
synclock.c: synclock.b; $(BC) <synclock.b >synclock.c
synclock.o: synclock.c $H
synclock: synclock.o libV.a; $(CC) synclock.o $O synclock
sys.o: sys.c icmp.h $H
sys_ctype.h: $S/sys_ctype.h; $(LC) $S/sys_ctype.h sys_ctype.h
sys_dir.h: $S/sys_dir.h; $(LC) $S/sys_dir.h sys_dir.h
sys_errno.h: $S/sys_errno.h; $(LC) $S/sys_errno.h sys_errno.h
sys_fcntl.h: $S/sys_fcntl.h; $(LC) $S/sys_fcntl.h sys_fcntl.h
sys_file.h: $S/sys_file.h; $(LC) $S/sys_file.h sys_file.h
sys_if.h: $S/sys_if.h; $(LC) $S/sys_if.h sys_if.h
sys_in.h: $S/sys_in.h; $(LC) $S/sys_in.h sys_in.h
sys_in_systm.h: $S/sys_in_systm.h; $(LC) $S/sys_in_systm.h sys_in_systm.h
sys_ioctl.h: $S/sys_ioctl.h; $(LC) $S/sys_ioctl.h sys_ioctl.h
sys_ip.h: $S/sys_ip.h; $(LC) $S/sys_ip.h sys_ip.h
sys_ip_icmp.h: $S/sys_ip_icmp.h; $(LC) $S/sys_ip_icmp.h sys_ip_icmp.h
sys_limits.h: $S/sys_limits.h; $(LC) $S/sys_limits.h sys_limits.h
sys_mount.h: $S/sys_mount.h; $(LC) $S/sys_mount.h sys_mount.h
sys_netdb.h: $S/sys_netdb.h; $(LC) $S/sys_netdb.h sys_netdb.h
sys_param.h: $S/sys_param.h; $(LC) $S/sys_param.h sys_param.h
sys_resource.h: $S/sys_resource.h; $(LC) $S/sys_resource.h sys_resource.h
sys_route.h: $S/sys_route.h; $(LC) $S/sys_route.h sys_route.h
sys_sgtty.h: $S/sys_sgtty.h; $(LC) $S/sys_sgtty.h sys_sgtty.h
sys_signal.h: $S/sys_signal.h; $(LC) $S/sys_signal.h sys_signal.h
sys_socket.h: $S/sys_socket.h; $(LC) $S/sys_socket.h sys_socket.h
sys_stat.h: $S/sys_stat.h; $(LC) $S/sys_stat.h sys_stat.h
sys_stdio.h: $S/sys_stdio.h; $(LC) $S/sys_stdio.h sys_stdio.h
sys_stdlib.h: $S/sys_stdlib.h; $(LC) $S/sys_stdlib.h sys_stdlib.h
sys_string.h: $S/sys_string.h; $(LC) $S/sys_string.h sys_string.h
sys_sysmacros.h: $S/sys_sysmacros.h; $(LC) $S/sys_sysmacros.h sys_sysmacros.h
sys_termio.h: $S/sys_termio.h; $(LC) $S/sys_termio.h sys_termio.h
sys_termios.h: $S/sys_termios.h; $(LC) $S/sys_termios.h sys_termios.h
sys_time.h: $S/sys_time.h; $(LC) $S/sys_time.h sys_time.h
sys_types.h: $S/sys_types.h; $(LC) $S/sys_types.h sys_types.h
sys_utime.h: $S/sys_utime.h; $(LC) $S/sys_utime.h sys_utime.h
sys_utsname.h: $S/sys_utsname.h; $(LC) $S/sys_utsname.h sys_utsname.h
sys_values.h: $S/sys_values.h; $(LC) $S/sys_values.h sys_values.h
sys_wait.h: $S/sys_wait.h; $(LC) $S/sys_wait.h sys_wait.h
sys_wait3.h: $S/sys_wait3.h; $(LC) $S/sys_wait3.h sys_wait3.h
systype.b: $S/systype.b; $(LC) $S/systype.b systype.b
systype.c: systype.b; $(BC) <systype.b >systype.c
systype.o: systype.c $H
systype: systype.o; $(CC) systype.o $O systype
tail.b: $S/tail.b; $(LC) $S/tail.b tail.b
tail.c: tail.b; $(BC) <tail.b >tail.c
taillog.b: $S/taillog.b; $(LC) $S/taillog.b taillog.b
taillog.c: taillog.b; $(BC) <taillog.b >taillog.c
taillog.o: taillog.c $H
taillog: taillog.o $D; $(CC) taillog.o $D $(LDFLAGS) $O taillog
tc.b: $S/tc.b; $(LC) $S/tc.b tc.b
tc.c: tc.b; $(BC) <tc.b >tc.c
tcpclient.b: $S/tcpclient.b; $(LC) $S/tcpclient.b tcpclient.b
tcpclient.c: tcpclient.b; $(BC) <tcpclient.b >tcpclient.c
tcpclient.o: tcpclient.c $H
tcpclient: tcpclient.o $D; $(CC) tcpclient.o $D $(LDFLAGS) $O tcpclient
tcpproxy.b: $S/tcpproxy.b; $(LC) $S/tcpproxy.b tcpproxy.b
tcpproxy.c: tcpproxy.b; $(BC) <tcpproxy.b >tcpproxy.c
tcpproxy.o: tcpproxy.c $H 
tcpproxy: tcpproxy.o $(LM); $(CC) tcpproxy.o $(LM) $O tcpproxy
tcpserver.b: $S/tcpserver.b; $(LC) $S/tcpserver.b tcpserver.b
tcpserver.c: tcpserver.b; $(BC) <tcpserver.b >tcpserver.c
tcpserver.o: tcpserver.c $H
tcpserver: tcpserver.o $D; $(CC) tcpserver.o $D $(LDFLAGS) $O tcpserver
fd.b: $S/fd.b; $(LC) $S/fd.b fd.b
fd.c: fd.b; $(BC) <fd.b >fd.c
fd.o: fd.c $H
fd: fd.o $D; $(CC) fd.o $D $(LDFLAGS) $O fd
tee.b: $S/tee.b; $(LC) $S/tee.b tee.b
tee.c: tee.b; $(BC) <tee.b >tee.c
tee.o: tee.c $H
tee: tee.o $D; $(CC) tee.o $D $(LDFLAGS) $O tee
testfloat.b: $S/testfloat.b; $(LC) $S/testfloat.b testfloat.b
testfloat.c: testfloat.b; $(BC) <testfloat.b >testfloat.c
testfloat: testfloat.o libV.a; $(CC) testfloat.o -lm $O testfloat
testrand.b: $S/testrand.b; $(LC) $S/testrand.b testrand.b
testrand.c: testrand.b; $(BC) <testrand.b >testrand.c
testrand.o: testrand.c
testrand: testrand.o minrand.o; $(CC) testrand.o minrand.o $(LDFLAGS) $O testrand
timestamp.b: $S/timestamp.b; $(LC) $S/timestamp.b timestamp.b
timestamp.c: timestamp.b; $(BC) <timestamp.b >timestamp.c
timestamp.o: timestamp.c
timestamp: timestamp.o; $(CC) timestamp.o -o timestamp
to.b: $S/to.b; $(LC) $S/to.b to.b
to.c: to.b; $(BC) <to.b >to.c
to.o: to.c $H
to: to.o $D ;$(CC) to.o $D $O to
true: true.c; $(CC) true.c -o true
udpclient.b: $S/udpclient.b; $(LC) $S/udpclient.b udpclient.b
udpclient.c: udpclient.b; $(BC) <udpclient.b >udpclient.c
udpclient.o: udpclient.c $H
udpclient: udpclient.o $D; $(CC) udpclient.o $D $(LDFLAGS) $O udpclient
udpserver.b: $S/udpserver.b; $(LC) $S/udpserver.b udpserver.b
udpserver.c: udpserver.b; $(BC) <udpserver.b >udpserver.c
udpserver.o: udpserver.c $H
udpserver: udpserver.o $D; $(CC) udpserver.o $D $(LDFLAGS) $O udpserver
unixtime.b: $S/unixtime.b; $(LC) $S/unixtime.b unixtime.b
unixtime.c: unixtime.b; $(BC) <unixtime.b >unixtime.c
unixtime.o: unixtime.c $H
unixtime: unixtime.o getdate.o $D;$(CC) unixtime.o getdate.o $D -o unixtime 
unlink.b: $S/unlink.b; $(LC) $S/unlink.b unlink.b
unlink.c: unlink.b; $(BC) <unlink.b >unlink.c
unlink: unlink.c libV.a; $(CC) unlink.c $(LDFLAGS) $O unlink
unpackmail.b: $S/unpackmail.b; $(LC) $S/unpackmail.b unpackmail.b
unpackmail.c: unpackmail.b; $(BC) <unpackmail.b >unpackmail.c
unpackmail.o: unpackmail.c V.h sys_fcntl.h; $(CC) -c unpackmail.c
unpackmail: unpackmail.o $(LM); $(CC) unpackmail.o $(LM) $O unpackmail
utsname.b: $S/utsname.b; $(LC) $S/utsname.b utsname.b
utsname.c: utsname.b; $(BC) <utsname.b >utsname.c
utsname: utsname.c sys_utsname.h libV.a; $(CC) utsname.c $(LDFLAGS) $O utsname
uudecode.b: $S/uudecode.b; $(LC) $S/uudecode.b uudecode.b
uudecode.c: uudecode.b; $(BC) <uudecode.b >uudecode.c
uudecode.o: uudecode.c
uudecode: uudecode.o $D; $(CC) uudecode.o $D $(LDFLAGS) $O uudecode
uuencode.b: $S/uuencode.b; $(LC) $S/uuencode.b uuencode.b
uuencode.c: uuencode.b; $(BC) <uuencode.b >uuencode.c
uuencode.o: uuencode.c
uuencode: uuencode.o $D; $(CC) uuencode.o $D $(LDFLAGS) $O uuencode
which.b: $S/which.b; $(LC) $S/which.b which.b
which.c: which.b; $(BC) <which.b >which.c
which.o: which.c sys_fcntl.h
which: which.o $(LM); $(CC) which.o $(LM) $O which
xd.b: $S/xd.b; $(LC) $S/xd.b xd.b
xd.c: xd.b; $(BC) <xd.b >xd.c
xd.o: xd.c $H
xd: xd.o $(LM); $(CC) xd.o $(LM) $O xd
xor: xor.c; $(CC) xor.c -o xor
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here are some entries to do partial compiles, so we can parallelize the job
# somewhat.   This  can  save time when a total recompile is necessary, since
# Unix can generally do 3 or 4 compiles in the same time as one.

O0: Cat.o cut.o goedel.o overwrite.o symtime.o which.o
O1: Hex.o detab.o mailfile.o proxy.o synclock.o
O2: addr.o duplen.o misc.o page.o spin.o testfloat.o
O3: ae.o count.o jabber.o p34.o say.o tcpclient.o
O4: align.o finfo.o mkdir.o pktime.o systype.o wrapper.o
O5: args.o env.o lastarg.o perror.o stripman.o xd.o
O6: asc.o dirnam.o makeraw.o randline.o tee.o uuencode.o
O7: b7.o cputype.o makesane.o rowbytesum.o udpclient.o
O8: box.o dmp_ip.o minrand.o relink.o tcpproxy.o
O9: bsplit.o gdbmtest.o older.o saying.o timestamp.o
OA: byteyears.o hd.o nbiotest.o sel.o tcpserver.o
OB: call.o err.o lastfld.o ping.o split.o to.o
OC: chars.o fp.o machtype.o pkunpk.o taillog.o
OD: chist.o gdbmsrvr.o newtype.o sorthosts.o uudecode.o
OE: clmr.o factor.o mod.o p43.o slowcopy.o udpserver.o
OF: conn.o fd.o hex.o newer.o rs.o strcmp.o unixtime.o

O01: O0 O1
O23: O2 O3
O45: O4 O5
O67: O6 O7
O89: O8 O9
OAB: OA OB
OCD: OC OD
OEF: OE OF
O03: O0 O1 O2 O3
O47: O4 O5 O6 O7
O8B: O8 O9 OA OB
OCF: OC OD OE OF
O07: O03 O47
O8F: O8B OCF
OBJ: O07 O8F

# Here are some entries to make the .o files in parallel:
o2:
	@echo Make the .o files in 2 parallel makes ...
	@$(MK) O07 & $(MK) O8F & wait
o4:
	@echo Make the .o files in 4 parallel makes ...
	@$(MK) O03 & $(MK) O47 & $(MK) O8B & $(MK) OCF & wait
o8:
	@echo Make the .o files in 8 parallel makes ...
	@$(MK) O01 & $(MK) O23 & $(MK) O45 & $(MK) O67 & \
	$(MK) O89 & $(MK) OAB & $(MK) OCD & $(MK) OEF & wait
	@echo Parallel makes done.

# Some abbreviations:
par: o4
pin: par install neat

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here are the entries for any programs that can't be built trivially.

addr:  addr.o $(LM)
	-Rm addr
	$(CC) addr.o $(LM) $O addr
	@echo '	+---------------------------------------------------+'
	@echo '	| Warning: this version of addr is not setuid-root. |'
	@echo '	| It may not work very well for unprivileged users. |'
	@echo '	|     Please run "make install" as super-user.      |'
	@echo '	+---------------------------------------------------+'

Cat.b: $S/Cat.b; $(LC) $S/Cat.b Cat.b
Cat.c: Cat.b; $(BC) <Cat.b >Cat.c
Cat.o: Cat.c $H
Cat: Cat.o $(LDIST); $(CC) Cat.o $(LM) $(DL) -o Cat
clmr.b: $S/clmr.b; $(LC) $S/clmr.b clmr.b
clmr.c: clmr.b; $(BC) <clmr.b >clmr.c
clmr.o: clmr.c $H
clmr: clmr.o rs.o $(LM); $(CC) clmr.o rs.o $(LM) $O clmr
cp: clmr; clmr =Ln clmr cp
Cp: clmr; clmr =Ln clmr Cp
lc: clmr; clmr =Ln clmr lc
Lc: clmr; clmr =Ln clmr Lc
ln: clmr; clmr =Ln clmr ln
Ln: clmr; clmr =Ln clmr Ln
mv: clmr; clmr =Ln clmr mv
Mv: clmr; clmr =Ln clmr Mv
rs: clmr; clmr =Ln clmr rs
Rs: clmr; clmr =Ln clmr Rs
Bp: clmr; clmr =Ln clmr Bp
bp: clmr; clmr =Ln clmr bp
rm: clmr; clmr =Ln clmr rm


fp.b: $S/fp.b; $(LC) $S/fp.b fp.b
fp.c: fp.b; $(BC) <fp.b >fp.c
fp.o: fp.c $H
Fp: fp; Ln  fp Fp
fp:	fp.o $(LM); $(CC)  fp.o $(LM) $O fp
fp0:	fp.b $D
	sed <fp.b >fp0.c -e 's/^:[0]//' -e '/^:[1-9].*/d' -e 's/"V.h"/"V_0.h"/'
	$(CC)  fp0.c $D $O fp0
fp1:	fp.b $D
	sed <fp.b >fp1.c -e 's/^:[0-1]//' -e 's/^:[2-9].*//'
	$(CC)  fp1.c $D $O fp1
fp2:	fp.b $D
	sed <fp.b >fp2.c -e 's/^:[0-2]//' -e 's/^:[3-9].*//'
	$(CC)  fp2.c $D $O fp2

ping:	ping.o $(LM)
	-Rm ping
	$(CC)  ping.o $(LM) $O ping
	@echo '	+---------------------------------------------------+'
	@echo '	| Warning: this version of ping is not setuid-root. |'
	@echo "	|   It won't work at all for unprivileged users.    |"
	@echo '	|     Please run "make install" as super-user.      |'
	@echo '	+---------------------------------------------------+'

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here is how we link in system-dependent scripts from the sh.* directories:

scripts: LinkMy errnotbl sh/Kill sh/PS sh/PSS
sh/Kill: sh.$(SYSTYPE)/Kill; Ln sh.$(SYSTYPE)/Kill sh/Kill
sh/PS: sh.$(SYSTYPE)/PS; Ln sh.$(SYSTYPE)/PS   sh/PS
sh/PSS: sh.$(SYSTYPE)/PSS; Ln sh.$(SYSTYPE)/PSS  sh/PSS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
doc docs:	addr.d cut.d

addr.d:	addr.m;	nroff -man addr.m |stripman >addr.d
cut.d:	cut.m;	nroff -man cut.m  |stripman >cut.d
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here's a section to install the programs in a directory.  You will probably
# have to be super-user, unless $B is already there and writable.

install: lib bin $B/addr $B/ping
	-chown root $B/addr; chmod 4755 $B/addr
	-chown root $B/ping; chmod 4755 $B/ping
	touch install

lib:  bin

bin: \
	$B $B/Abox $B/Box $B/Cbox $B/Cp $B/Fp $B/Hex $B/Lc $B/Ln $B/Mkdir $B/Mv \
	$B/Rm $B/Sbox $B/Which $B/abox $B/addr $B/chist $B/ae $B/align $B/args $B/asc $B/b7 \
	$B/box $B/bp $B/bsplit $B/byteyears $B/cbox $B/chars $B/Cat $B/clmr $B/conn \
	$B/count $B/cp $B/cputype $B/cut $B/detab $B/dirnam $B/duplen $B/env \
	$B/factor $B/false $B/finfo $B/fp $B/gdbmsrvr $B/gdbmtest $B/hd $B/hex \
	$B/jabber $B/lastarg $B/lc $B/ln $B/machtype $B/mailfile $B/mkdir $B/mod \
	$B/mv $B/nbiotest $B/newer $B/newtype $B/nop $B/older $B/perror $B/proxy \
	$B/randline $B/relink $B/rm $B/rowbytesum $B/say $B/saying $B/sbox $B/sel \
	$B/slowcopy $B/sorthosts $B/strcmp $B/stripman $B/symtime $B/synclock \
	$B/systype $B/taillog $B/tcpclient $B/tcpproxy $B/fd $B/tcpserver $B/tee 

$B:; -mkdir -p $B

$B/Abox:       Abox;       $(LC) Abox       $B/Abox
$B/Box:        Box;        $(LC) Box        $B/Box
$B/Cbox:       Cbox;       $(LC) Cbox       $B/Cbox
$B/Cp:         Cp;         $(LC) Cp         $B/Cp
$B/Fp:         fp;         $(LC) fp         $B/Fp
$B/Hex:        Hex;        $(LC) Hex        $B/Hex
$B/Lc:         Lc;         $(LC) Lc         $B/Lc
$B/Ln:         Ln;         $(LC) Ln         $B/Ln
$B/Mkdir:      Mkdir;      $(LC) Mkdir      $B/Mkdir
$B/Mv:         Mv;         $(LC) Mv         $B/Mv
$B/Rm:         Rm;         $(LC) Rm         $B/Rm
$B/Sbox:       Sbox;       $(LC) Sbox       $B/Sbox
$B/Which:      Which;      $(LC) Which      $B/Which
$B/abox:       abox;       $(LC) abox       $B/abox
$B/addr:       addr;       $(LC) addr       $B/addr
$B/chist:         chist;         $(LC) chist         $B/chist
$B/ae:         ae;         $(LC) ae         $B/ae
$B/align:      align;      $(LC) align      $B/align
$B/args:       args;       $(LC) args       $B/args
$B/asc:        asc;        $(LC) asc        $B/asc
$B/b7:         b7;         $(LC) b7         $B/b7
$B/box:        box;        $(LC) box        $B/box
$B/bp:         bp;         $(LC) bp         $B/bp
$B/bsplit:     bsplit;     $(LC) bsplit     $B/bsplit
$B/byteyears:  byteyears;  $(LC) byteyears  $B/byteyears
$B/cbox:       cbox;       $(LC) cbox       $B/cbox
$B/chars:      chars;      $(LC) chars      $B/chars
$B/conn:       conn;       $(LC) conn       $B/conn
$B/count:      count;      $(LC) count      $B/count
$B/cp:         cp;         $(LC) cp         $B/cp
$B/cputype:    cputype;    $(LC) cputype    $B/cputype
$B/cut:        cut;        $(LC) cut        $B/cut
$B/detab:      detab;      $(LC) detab      $B/detab
$B/dirnam:     dirnam;     $(LC) dirnam     $B/dirnam
$B/duplen:     duplen;     $(LC) duplen     $B/duplen
$B/env:        env;        $(LC) env        $B/env
$B/factor:     factor;     $(LC) factor     $B/factor
$B/false:      false;      $(LC) false      $B/false
$B/findsb:     findsb;     $(LC) findsb     $B/findsb
$B/finfo:      finfo;      $(LC) finfo      $B/finfo
$B/fp:         fp;         $(LC) fp         $B/fp
$B/clmr:         clmr;         $(LC) clmr         $B/clmr
$B/Cat:         Cat;         $(LC) Cat         $B/Cat
$B/gdbmsrvr:   gdbmsrvr;   $(LC) gdbmsrvr   $B/gdbmsrvr
$B/gdbmtest:   gdbmtest;   $(LC) gdbmtest   $B/gdbmtest
$B/hd:         hd;         $(LC) hd         $B/hd
$B/hex:        hex;        $(LC) hex        $B/hex
$B/jabber:     jabber;     $(LC) jabber     $B/jabber
$B/lastarg:    lastarg;    $(LC) lastarg    $B/lastarg
$B/lc:         lc;         $(LC) lc         $B/lc
$B/ln:         ln;         $(LC) ln         $B/ln
$B/machtype:   machtype;   $(LC) machtype   $B/machtype
$B/mailfile:   mailfile;   $(LC) mailfile   $B/mailfile
$B/mkdir:      mkdir;      $(LC) mkdir      $B/mkdir
$B/mod:        mod;        $(LC) mod        $B/mod
$B/mv:         mv;         $(LC) mv         $B/mv
$B/nbiotest:   nbiotest;   $(LC) nbiotest   $B/nbiotest
$B/newer:      newer;      $(LC) newer      $B/newer
$B/newtype:    newtype;    $(LC) newtype    $B/newtype
$B/nop:        nop;        $(LC) nop        $B/nop
$B/older:      older;      $(LC) older      $B/older
$B/perror:     perror;     $(LC) perror     $B/perror
$B/ping:       ping;       $(LC) ping       $B/ping
$B/proxy:      proxy;      $(LC) proxy      $B/proxy
$B/wrapper:      wrapper;      $(LC) wrapper      $B/wrapper
$B/randline:   randline;   $(LC) randline   $B/randline
$B/relink:     relink;     $(LC) relink     $B/relink
$B/rm:         rm;         $(LC) rm         $B/rm
$B/rowbytesum: rowbytesum; $(LC) rowbytesum $B/rowbytesum
$B/say:        say;        $(LC) say        $B/say
$B/saying:     saying;     $(LC) saying     $B/saying
$B/sbox:       sbox;       $(LC) sbox       $B/sbox
$B/sel:        sel;        $(LC) sel        $B/sel
$B/slowcopy:   slowcopy;   $(LC) slowcopy   $B/slowcopy
$B/sorthosts:  sorthosts;  $(LC) sorthosts  $B/sorthosts
$B/strcmp:     strcmp;     $(LC) strcmp     $B/strcmp
$B/stripman:   stripman;   $(LC) stripman   $B/stripman
$B/symtime:    symtime;    $(LC) symtime    $B/symtime
$B/synclock:   synclock;   $(LC) synclock   $B/synclock
$B/systype:    systype;    $(LC) systype    $B/systype
$B/taillog:    taillog;    $(LC) taillog    $B/taillog
$B/tcpclient:  tcpclient;  $(LC) tcpclient  $B/tcpclient
$B/tcpproxy:   tcpproxy;   $(LC) tcpproxy   $B/tcpproxy
$B/tcpserver:  tcpserver;  $(LC) tcpserver  $B/tcpserver
$B/fd:  fd;  $(LC) fd  $B/fd
$B/tee:        tee;        $(LC) tee        $B/tee
$B/timestamp:  timestamp;  $(LC) timestamp  $B/timestamp
$B/to:         to;         $(LC) to         $B/to
$B/true:       true;       $(LC) true       $B/true
$B/udpclient:  udpclient;  $(LC) udpclient  $B/udpclient
$B/udpserver:  udpserver;  $(LC) udpserver  $B/udpserver
$B/unlink:     unlink;     $(LC) unlink     $B/unlink
$B/utsname:    utsname;    $(LC) utsname    $B/utsname
$B/which:      which;      $(LC) which      $B/which
$B/xd:         xd;         $(LC) xd         $B/xd
$B/xor:        xor;        $(LC) xor        $B/xor

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# The distribution files are  built  in  the  parent  directory,  to  prevent
# infinite recursion. They don't contain the directory name, so the recipient
# can load them into any directory.

dist: srcdist # objdist
bindist: objdist
objdist: objtar # objcpio
srcdist: srcshar srctar # srccpio

# Here are the files included in an object distribution:
OBJ=README RUNME .login .profile $P ping

objtar: all ping
	-$(RM) -f README; ln obj_README README
	-$(RM) -f RUNME; ln obj_RUNME  RUNME
	tar cf ../misc_obj_`date +%y%m%d`.tar $(OBJ) doc
	compress ../*.tar
srctar: clean
	-$(RM) -f README; ln src_README README
	-$(RM) -f RUNME; ln src_RUNME  RUNME
	tar cf ../misc_src_`date +%y%m%d`.tar .
	compress ../*.tar
objcpio: all
	-$(RM) -f README; ln obj_README README
	-$(RM) -f RUNME; ln obj_RUNME  RUNME
	(say $(OBJ); find doc -print)  \
	|	sort | uniq \
	|	tr '\040' '\012' \
	|	cpio $O >../misc_obj_`date +%y%m%d`.cpio
	compress ../*.cpio
srccpio: clean
	-$(RM) -f README; ln src_README README
	-$(RM) -f RUNME; ln src_RUNME  RUNME
	find . -print \
	|	sort | uniq \
	|	cpio $O >../misc_src_`date +%y%m%d`.cpio
	compress ../*.cpio
SHR=*ME *Makefile* *.c *.h *.m
srcshar: $(SHR)
	makekit -m -n../misc.sh
	touch srcshar
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Here's how to make a mailable kit using Rich $alz's makekit/cshar tools:

csharkit: MANIFEST 
	-rm -f ../misc.sh??
	makekit -m -n../misc.sh -s45K
	touch sharkit
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# ... and using GNU shar:

F=Makefile *.b *.h *.y man/*
KIT=..
shar: gsharkit
sharkit: gsharkit
gsharkit: Manifest $F
	-$(RM) -f ../misc.sh??
	gshar -S -a -nmisc -o../misc.sh -L50 <Manifest
	touch sharkit
tarkit: $(KIT) $F
	tar -cf - $F sh sh.* test | gzip > $(KIT)/$(SYSTYPE)_misc.tar.gz
	$(LC) misc.README $(KIT)/$(SYSTYPE)_misc.README
	touch tarkit
$(KIT):
	mkdir -p $(KIT)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
Makefile: $S/Makefile
	Lc $S/Makefile Makefile
Manifest: clobber
	find . -type f -print | sed -e 's/^\.\///' >Manifest
MANIFEST:
	findsrc -. . >MANIFEST
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# The vi tags file sometimes takes tweaking on different unices:

tags: btags
btags: $(SFILES)
	-$(RM) -f tags
	ctags -tw $(SFILES) $h *.h
	mv tags ctags
	sed -e '/\.c	/s"".b	"' <ctags >btags
	Ln btags tags
ctags:	*.h *.c
	ctags *.h *.c >ctags
	Ln ctags tags
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# The Sun makedepend command has gotten too flakey here to be  useful,  so  I #
# wrote  the  mkdep script to do it right.  If your makedepend works, you can #
# use it instead (but note that it may not generate the  .o.c  dependencies). #
# What  I  do  is type "make dependencies", and then replace the tail of this #
# Makefile with the dependencies file that is produced.                       #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

dependencies: $(h) $(CFILES) $(ctemp)
	mkdep $(CFLAGS) $(CFILES) $(ctemp) >dependencies

# The following entry isn't recommended on SunOS:
depend: $(SFILES)
	makedepend -- $(CFLAGS) -- $(CFILES)
	touch depend

# DO NOT DELETE THIS LINE -- make depend depends on it.

Hex.o: \
	Hex.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

Rm.o: \
	Rm.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h 

addr.o: \
	addr.c local.h str.h sys_ctype.h sys_errno.h sys_if.h sys_in.h \
	sys_ioctl.h sys_netdb.h sys_param.h sys_route.h sys_socket.h \
	sys_stdio.h sys_time.h sys_types.h 

ae.o: ae.c 
chist.o: chist.c 
timestamp.o: timestamp.c 
proxy.o: proxy.c 
wrapper.o: wrapper.c 
args.o: args.c 

align.o: \
	align.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

asc.o: \
	asc.c 

b7.o: \
	b7.c local.h 

box.o: \
	box.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

bsplit.o: \
	bsplit.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

byteyears.o: \
	byteyears.c local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stat.h sys_stdio.h sys_time.h sys_types.h sys_values.h 

call.o: \
	call.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

chars.o: \
	chars.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

tcpproxy.o: \
	tcpproxy.c local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_signal.h sys_stdio.h sys_time.h sys_types.h 

conn.o: \
	conn.c local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_signal.h sys_stdio.h sys_time.h sys_types.h 

count.o: \
	count.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h sys_values.h 

cputype.o: \
	cputype.c local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

cut.o: \
	cut.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

detab.o: \
	detab.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

dirnam.o: \
	dirnam.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

dmp_ip.o: \
	dmp_ip.c icmp.h ip.h iphdr.h local.h str.h sys_ctype.h sys_errno.h \
	sys_param.h sys_stdio.h sys_time.h sys_types.h 

dump.o: \
	dump.c icmp.h ip.h iphdr.h local.h str.h sys_ctype.h sys_errno.h \
	sys_param.h sys_stdio.h sys_time.h sys_types.h 

duplen.o: \
	duplen.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

env.o: \
	env.c 

factor.o: \
	factor.c 

false.o: \
	false.c 

findsb.o: \
	findsb.c local.h str.h sys_ctype.h sys_errno.h sys_fs.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

finfo.o: \
	finfo.c local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stat.h sys_stdio.h sys_time.h sys_types.h 

fp.o: \
	fp.c fp.h local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

D_data.o: \
	Dist.h V.h D_data.c

D_init.o: \
	Dist.h V.h D_init.c

Cat.o: \
	Cat.c Dist.h local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

clmr.o: \
	clmr.c local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

unixtime.o: \
	unixtime.c 

goedel.o: \
	goedel.c 

hd.o: \
	hd.c local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

hex.o: \
	hex.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

hosttype.o: \
	hosttype.c local.h sys_param.h 

icmp.o: \
	icmp.c icmp.h ip.h iphdr.h local.h str.h sys_ctype.h sys_errno.h \
	sys_netdb.h sys_param.h sys_socket.h sys_stdio.h sys_syslog.h \
	sys_time.h sys_types.h 

jabber.o: \
	jabber.c 

laman.o: \
	laman.c 

lastarg.o: \
	lastarg.c 

lastfld.o: \
	lastfld.c local.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

line.o: \
	line.c local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

mailfile.o: \
	local.h mailfile.c sys_types.h 

machtype.o: \
	local.h machtype.c sys_param.h 

makeraw.o: \
	local.h makeraw.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h sys_termios.h 

makesane.o: \
	ascii.h local.h makesane.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_termios.h sys_time.h sys_types.h 

minrand.o: \
	minrand.c minrand.h 

misc.o: \
	local.h misc.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

mkdir.o: \
	local.h mkdir.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h 

mod.o: \
	local.h mod.c str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

nbiotest.o: \
	local.h nbiotest.c str.h sys_ctype.h sys_errno.h sys_fcntl.h \
	sys_param.h sys_stdio.h sys_time.h sys_types.h 

newer.o: \
	local.h newer.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h 

older.o: \
	local.h older.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h 

newtype.o: \
	local.h newtype.c str.h sys_ctype.h sys_dir.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

nonnumeric.o: \
	nonnumeric.c 

numtest.o: \
	local.h numtest.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

overwrite.o: \
	local.h overwrite.c str.h sys_ctype.h sys_errno.h sys_fcntl.h \
	sys_param.h sys_stdio.h sys_time.h sys_types.h 

p34.o: \
	local.h p34.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

p43.o: \
	local.h p43.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

page.o: \
	local.h page.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

perror.o: \
	local.h perror.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

ping.o: \
	local.h ping.c pktime.h str.h sys_ctype.h sys_errno.h sys_file.h \
	sys_in.h sys_in_systm.h sys_ip.h sys_ip_icmp.h sys_netdb.h sys_param.h \
	sys_signal.h sys_socket.h sys_stdio.h sys_time.h sys_types.h \
	sys_wait.h 

pktime.o: \
	local.h pktime.c pktime.h str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

pkunpk.o: \
	local.h pkunpk.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

proto.o: \
	local.h proto.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

randline.o: \
	local.h randline.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

relink.o: \
	local.h relink.c str.h sys_ctype.h sys_dir.h sys_errno.h sys_mount.h \
	sys_param.h sys_sgtty.h sys_stat.h sys_stdio.h sys_string.h sys_time.h \
	sys_types.h 

rs.o: \
	local.h rs.c str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stat.h sys_stdio.h sys_time.h sys_types.h 

rowbytesum.o: \
	local.h memchunk.h rowbytesum.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

say.o: \
	local.h memchunk.h say.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

saying.o: \
	local.h saying.c str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stat.h sys_stdio.h sys_time.h sys_types.h 

sel.o: \
	local.h sel.c str.h sys_ctype.h sys_errno.h sys_limits.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

slowcopy.o: \
	local.h slowcopy.c str.h sys_ctype.h sys_errno.h sys_fcntl.h \
	sys_param.h sys_stdio.h sys_time.h sys_types.h 

sorthosts.o: \
	local.h sorthosts.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

spin.o: \
	spin.c 

split.o: \
	local.h split.c str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h 

str.o: \
	V_M.h local.h str.c str.h sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

stripman.o: \
	local.h str.h stripman.c sys_ctype.h sys_errno.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h 

sucmd.o: \
	local.h str.h sucmd.c sys_ctype.h sys_errno.h sys_param.h sys_pwd.h \
	sys_stdio.h sys_time.h sys_types.h 

symtime.o: \
	local.h memchunk.h str.h symtime.c sys_ctype.h sys_errno.h sys_in.h \
	sys_netdb.h sys_param.h sys_socket.h sys_stdio.h sys_time.h \
	sys_types.h 

synclock.o: \
	local.h memchunk.h str.h synclock.c sys_ctype.h sys_errno.h sys_in.h \
	sys_netdb.h sys_param.h sys_socket.h sys_stdio.h sys_time.h \
	sys_types.h 

systype.o: \
	local.h sys_param.h systype.c 

tcpclient.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h tcpclient.c 

fd.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h fd.c 

tcpserver.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h tcpserver.c 

strcmp.o: \
	strcmp.c 

taillog.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h taillog.c 

tee.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h tee.c 

testfloat.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h testfloat.c 

to.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h to.c 

nop.o: \
	nop.c 

true.o: \
	true.c 

gdbmsrvr.o: \
	gdbm.h local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h gdbmsrvr.c 

gdbmtest.o: \
	gdbm.h local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h gdbmtest.c 

udpclient.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h udpclient.c 

udpserver.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \
	sys_stdio.h sys_time.h sys_types.h udpserver.c 

unlink.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h unlink.c 

unpackmail.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_fcntl.h sys_param.h \ sys_stat.h sys_stdio.h sys_time.h sys_types.h unpackmail.c 

utsname.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h sys_utsname.h utsname.c 

uudecode.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_pwd.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h uudecode.c 

uuencode.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h uuencode.c 

which.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stat.h \
	sys_stdio.h sys_time.h sys_types.h which.c 

xd.o: \
	local.h str.h sys_ctype.h sys_errno.h sys_param.h sys_stdio.h \
	sys_time.h sys_types.h xd.c 

xor.o: \
	xor.c 
