TARGETS = TrainMarkov TestMarkov
CONLL2000_CHUNKER = conll2000-label.gz conll2000-vocab.gz conll2000-feat.gz
CONLL2003_NER = conll2003-label.gz conll2003-vocab.gz conll2003-feat.gz

CXXFLAGS = -I.. -W -Wall -O2 -g -lz 

%: %.cpp
	$(CXX) $(CXXFLAGS) $< -o $@

all: $(TARGETS)
models: $(CONLL2000_CHUNKER) $(CONLL2003_NER)

TrainMarkov: TrainMarkov.cpp Markov.hpp MarkovIO.hpp ../Perceptron.hpp ../LogLinearVM.hpp ../LogLinearSGD.hpp ../Pegasos.hpp ../SVMSGD.hpp ../BayesPointMachine.hpp ../FileIO.hpp
TestMarkov: TestMarkov.cpp Markov.hpp MarkovIO.hpp ../FileIO.hpp

$(CONLL2000_CHUNKER): conll2000-template.txt DATA/conll2000/conll2000-train.txt TrainMarkov
	./TrainMarkov -a llsgd -i 50 -f conll2000-template.txt -t DATA/conll2000/conll2000-train.txt -l conll2000-label.gz -v conll2000-vocab.gz -w conll2000-feat.gz

DATA/conll2003/%.bio: DATA/conll2003/% DATA/conll2003/io2bio.pl
	perl DATA/conll2003/io2bio.pl $< | perl DATA/conll2003/io2bio.pl -i 3 > $@
$(CONLL2003_NER): conll2003-template.txt DATA/conll2003/eng.train.bio TrainMarkov
	./TrainMarkov -a llsgd -i 50 -f conll2003-template.txt -t DATA/conll2003/eng.train.bio -l conll2003-label.gz -v conll2003-vocab.gz -w conll2003-feat.gz

clean:
	rm -f *.o $(TARGETS) $(MODELS)

