default: it

aliases.0: \
aliases.5
	nroff -man aliases.5 > aliases.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

compile: \
make-commands systype
	./make-commands "`cat ./systype`" compile > compile
	chmod 755 compile

control.o: \
compile control.c readwrite.h control.c open.h control.c getline.h \
control.c stralloc.h gen_alloc.h stralloc.h control.c substdio.h \
control.c error.h control.c control.h control.c alloc.h control.c \
scan.h control.c
	./compile control.c

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

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

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

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

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

find-systype: \
find-systype.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh find-systype.sh > find-systype
	chmod 755 find-systype

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

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

getline2.o: \
compile getline2.c substdio.h getline2.c byte.h getline2.c stralloc.h \
gen_alloc.h stralloc.h getline2.c alloc.h getline2.c getline.h \
getline2.c
	./compile getline2.c

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

it: \
qmsmac newaliases

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

libcase.a: \
makelib case_lowerb.o
	./makelib libcase.a case_lowerb.o

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

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

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

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

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

libfs.a: \
makelib scan_nbblong.o
	./makelib libfs.a scan_nbblong.o

libgetline.a: \
makelib getline.o getline2.o
	./makelib libgetline.a getline.o getline2.o

libgetopt.a: \
makelib subgetopt.o
	./makelib libgetopt.a subgetopt.o

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

libseek.a: \
makelib seek_set.o
	./makelib libseek.a seek_set.o

libsig.a: \
makelib sig_catch.o sig_pipe.o
	./makelib libsig.a sig_catch.o sig_pipe.o

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

libstralloc.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 libstralloc.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

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

libwait.a: \
makelib wait_pid.o
	./makelib libwait.a wait_pid.o

load: \
make-commands systype
	./make-commands "`cat ./systype`" load > load
	chmod 755 load

make-commands: \
make-cmds.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh make-cmds.sh > make-commands
	chmod 755 make-commands

makelib: \
make-commands systype
	./make-commands "`cat ./systype`" makelib > makelib
	chmod 755 makelib

man: \
aliases.0 newaliases.0 qmsmac.0

newaliases: \
load newaliases.o parse.o control.o token822.o cdbmss.o libcase.a \
libopen.a libseek.a libcdbmake.a libgetline.a libsubstdio.a \
libstralloc.a liballoc.a liberror.a libstr.a libfs.a
	./load newaliases parse.o control.o token822.o cdbmss.o \
	libcase.a libopen.a libseek.a libcdbmake.a libgetline.a \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a \
	libfs.a

newaliases.0: \
newaliases.8
	nroff -man newaliases.8 > newaliases.0

newaliases.o: \
compile newaliases.c stralloc.h gen_alloc.h stralloc.h newaliases.c \
substdio.h newaliases.c subfd.h newaliases.c getline.h newaliases.c \
token822.h gen_alloc.h token822.h newaliases.c parse.h stralloc.h \
stralloc.h parse.h newaliases.c exit.h newaliases.c case.h \
newaliases.c error.h newaliases.c open.h newaliases.c readwrite.h \
newaliases.c conf-home.h newaliases.c conf-mailhome.h newaliases.c \
control.h newaliases.c cdbmss.h cdbmake.h uint32.h cdbmake.h cdbmss.h \
substdio.h substdio.h cdbmss.h newaliases.c
	./compile newaliases.c

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

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

parse.o: \
compile parse.c token822.h gen_alloc.h token822.h parse.c parse.h \
stralloc.h gen_alloc.h stralloc.h parse.h parse.c
	./compile parse.c

qmsmac: \
load qmsmac.o parse.o control.o qqtalk.o strset.o token822.o \
libcase.a libsig.a libopen.a libfd.a libwait.a libcdb.a libgetopt.a \
libgetline.a libsubstdio.a libstralloc.a libenv.a liballoc.a \
liberror.a libstr.a libfs.a
	./load qmsmac parse.o control.o qqtalk.o strset.o \
	token822.o libcase.a libsig.a libopen.a libfd.a libwait.a \
	libcdb.a libgetopt.a libgetline.a libsubstdio.a \
	libstralloc.a libenv.a liballoc.a liberror.a libstr.a \
	libfs.a

qmsmac-home: \
load qmsmac-home.o
	./load qmsmac-home

qmsmac-home.o: \
compile qmsmac-home.c conf-home.h qmsmac-home.c
	./compile qmsmac-home.c

qmsmac-setup: \
warn-auto.sh qmsmac-setup.sh
	cat warn-auto.sh qmsmac-setup.sh > qmsmac-setup
	chmod 755 qmsmac-setup

qmsmac.0: \
qmsmac.8
	nroff -man qmsmac.8 > qmsmac.0

qmsmac.o: \
compile qmsmac.c qmsmac.c qmsmac.c subgetopt.h qmsmac.c stralloc.h \
gen_alloc.h stralloc.h qmsmac.c substdio.h qmsmac.c subfd.h qmsmac.c \
getline.h qmsmac.c token822.h gen_alloc.h token822.h qmsmac.c parse.h \
stralloc.h stralloc.h parse.h qmsmac.c env.h qmsmac.c case.h qmsmac.c \
exit.h qmsmac.c alloc.h qmsmac.c open.h qmsmac.c error.h qmsmac.c \
sig.h qmsmac.c readwrite.h qmsmac.c qqtalk.h substdio.h substdio.h \
qqtalk.h qmsmac.c strset.h uint32.h strset.h qmsmac.c control.h \
qmsmac.c conf-mailhome.h qmsmac.c conf-home.h qmsmac.c cdb.h uint32.h \
cdb.h qmsmac.c
	./compile qmsmac.c

qqtalk.o: \
compile qqtalk.c fd.h qqtalk.c readwrite.h qqtalk.c wait.h qqtalk.c \
substdio.h qqtalk.c exit.h qqtalk.c fork.h qqtalk.c qqtalk.h \
substdio.h substdio.h qqtalk.h qqtalk.c qqx.h qqtalk.c
	./compile qqtalk.c

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

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

setup: \
qmsmac-setup systype qmsmac-home it man
	./qmsmac-setup "`cat systype`" "`./qmsmac-home`"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

strset.o: \
compile strset.c strset.h uint32.h strset.h strset.c str.h strset.c \
byte.h strset.c
	./compile strset.c

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

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

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

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

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

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

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

token822.o: \
compile token822.c stralloc.h gen_alloc.h stralloc.h token822.c \
alloc.h token822.c str.h token822.c token822.h gen_alloc.h token822.h \
token822.c gen_allocdefs.h token822.c
	./compile token822.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_pid.o: \
compile wait_pid.c wait_pid.c wait_pid.c error.h wait_pid.c
	./compile wait_pid.c
