# In order to use this makefile, make sure that # java, javac, jtb, javacc and svn are in your $PATH! # This should work for java 1.4 and java 5.0, # but make sure your JTB version matches your # Java version! # # Make targets: # "all" (default): generates parser from grammar # and compiles Java source code # "clean" : deletes all generated files # "status" : cleans and then gives subversion status # # Java package PACKAGE = edu.du.cs.comp3351.p5 # Directory where we store sources PDIR = src/edu/du/cs/comp3351/p5 # Name of the input file (with extension .jj) GRAMMAR = statements # Files generated by JavaCC PARSER = JavaCharStream.java ParseException.java ParserConstants.java Parser.java Token.java TokenMgrError.java ParserTokenManager.java all: clean $(GRAMMAR).oo mkdir -p $(PDIR) javacc -STATIC=false $(GRAMMAR).oo mv visitors $(PDIR) mv nodes $(PDIR) echo "package $(PACKAGE);" > PACKAGE for n in $(PARSER) ; do cat PACKAGE $${n} > $(PDIR)/$$n; rm $${n}; done rm PACKAGE javac -classpath src `find src -name "*.java"` $(GRAMMAR).oo: jtb -printer -jd -np $(PACKAGE).nodes -vp $(PACKAGE).visitors -o $(GRAMMAR).oo $(GRAMMAR).jj clean: rm -f test/*.out rm -f $(GRAMMAR).oo rm -rf $(PDIR)/visitors rm -rf $(PDIR)/nodes for n in $(PARSER) ; do rm -f $(PDIR)/$${n}; done rm -f `find * -name "*.class"` status: clean svn status submit: clean svn add $(GRAMMAR).jj svn add src/ svn commit -m "submission via Makefile" svn status