TOP=./

-include $(TOP)rules.mk
HCFLAGS += -fno-warn-name-shadowing -fglasgow-exts -fallow-overlapping-instances

ALL	= bind happs graph
HOBJ	= HCollect.o HCollect/Types.o HCollect/Parse.o Monitor.o Monitor/Types.o Monitor/Update.o Monitor/Process.o

all	: depend $(ALL)

HCollect/libHCollect.a:
	make -C HCollect lib

clean	::
	-rm -f bind depend depend *.dep *.bak
	-find -name \*.o -exec rm -f {} \;
	-find -name \*.hi -exec rm -f {} \;
	-find -name \*.ths -exec rm -f {} \;

test	::
	runhaskell -cpp -ffi test.hs
bind	: bind.o $(HOBJ) HCollect/libHCollect.a
	$(HC) $(HCFLAGS) -o $@ --make $(<:.o=.hs) HCollect/libHCollect.a -package network -package binary

happs	: happs.o Web/Marshal.o Web/UDP.o $(HOBJ) HCollect/libHCollect.a
	$(HC) $(HCFLAGS) -o $@ --make $(<:.o=.hs) HCollect/libHCollect.a -package network -package binary -package HAppS

graph	: graph.o Graph/Build.o Graph/MinComp.o Graph/Graphviz.o
	$(HC) $(HCFLAGS) -o $@ --make $(<:.o=.hs) HCollect/libHCollect.a -package network -package binary -package HAppS

depend: $(ALL:=.dep)
	cat $^ > $@

-include depend
