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

include $(TOP)/aux/rules.prog

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 parser.h parser.tab.h
	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

parser.h: parser.tab.h

$(STAGE)support.o $(STAGE)lex.o $(STAGE)parser.tab.o:: \
	support.h 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
