TOP = ..
SRCDIR = .
MODULES = \
	config \
	fileutil \
	util \
	ast \
	ksi \
	xobjects \
	xmldump \
	module \
	tyutil \
	bind \
	parser \
	type \
	xtcheck \
	patrange \
	chini \
	cg_util \
	cg_types \
	cg_globals \
	cg_expr \
	cg_stmt \
	codegen \
	gont \
	linker \
	ciface \
	main
	
C_SOURCES = lex.c keywords.c parser.tab.c
PROG = gontc
GONTYACC = ../tools/gontyacc/$(STAGE)gontyacc

include $(TOP)/aux/rules.prog

GFLAGS += -Werror

GLIBS = xml.xga
CFLAGS += -I $(SRCDIR)

clean: clean-prog
	rm -f cgont/*
	
nuke: clean
	rm -f parser.tab.[ch] parser.output keywords.c 
	rm -f c_parser.y parser.g parser.gi

keywords.c: keywords.gperf 
	gperf -c -N lookup_keyword -t -D $< > $@

parser.tab.c parser.tab.h: c_parser.y
	bison -b parser -d -t -v $<

c_parser.y parser.g parser.gi: parser.gy
	$(GONTYACC) parser.gy
# so I'll see that's *not* to file to fix
	perl -p -i -e 's|^|/* AUTOGEN */|' parser.g

parser.h: parser.tab.h

$(STAGE)lex.o $(STAGE)parser.tab.o $(STAGE)keywords.o:: \
	parser.h parser.tab.h cgont/ast.h cgont/util.h

rx = 's|.*/(.)([^/]*)\.h|\U$$1\E$$2|'
cgont/%.h:
	mkdir -p cgont
	$(GONTC) $(GFLAGS) -ciface $(shell echo $@ | perl -p -e $(rx)) > $@

$(STAGE)ast.xgo:: $(STAGE)util.xgi
$(STAGE)util.xgi:: $(STAGE)ast.xgi
$(STAGE)bind.xgo:: $(STAGE)xmldump.xgi
$(STAGE)xmldump.xgo:: $(STAGE)bind.xgi
$(STAGE)module.xgo:: $(STAGE)xmldump.xgi
$(STAGE)cg_expr.xgo:: $(STAGE)cg_stmt.xgi
