
.PHONY : test jar dist doc clean lbjclean

PACKAGES = edu/illinois/cs/cogcomp/lbj/chunk
SRC = $(PACKAGES:%=src/%)
CLASS = $(PACKAGES:%=class/%)

# If the two definitions below do not point to Sun's implementation of the
# Java language, change them so that they do.
JAVA ?= java
JAVAC ?= javac
JAVADOC ?= javadoc

CLASS_PATH = $(CLASSPATH):class
JAVAFLAGS = -Xmx512m -cp $(CLASS_PATH)
JAVACFLAGS += -classpath $(CLASS_PATH) -d class -sourcepath src:lbj
LBJ = $(JAVA) $(JAVAFLAGS) LBJ2.Main
LBJFLAGS = -d class -gsp lbj -sourcepath src

SRC_FILES = $(SRC:%=%/*.java)
GEN_FILES = lbj/edu/illinois/cs/cogcomp/lbj/chunk/Chunker.java
CLASS_FILES = $(SRC_FILES:src/%.java=class/%.class)

$(CLASS_FILES) : $(SRC_FILES) $(GEN_FILES)
	$(JAVAC) $(JAVACFLAGS) $(SRC_FILES) $(GEN_FILES)

$(GEN_FILES) : chunk.lbj
	@mkdir -p lbj class
	$(LBJ) $(LBJFLAGS) chunk.lbj

test :
	@echo "TESTING ON POS ANNOTATED DATA:"
	$(JAVA) $(JAVAFLAGS) edu.illinois.cs.cogcomp.lbj.chunk.ChunkTester /shared/grandpa/corpora/chunking/conll2000distributions/test.txt
	@echo
	@echo "TESTING ON UNANNOTATED DATA:"
	$(JAVA) $(JAVAFLAGS) edu.illinois.cs.cogcomp.lbj.chunk.ChunkTester /shared/grandpa/corpora/chunking/conll2000distributions/test.noPOS.txt

jar : $(CLASS)/Chunker.class $(CLASS)/ChunkTester.class
	jar cmf Manifest.txt LBJChunk.jar -C class edu

dist :
	rm -rf doc
	$(JAVADOC) -sourcepath src:lbj -d doc -windowtitle "Chunking with Learning Based Java" -doctitle "Chunking with Learning Based Java" edu.illinois.cs.cogcomp.lbj.chunk | grep -v Generating
	if [ -d class/edu ]; then mv class/edu class_edu; fi
	if [ -d lbj/edu ]; then mv lbj/edu lbj_edu; fi
	cd .. && gtar zcvf LBJChunk/lbjchunk.tar.gz LBJChunk/LICENSE LBJChunk/Makefile LBJChunk/Manifest.txt LBJChunk/README LBJChunk/ChangeLog LBJChunk/chunk.lbj LBJChunk/$(SRC)/*.java LBJChunk/class LBJChunk/lbj LBJChunk/doc
	if [ -d class_edu ]; then mv class_edu class/edu; fi
	if [ -d lbj_edu ]; then mv lbj_edu lbj/edu; fi

doc :
	rm -rf doc
	$(JAVADOC) -sourcepath src:lbj -d doc -windowtitle "Chunking with Learning Based Java" -doctitle "Chunking with Learning Based Java" edu.illinois.cs.cogcomp.lbj.chunk | grep -v Generating

lbjclean :
	$(LBJ) $(LBJFLAGS) -x chunk.lbj

clean :
	rm -rf class/edu lbj/edu

