#
# Makefile
#
# Author: Jeff Pang <jp@magnus99.dhs.org>
# Version: $Id: Makefile,v 1.2 2002/12/27 09:55:15 jeffpang Exp $

BASE = ../../..
include ${BASE}/Makefile.include

CSRC=	\
	AbstractSymbol.java \
	AbstractTable.java \
	BoolSymbol.java \
	IdSymbol.java \
	IdTable.java \
	IntSymbol.java \
	IntTable.java \
	LexerTest.java \
	ParserTest.java \
	RealSymbol.java \
	RealTable.java \
	SemantTest.java \
	StringSymbol.java \
	StringTable.java \
	TokenConstants.java \
	Utilities.java
CGEN= JassLexer.java JassParser.java TokenConstants.java
CFIL= ${CGEN} ${CSRC}
CLS= ${CFIL:.java=.class}

SUBDIRS = ast semant

all: ${CLS} subdirs

subdirs: 
	@for dir in $(SUBDIRS); do $(MAKE) -C $$dir; done

JassLexer.java: Jass.lex JassParser.java
	${JLEX} $<
	mv Jass.lex.java JassLexer.java

JassParser.java: Jass.cup
	${JCUP} -parser JassParser -symbols TokenConstants -expect 10000 -dump -nopositions <$< >jcup.output 2>&1 || { egrep '^Error at ' jcup.output; false; }

clean : cleandirs
	-rm -f *.class ${CGEN} *~ jcup.output

cleandirs:
	@for dir in $(SUBDIRS); do $(MAKE) -C $$dir clean; done
