# Don't edit Makefile! Use conf-* for configuration.

SHELL=/bin/sh

default: it

addcr: \
load addcr.o substdio.a error.a str.a
	./load addcr substdio.a error.a str.a 

addcr.o: \
compile addcr.c substdio.h subfd.h exit.h
	./compile addcr.c

alloc.a: \
makelib alloc.o alloc_re.o
	./makelib alloc.a alloc.o alloc_re.o

alloc.o: \
compile alloc.c alloc.h error.h
	./compile alloc.c

alloc_re.o: \
compile alloc_re.c alloc.h byte.h
	./compile alloc_re.c

auto-ccld.sh: \
conf-cc conf-ld warn-auto.sh
	( cat warn-auto.sh; \
	echo CC=\'`head -1 conf-cc`\'; \
	echo LD=\'`head -1 conf-ld`\' \
	) > auto-ccld.sh

byte_chr.o: \
compile byte_chr.c byte.h
	./compile byte_chr.c

byte_copy.o: \
compile byte_copy.c byte.h
	./compile byte_copy.c

byte_cr.o: \
compile byte_cr.c byte.h
	./compile byte_cr.c

byte_diff.o: \
compile byte_diff.c byte.h
	./compile byte_diff.c

byte_rchr.o: \
compile byte_rchr.c byte.h
	./compile byte_rchr.c

byte_zero.o: \
compile byte_zero.c byte.h
	./compile byte_zero.c

case.a: \
makelib case_lowers.o
	./makelib case.a case_lowers.o

case_lowers.o: \
compile case_lowers.c case.h
	./compile case_lowers.c

cdb.a: \
makelib cdb_hash.o cdb_unpack.o cdb_seek.o
	./makelib cdb.a cdb_hash.o cdb_unpack.o cdb_seek.o

cdb_hash.o: \
compile cdb_hash.c cdb.h uint32.h
	./compile cdb_hash.c

cdb_seek.o: \
compile cdb_seek.c cdb.h uint32.h
	./compile cdb_seek.c

cdb_unpack.o: \
compile cdb_unpack.c cdb.h uint32.h
	./compile cdb_unpack.c

cdbmake.a: \
makelib cdbmake_pack.o cdbmake_hash.o cdbmake_add.o
	./makelib cdbmake.a cdbmake_pack.o cdbmake_hash.o \
	cdbmake_add.o

cdbmake_add.o: \
compile cdbmake_add.c cdbmake.h uint32.h
	./compile cdbmake_add.c

cdbmake_hash.o: \
compile cdbmake_hash.c cdbmake.h uint32.h
	./compile cdbmake_hash.c

cdbmake_pack.o: \
compile cdbmake_pack.c cdbmake.h uint32.h
	./compile cdbmake_pack.c

cdbmss.o: \
compile cdbmss.c readwrite.h seek.h alloc.h cdbmss.h cdbmake.h \
uint32.h substdio.h
	./compile cdbmss.c

compile: \
make-compile warn-auto.sh systype
	( cat warn-auto.sh; ./make-compile "`cat systype`" ) > \
	compile
	chmod 755 compile

date@: \
warn-auto.sh date@.sh conf-bin
	cat warn-auto.sh date@.sh \
	| sed s}BIN}"`head -1 conf-bin`"}g > date@
	chmod 755 date@

delcr: \
load delcr.o substdio.a error.a str.a
	./load delcr substdio.a error.a str.a 

delcr.o: \
compile delcr.c substdio.h subfd.h exit.h
	./compile delcr.c

dns.lib: \
tryrsolv.c compile load socket.lib dns.o ipalloc.o ip.o stralloc.a \
alloc.a error.a fs.a str.a
	( ( ./compile tryrsolv.c && ./load tryrsolv dns.o \
	ipalloc.o ip.o stralloc.a alloc.a error.a fs.a str.a \
	-lresolv `cat socket.lib` ) >/dev/null 2>&1 \
	&& echo -lresolv || exit 0 ) > dns.lib
	rm -f tryrsolv.o tryrsolv

dns.o: \
compile dns.c ip.h ipalloc.h gen_alloc.h fmt.h alloc.h str.h \
stralloc.h dns.h case.h
	./compile dns.c

env.a: \
makelib env.o envread.o
	./makelib env.a env.o envread.o

env.o: \
compile env.c str.h alloc.h env.h
	./compile env.c

envread.o: \
compile envread.c env.h str.h
	./compile envread.c

error.a: \
makelib error.o error_str.o
	./makelib error.a error.o error_str.o

error.o: \
compile error.c error.h
	./compile error.c

error_str.o: \
compile error_str.c error.h
	./compile error_str.c

fd.a: \
makelib fd_copy.o fd_move.o
	./makelib fd.a fd_copy.o fd_move.o

fd_copy.o: \
compile fd_copy.c fd.h
	./compile fd_copy.c

fd_move.o: \
compile fd_move.c fd.h
	./compile fd_move.c

find-systype: \
find-systype.sh auto-ccld.sh
	cat auto-ccld.sh find-systype.sh > find-systype
	chmod 755 find-systype

finger@: \
warn-auto.sh finger@.sh conf-bin
	cat warn-auto.sh finger@.sh \
	| sed s}BIN}"`head -1 conf-bin`"}g > finger@
	chmod 755 finger@

fmt_str.o: \
compile fmt_str.c fmt.h
	./compile fmt_str.c

fmt_ulong.o: \
compile fmt_ulong.c fmt.h
	./compile fmt_ulong.c

fs.a: \
makelib fmt_str.o fmt_ulong.o scan_ulong.o scan_8long.o
	./makelib fs.a fmt_str.o fmt_ulong.o scan_ulong.o \
	scan_8long.o

getln.a: \
makelib getln.o getln2.o
	./makelib getln.a getln.o getln2.o

getln.o: \
compile getln.c substdio.h byte.h stralloc.h gen_alloc.h getln.h
	./compile getln.c

getln2.o: \
compile getln2.c substdio.h stralloc.h gen_alloc.h byte.h getln.h
	./compile getln2.c

getopt.a: \
makelib subgetopt.o sgetopt.o
	./makelib getopt.a subgetopt.o sgetopt.o

hassgact.h: \
trysgact.c compile load
	( ( ./compile trysgact.c && ./load trysgact ) >/dev/null \
	2>&1 \
	&& echo \#define HASSIGACTION 1 || exit 0 ) > hassgact.h
	rm -f trysgact.o trysgact

hassgprm.h: \
trysgprm.c compile load
	( ( ./compile trysgprm.c && ./load trysgprm ) >/dev/null \
	2>&1 \
	&& echo \#define HASSIGPROCMASK 1 || exit 0 ) > hassgprm.h
	rm -f trysgprm.o trysgprm

haswaitp.h: \
trywaitp.c compile load
	( ( ./compile trywaitp.c && ./load trywaitp ) >/dev/null \
	2>&1 \
	&& echo \#define HASWAITPID 1 || exit 0 ) > haswaitp.h
	rm -f trywaitp.o trywaitp

install: \
load install.o getln.a strerr.a substdio.a stralloc.a alloc.a open.a \
error.a str.a fs.a
	./load install getln.a strerr.a substdio.a stralloc.a \
	alloc.a open.a error.a str.a fs.a 

install.o: \
compile install.c substdio.h stralloc.h gen_alloc.h getln.h \
readwrite.h exit.h open.h error.h strerr.h byte.h
	./compile install.c

ip.o: \
compile ip.c fmt.h scan.h ip.h
	./compile ip.c

ipalloc.o: \
compile ipalloc.c alloc.h gen_allocdefs.h ip.h ipalloc.h gen_alloc.h
	./compile ipalloc.c

it: \
tcpclient tcpserver tcprules who@ date@ finger@ tcpcat mconnect addcr \
delcr

load: \
make-load warn-auto.sh systype
	( cat warn-auto.sh; ./make-load "`cat systype`" ) > load
	chmod 755 load

make-compile: \
make-compile.sh auto-ccld.sh
	cat auto-ccld.sh make-compile.sh > make-compile
	chmod 755 make-compile

make-load: \
make-load.sh auto-ccld.sh
	cat auto-ccld.sh make-load.sh > make-load
	chmod 755 make-load

make-makelib: \
make-makelib.sh auto-ccld.sh
	cat auto-ccld.sh make-makelib.sh > make-makelib
	chmod 755 make-makelib

makelib: \
make-makelib warn-auto.sh systype
	( cat warn-auto.sh; ./make-makelib "`cat systype`" ) > \
	makelib
	chmod 755 makelib

man: \
tcpclient.0 tcpserver.0 tcprules.0 tcp-environ.0

mconnect: \
warn-auto.sh mconnect.sh conf-bin
	cat warn-auto.sh mconnect.sh \
	| sed s}BIN}"`head -1 conf-bin`"}g > mconnect
	chmod 755 mconnect

ndelay.a: \
makelib ndelay.o ndelay_off.o
	./makelib ndelay.a ndelay.o ndelay_off.o

ndelay.o: \
compile ndelay.c ndelay.h
	./compile ndelay.c

ndelay_off.o: \
compile ndelay_off.c ndelay.h
	./compile ndelay_off.c

open.a: \
makelib open_read.o open_trunc.o
	./makelib open.a open_read.o open_trunc.o

open_read.o: \
compile open_read.c open.h
	./compile open_read.c

open_trunc.o: \
compile open_trunc.c open.h
	./compile open_trunc.c

remoteinfo.o: \
compile remoteinfo.c byte.h substdio.h ip.h fmt.h timeoutconn.h \
timeoutread.h timeoutwrite.h remoteinfo.h
	./compile remoteinfo.c

scan_8long.o: \
compile scan_8long.c scan.h
	./compile scan_8long.c

scan_ulong.o: \
compile scan_ulong.c scan.h
	./compile scan_ulong.c

seek.a: \
makelib seek_cur.o seek_end.o seek_set.o seek_trunc.o
	./makelib seek.a seek_cur.o seek_end.o seek_set.o \
	seek_trunc.o

seek_cur.o: \
compile seek_cur.c seek.h
	./compile seek_cur.c

seek_end.o: \
compile seek_end.c seek.h
	./compile seek_end.c

seek_set.o: \
compile seek_set.c seek.h
	./compile seek_set.c

seek_trunc.o: \
compile seek_trunc.c seek.h
	./compile seek_trunc.c

select.h: \
compile trysysel.c select.h1 select.h2
	( ./compile trysysel.c >/dev/null 2>&1 \
	&& cat select.h2 || cat select.h1 ) > select.h
	rm -f trysysel.o trysysel

setup: \
it man install conf-bin conf-man BIN MAN
	./install "`head -1 conf-bin`" < BIN
	./install "`head -1 conf-man`" < MAN

sgetopt.o: \
compile sgetopt.c substdio.h subfd.h sgetopt.h subgetopt.h
	./compile sgetopt.c

sig.a: \
makelib sig_block.o sig_catch.o sig_pause.o sig_dfl.o sig_pipe.o \
sig_child.o sig_term.o
	./makelib sig.a sig_block.o sig_catch.o sig_pause.o \
	sig_dfl.o sig_pipe.o sig_child.o sig_term.o

sig_block.o: \
compile sig_block.c sig.h hassgprm.h
	./compile sig_block.c

sig_catch.o: \
compile sig_catch.c sig.h hassgact.h
	./compile sig_catch.c

sig_child.o: \
compile sig_child.c sig.h
	./compile sig_child.c

sig_dfl.o: \
compile sig_dfl.c sig.h hassgact.h hassgprm.h
	./compile sig_dfl.c

sig_pause.o: \
compile sig_pause.c sig.h hassgprm.h
	./compile sig_pause.c

sig_pipe.o: \
compile sig_pipe.c sig.h
	./compile sig_pipe.c

sig_term.o: \
compile sig_term.c sig.h
	./compile sig_term.c

socket.lib: \
trylsock.c compile load
	( ( ./compile trylsock.c && \
	./load trylsock -lsocket -lnsl ) >/dev/null 2>&1 \
	&& echo -lsocket -lnsl || exit 0 ) > socket.lib
	rm -f trylsock.o trylsock

str.a: \
makelib str_len.o str_diff.o str_diffn.o str_cpy.o byte_chr.o \
byte_rchr.o byte_diff.o byte_copy.o byte_cr.o byte_zero.o
	./makelib str.a str_len.o str_diff.o str_diffn.o str_cpy.o \
	byte_chr.o byte_rchr.o byte_diff.o byte_copy.o byte_cr.o \
	byte_zero.o

str_cpy.o: \
compile str_cpy.c str.h
	./compile str_cpy.c

str_diff.o: \
compile str_diff.c str.h
	./compile str_diff.c

str_diffn.o: \
compile str_diffn.c str.h
	./compile str_diffn.c

str_len.o: \
compile str_len.c str.h
	./compile str_len.c

stralloc.a: \
makelib stralloc_eady.o stralloc_pend.o stralloc_copy.o \
stralloc_opys.o stralloc_opyb.o stralloc_cat.o stralloc_cats.o \
stralloc_catb.o
	./makelib stralloc.a stralloc_eady.o stralloc_pend.o \
	stralloc_copy.o stralloc_opys.o stralloc_opyb.o \
	stralloc_cat.o stralloc_cats.o stralloc_catb.o

stralloc_cat.o: \
compile stralloc_cat.c byte.h stralloc.h gen_alloc.h
	./compile stralloc_cat.c

stralloc_catb.o: \
compile stralloc_catb.c stralloc.h gen_alloc.h byte.h
	./compile stralloc_catb.c

stralloc_cats.o: \
compile stralloc_cats.c byte.h str.h stralloc.h gen_alloc.h
	./compile stralloc_cats.c

stralloc_copy.o: \
compile stralloc_copy.c byte.h stralloc.h gen_alloc.h
	./compile stralloc_copy.c

stralloc_eady.o: \
compile stralloc_eady.c alloc.h stralloc.h gen_alloc.h \
gen_allocdefs.h
	./compile stralloc_eady.c

stralloc_opyb.o: \
compile stralloc_opyb.c stralloc.h gen_alloc.h byte.h
	./compile stralloc_opyb.c

stralloc_opys.o: \
compile stralloc_opys.c byte.h str.h stralloc.h gen_alloc.h
	./compile stralloc_opys.c

stralloc_pend.o: \
compile stralloc_pend.c alloc.h stralloc.h gen_alloc.h \
gen_allocdefs.h
	./compile stralloc_pend.c

strerr.a: \
makelib strerr_sys.o strerr_die.o
	./makelib strerr.a strerr_sys.o strerr_die.o

strerr_die.o: \
compile strerr_die.c substdio.h subfd.h exit.h strerr.h
	./compile strerr_die.c

strerr_sys.o: \
compile strerr_sys.c error.h strerr.h
	./compile strerr_sys.c

subfderr.o: \
compile subfderr.c readwrite.h substdio.h subfd.h
	./compile subfderr.c

subfdin.o: \
compile subfdin.c readwrite.h substdio.h subfd.h
	./compile subfdin.c

subfdout.o: \
compile subfdout.c readwrite.h substdio.h subfd.h
	./compile subfdout.c

subgetopt.o: \
compile subgetopt.c subgetopt.h
	./compile subgetopt.c

substdi.o: \
compile substdi.c substdio.h byte.h error.h
	./compile substdi.c

substdio.a: \
makelib substdio.o substdi.o substdo.o subfderr.o subfdout.o \
subfdin.o substdio_copy.o
	./makelib substdio.a substdio.o substdi.o substdo.o \
	subfderr.o subfdout.o subfdin.o substdio_copy.o

substdio.o: \
compile substdio.c substdio.h
	./compile substdio.c

substdio_copy.o: \
compile substdio_copy.c substdio.h
	./compile substdio_copy.c

substdo.o: \
compile substdo.c substdio.h str.h byte.h error.h
	./compile substdo.c

systype: \
find-systype trycpp.c
	./find-systype > systype

tcp-environ.0: \
tcp-environ.5
	nroff -man tcp-environ.5 > tcp-environ.0

tcpcat: \
warn-auto.sh tcpcat.sh conf-bin
	cat warn-auto.sh tcpcat.sh \
	| sed s}BIN}"`head -1 conf-bin`"}g > tcpcat
	chmod 755 tcpcat

tcpclient: \
load tcpclient.o ip.o ipalloc.o dns.o remoteinfo.o timeoutconn.o \
timeoutread.o timeoutwrite.o stralloc.a env.a alloc.a ndelay.a \
substdio.a error.a str.a sig.a fd.a case.a getopt.a fs.a dns.lib \
socket.lib
	./load tcpclient ip.o ipalloc.o dns.o remoteinfo.o \
	timeoutconn.o timeoutread.o timeoutwrite.o stralloc.a env.a \
	alloc.a ndelay.a substdio.a error.a str.a sig.a fd.a case.a \
	getopt.a fs.a  `cat dns.lib` `cat socket.lib`

tcpclient.0: \
tcpclient.1
	nroff -man tcpclient.1 > tcpclient.0

tcpclient.o: \
compile tcpclient.c substdio.h stralloc.h gen_alloc.h str.h byte.h \
error.h sig.h subfd.h fd.h ip.h ipalloc.h case.h sgetopt.h \
subgetopt.h exit.h scan.h fmt.h env.h dns.h remoteinfo.h
	./compile tcpclient.c

tcprules: \
load tcprules.o cdbmss.o cdbmake.a getln.a strerr.a stralloc.a \
substdio.a alloc.a error.a open.a seek.a str.a fs.a
	./load tcprules cdbmss.o cdbmake.a getln.a strerr.a \
	stralloc.a substdio.a alloc.a error.a open.a seek.a str.a \
	fs.a 

tcprules.0: \
tcprules.1
	nroff -man tcprules.1 > tcprules.0

tcprules.o: \
compile tcprules.c strerr.h stralloc.h gen_alloc.h getln.h substdio.h \
subfd.h exit.h fmt.h byte.h cdbmss.h cdbmake.h uint32.h
	./compile tcprules.c

tcpserver: \
load tcpserver.o ip.o ipalloc.o dns.o remoteinfo.o timeoutconn.o \
timeoutread.o timeoutwrite.o cdb.a open.a wait.a strerr.a stralloc.a \
env.a ndelay.a alloc.a getopt.a substdio.a error.a str.a sig.a fd.a \
case.a fs.a dns.lib socket.lib
	./load tcpserver ip.o ipalloc.o dns.o remoteinfo.o \
	timeoutconn.o timeoutread.o timeoutwrite.o cdb.a open.a \
	wait.a strerr.a stralloc.a env.a ndelay.a alloc.a getopt.a \
	substdio.a error.a str.a sig.a fd.a case.a fs.a  `cat \
	dns.lib` `cat socket.lib`

tcpserver.0: \
tcpserver.1
	nroff -man tcpserver.1 > tcpserver.0

tcpserver.o: \
compile tcpserver.c strerr.h substdio.h stralloc.h gen_alloc.h \
alloc.h readwrite.h fd.h sig.h wait.h ip.h ipalloc.h dns.h str.h \
case.h byte.h sgetopt.h subgetopt.h remoteinfo.h exit.h open.h scan.h \
fmt.h env.h cdb.h uint32.h
	./compile tcpserver.c

timeoutconn.o: \
compile timeoutconn.c ndelay.h select.h error.h readwrite.h ip.h \
byte.h timeoutconn.h
	./compile timeoutconn.c

timeoutread.o: \
compile timeoutread.c timeoutread.h select.h error.h readwrite.h
	./compile timeoutread.c

timeoutwrite.o: \
compile timeoutwrite.c timeoutwrite.h select.h error.h readwrite.h
	./compile timeoutwrite.c

uint32.h: \
tryulong32.c compile load uint32.h1 uint32.h2
	( ( ./compile tryulong32.c && ./load tryulong32 && \
	./tryulong32 ) >/dev/null 2>&1 \
	&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
	rm -f tryulong32.o tryulong32

wait.a: \
makelib wait_nohang.o
	./makelib wait.a wait_nohang.o

wait_nohang.o: \
compile wait_nohang.c haswaitp.h
	./compile wait_nohang.c

who@: \
warn-auto.sh who@.sh conf-bin
	cat warn-auto.sh who@.sh \
	| sed s}BIN}"`head -1 conf-bin`"}g > who@
	chmod 755 who@
