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

SHELL=/bin/sh

default: \
it-svc it-tai

clean: \
TARGETS
	rm -rf `cat TARGETS`

chkshsgr: \
chkshsgr.o load
	./load chkshsgr 

chkshsgr.o: \
chkshsgr.c compile
	./compile chkshsgr.c

choose: \
choose.sh warn-auto.sh
	rm -f choose
	cat warn-auto.sh choose.sh \
	| sed s}HOME}"`head -1 ../conf-home`"}g \
	> choose
	chmod 755 choose

coe.o: \
coe.c include/coe.h compile
	./compile coe.c

compile: \
../conf-cc ../conf-qlibs print-cc.sh systype warn-auto.sh
	rm -f compile
	sh print-cc.sh > compile
	chmod 755 compile

deepsleep.o: \
compile deepsleep.c include/deepsleep.h 
	./compile deepsleep.c

direntry.h: \
choose compile direntry.h1 direntry.h2 trydrent.c
	./choose c trydrent direntry.h1 direntry.h2 > direntry.h

env.o: \
compile env.c include/env.h 
	./compile env.c

envdir: \
envdir.o load qlibs.lib
	./load envdir `cat qlibs.lib`

envdir.o: \
compile envdir.c 
	./compile envdir.c

envuidgid: \
envuidgid.o load qlibs.lib
	./load envuidgid `cat qlibs.lib`

envuidgid.o: \
compile envuidgid.c 
	./compile envuidgid.c

fifo.o: \
compile fifo.c include/fifo.h hasmkffo.h
	./compile fifo.c

fghack: \
fghack.o load qlibs.lib
	./load fghack `cat qlibs.lib`

fghack.o: \
compile fghack.c
	./compile fghack.c

hasflock.h: \
choose compile hasflock.h1 hasflock.h2 load tryflock.c
	./choose cl tryflock hasflock.h1 hasflock.h2 > hasflock.h

hasmkffo.h: \
choose compile hasmkffo.h1 hasmkffo.h2 load trymkffo.c
	./choose cl trymkffo hasmkffo.h1 hasmkffo.h2 > hasmkffo.h

hassgact.h: \
choose compile hassgact.h1 hassgact.h2 load trysgact.c
	./choose cl trysgact hassgact.h1 hassgact.h2 > hassgact.h

hassgprm.h: \
choose compile hassgprm.h1 hassgprm.h2 load trysgprm.c
	./choose cl trysgprm hassgprm.h1 hassgprm.h2 > hassgprm.h

hasshsgr.h: \
chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
tryshsgr.c warn-shsgr
	./chkshsgr || ( cat warn-shsgr; exit 1 )
	./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h

haswaitp.h: \
choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
	./choose cl trywaitp haswaitp.h1 haswaitp.h2 > haswaitp.h

it-svc: \
envdir envuidgid fghack matchtest multilog pgrphack \
readproctitle rts.tests setlock setuidgid softlimit supervise svc \
svok svscan svscanboot svstat sysdeps 

it-tai: \
tai64n tai64nfrac tai64nlocal

load: \
../conf-ld print-ld.sh systype warn-auto.sh
	rm -f load
	sh print-ld.sh > load
	chmod 755 load

match.o: \
compile match.c include/match.h
	./compile match.c

matchtest: \
load match.o matchtest.o qlibs.lib
	./load matchtest match.o `cat qlibs.lib`

matchtest.o: \
compile include/match.h matchtest.c 
	./compile matchtest.c

multilog: \
coe.o deepsleep.o fifo.o load match.o multilog.o timestamp.o qlibs.lib
	./load multilog coe.o deepsleep.o fifo.o match.o timestamp.o `cat qlibs.lib`

multilog.o: \
compile include/deepsleep.h direntry.h include/match.h multilog.c include/timestamp.h
	./compile multilog.c

openreadclose.o: \
compile openreadclose.c include/openreadclose.h
	./compile openreadclose.c

pgrphack: \
load pgrphack.o qlibs.lib
	./load pgrphack `cat qlibs.lib`

pgrphack.o: \
compile pgrphack.c
	./compile pgrphack.c

qlibs.lib: \
tryqlibs.c compile load
	( (./compile -I`head -1 ../conf-qlibs`/include tryqlibs.c && \
	./load tryqlibs -L`head -1 ../conf-qlibs` -lqlibs ) \
	&& echo "-L`head -1 ../conf-qlibs` -lqlibs" || exit 0 ) > qlibs.lib
	rm -f tryqlibs.o tryqlibs

readproctitle: \
load readproctitle.o qlibs.lib
	./load readproctitle `cat qlibs.lib`

readproctitle.o: \
compile readproctitle.c
	./compile readproctitle.c

select.h: \
choose compile select.h1 select.h2 trysysel.c
	./choose c trysysel select.h1 select.h2 > select.h

setlock: \
load setlock.o qlibs.lib
	./load setlock `cat qlibs.lib`

setlock.o: \
compile 
	./compile setlock.c

setuidgid: \
load setuidgid.o qlibs.lib
	./load setuidgid `cat qlibs.lib`

setuidgid.o: \
compile setuidgid.c 
	./compile setuidgid.c

softlimit: \
load softlimit.o qlibs.lib
	./load softlimit `cat qlibs.lib`

softlimit.o: \
compile softlimit.c 
	./compile softlimit.c

supervise: \
coe.o deepsleep.o fifo.o load supervise.o qlibs.lib
	./load supervise coe.o deepsleep.o fifo.o `cat qlibs.lib`

supervise.o: \
compile include/deepsleep.h include/fifo.h supervise.c
	./compile supervise.c

svc: \
load svc.o qlibs.lib 
	./load svc `cat qlibs.lib`

svc.o: \
compile svc.c
	./compile svc.c

svok: \
load svok.o qlibs.lib
	./load svok `cat qlibs.lib`

svok.o: \
compile svok.c
	./compile svok.c

svscan: \
load svscan.o coe.o qlibs.lib direntry.h svscan.c
	./load svscan coe.o `cat qlibs.lib`

svscan.o: \
compile direntry.h svscan.c coe.c
	./compile svscan.c 

svscanboot: \
svscanboot.sh warn-auto.sh
	rm -f svscanboot
	cat warn-auto.sh svscanboot.sh \
	| sed s}HOME}"`head -1 ../conf-home`"}g \
	| sed s}SERVICE}"`head -1 ../conf-service`"}g \
	> svscanboot
	chmod 555 svscanboot

svstat: \
load svstat.o qlibs.lib
	./load svstat `cat qlibs.lib`

svstat.o: \
compile svstat.c 
	./compile svstat.c

sysdeps: \
compile direntry.h hasflock.h hasmkffo.h hassgact.h \
hassgprm.h hasshsgr.h haswaitp.h load select.h systype 
	rm -f sysdeps
	cat systype compile load >> sysdeps
	grep sysdep direntry.h >> sysdeps
	grep sysdep haswaitp.h >> sysdeps
	grep sysdep hassgact.h >> sysdeps
	grep sysdep hassgprm.h >> sysdeps
	grep sysdep select.h >> sysdeps
	grep sysdep hasmkffo.h >> sysdeps
	grep sysdep hasflock.h >> sysdeps
	grep sysdep hasshsgr.h >> sysdeps

systype: \
find-systype.sh trycpp.c x86cpuid.c
	sh find-systype.sh > systype

tai64n: \
load tai64n.o qlibs.lib
	./load tai64n timestamp.o `cat qlibs.lib`

tai64n.o: \
compile tai64n.c include/timestamp.h
	./compile tai64n.c

tai64nfrac: \
load tai64nfrac.o qlibs.lib
	./load tai64nfrac `cat qlibs.lib`

tai64nfrac.o: \
compile tai64nfrac.c
	./compile tai64nfrac.c

tai64nlocal: \
load tai64nlocal.o qlibs.lib
	./load tai64nlocal `cat qlibs.lib`

tai64nlocal.o: \
compile tai64nlocal.c
	./compile tai64nlocal.c

timestamp.o: \
compile timestamp.c include/timestamp.h
	./compile timestamp.c
