JAVABIN = /usr/bin
JAVAVER = 1.6

CLASSPATH =
DOCSPATH = doc

%JFLAGS = -classpath $(CLASSPATH)
JFLAGS =
JCFLAGS =
JDFLAGS = -d $(DOCSPATH) 

JAVAC = $(JAVABIN)/javac $(JFLAGS) $(JCFLAGS)
JAVADOC = javadoc $(JFLAGS) $(JDFLAGS) 
JAR = $(JAVABIN)/jar
JAVA5 = -source 1.5 -target 1.5 -extdirs ""

JC = javac
.SUFFIXES: .java .class
.java.class:
	$(JC) $(JFLAGS) $*.java

SPLAYSOURCE = splayTree/VNode.java splayTree/VirtualStateCollection.java \
	splayTree/VirtualState.java splayTree/TreePanel.java splayTree/TreeApplet.java \
	splayTree/State.java splayTree/SplayTree.java splayTree/Operation.java \
	splayTree/Location.java splayTree/Line.java splayTree/GraphicalNode.java \
	splayTree/DictionaryADT.java splayTree/ChangeState.java splayTree/Node.java

AVLSOURCE = avl/VNode.java avl/VirtualStateCollection.java avl/VirtualState.java \
	avl/TreePanel.java avl/TreeApplet.java avl/State.java avl/AVLTree.java \
	avl/Operation.java avl/Location.java avl/Line.java avl/GraphicalNode.java \
	avl/DictionaryADT.java avl/ChangeState.java avl/AVLNode.java

BSTSOURCE = bst/VNode.java bst/VirtualStateCollection.java bst/VirtualState.java \
	bst/TreePanel.java bst/TreeApplet.java bst/State.java bst/BST.java \
	bst/Operation.java bst/Location.java bst/Line.java bst/GraphicalNode.java \
	bst/DictionaryADT.java bst/ChangeState.java bst/Node.java

ALLSOURCE = Main.java TreePanel.java TreeApplet.java State.java GraphicalNode.java \
	DictionaryADT.java BST.java BinNodeADT.java BinNode.java

SOURCE = $(ALLSOURCE) $(BSTSOURCE) $(AVLSOURCE) $(SPLAYSOURCE)

all: classes treeviz.zip

treeviz.zip: *.java makefile
	zip treeviz.zip *.java *.html makefile avl/*.java splayTree/*.java

classes: $(SOURCE)
	$(JAVAC) $(JFLAGS) *.java

clean:
	$(RM) *.class
	$(RM) bst/*.class
	$(RM) splayTree/*.class
	$(RM) avl/*.class
	$(RM) TreeSimulation/*.class
	$(RM) *.zip
