CLASSPATH=../../..:/usr/lib/ant/lib/ant.jar
JFLAGS=-classpath "$(CLASSPATH)"
JAVAC=javac $(JFLAGS)
JAVA=java $(JFLAGS)
JAVADOC=javadoc
JLEX=jflex
JCUP=java java_cup.Main <

all: build

build: bte.jar

bte.jar: compile
	@rm -f bte.jar *~ ~*
	@mkdir -p com/Ostermiller/bte
	@mkdir -p java_cup/runtime
	@cp  *.lex *.cup *.java *.class *.bte *.png copying.txt Makefile com/Ostermiller/bte/
	@cp -r ../../../java_cup/runtime/ java_cup/
	jar cmf bte.mf bte.jar com/ java_cup/
	@rm -rf com/ java_cup/

compile: parser.java Lexer.java	TagLexer.java
	$(JAVAC) *.java        

parser.java: parser.cup 
	$(JCUP) parser.cup
	
Lexer.java: Lexer.lex
	$(JLEX) Lexer.lex
	
TagLexer.java: TagLexer.lex
	$(JLEX) TagLexer.lex
              
clean:
	rm -rf *.class *~ sym.java Lexer.java TagLexer.java parser.java docs/ com/ bte.jar *.html
        
docs:
	@rm -rf docs/
	@mkdir docs
	$(JAVADOC) -d docs/ com.Ostermiller.bte
 
web: basicone.bte basictpl.bte basictwo.bte bte.bte defaultsone.bte defaultsthree.bte \
 defaultstpl.bte defaultstwo.bte errorsone.bte errorsthree.bte errorstpl.bte errorstwo.bte \
 helloworld.bte helloworldtxt.bte index.bte levelshome.bte levelsone.bte levelsprodtpl.bte \
 levelsthree.bte levelstpl.bte levelstwo.bte multipleone.bte multipletpl.bte multipletwo.bte \
 navbarhome.bte navbarone.bte navbarprodtpl.bte navbarthree.bte navbartpl.bte navbartwo.bte \
 oneofone.bte oneoftpl.bte oneoftwo.bte outputone.bte outputtpl.bte outputtwo.bte \
 sectionsone.bte sectionsthree.bte sectionstpl.bte sectionstwo.bte specification.bte syntax.bte \
 tutorial.bte
	bte basicone.bte basictwo.bte defaultsone.bte defaultsthree.bte defaultstwo.bte \
          errorsone.bte errorsthree.bte errorstwo.bte helloworld.bte helloworldtxt.bte index.bte \
          levelshome.bte levelsone.bte levelsthree.bte levelstwo.bte multipleone.bte multipletwo.bte \
          navbarhome.bte navbarone.bte navbarthree.bte navbartwo.bte oneofone.bte oneoftwo.bte \
          outputone.bte outputtwo.bte sectionsone.bte sectionsthree.bte sectionstwo.bte \
          specification.bte tutorial.bte
	tohtml -t syntax.bte -f basicone.bte basictpl.bte basictwo.bte defaultsone.bte \
          defaultsthree.bte defaultstpl.bte defaultstwo.bte errorsone.bte errorsthree.bte \
          errorstpl.bte errorstwo.bte helloworld.bte helloworldtxt.bte levelshome.bte \
          levelsone.bte levelsprodtpl.bte levelsthree.bte levelstpl.bte levelstwo.bte \
          multipleone.bte multipletpl.bte multipletwo.bte navbarhome.bte navbarone.bte \
          navbarprodtpl.bte navbarthree.bte navbartpl.bte navbartwo.bte oneofone.bte oneoftpl.bte \
          oneoftwo.bte outputone.bte outputtpl.bte outputtwo.bte sectionsone.bte sectionsthree.bte \
          sectionstpl.bte sectionstwo.bte

