## Makefile for machine learning template library

PACKAGE_NAME = mltl
VERSION = 0.1-beta237

SUBDIRS = \
  Classifier \
  Markov 

all:
	for subdir in $(SUBDIRS); do \
		(cd $$subdir && $(MAKE) all) \
	done

models:
	for subdir in $(SUBDIRS); do \
		(cd $$subdir && $(MAKE) models) \
	done

html:
	doxygen doxygen.conf

clean:
	for subdir in $(SUBDIRS); do \
		(cd $$subdir && $(MAKE) clean) \
	done
	rm -rf html

# PERCEPTRON = Perceptron.hpp Learning.hpp WeightMap.hpp
# LOGLINEARVM = LogLinearVM.hpp Exception.hpp lbfgs.hpp owlqn.hpp mathvec.hpp
# LOGLINEARSGD = LogLinearSGD.hpp Exception.hpp
# BAYESPOINTMACHINE = BayesPointMachine.hpp
# MAXLIKELIHOOD = MaximumLikelihood.hpp
# PEGASOS = Pegasos.hpp
# SVMDCD = SVMDCD.hpp
# SVMSGD = SVMSGD.hpp
# CONFIDENCEWEIGHTED = ConfidenceWeighted.hpp

# TARGETS= TrainMarkov TestMarkov \
# 	TrainClassifier TestClassifier \
# 	TrainSelector TestSelector \
# 	TrainDependency TestDependency \
# 	TrainShiftReduceParser TestShiftReduceParser \
# 	TrainForest TestForest
# #	TrainSemiMarkov TestSemiMarkov \
# #	TrainTreeMarkov TestTreeMarkov \

# PACKAGE_SOURCES = Makefile \
# 	Learning.hpp WeightMap.hpp Learner.hpp Exception.hpp \
# 	StringIndexer.hpp GzStream.hpp \
# 	Perceptron.hpp BayesPointMachine.hpp MaximumLikelihood.hpp \
# 	LogLinearVM.hpp LogLinearSGD.hpp lbfgs.hpp owlqn.hpp mathvec.hpp \
# 	Pegasos.hpp SVMDCD.hpp SVMSGD.hpp \
# 	ConfidenceWeighted.hpp \
# 	Classifier.hpp Selector.hpp \
# 	DependencyParseIO.hpp DependencyParseMST.hpp MatrixOp.hpp \
# 	Forest.hpp ForestIO.hpp \
# 	Markov.hpp MarkovIO.hpp ReadCoNLL.hpp \
# 	SemiMarkov.hpp SemiMarkovIO.hpp \
# 	Sequence.hpp SequenceIO.hpp \
# 	TrainClassifier.cpp TestClassifier.cpp \
# 	TrainDependency.cpp TestDependency.cpp \
# 	TrainForest.cpp TestForest.cpp \
# 	TrainMarkov.cpp TestMarkov.cpp \
# 	TrainSelector.cpp TestSelector.cpp \
# 	TrainSemiMarkov.cpp TestSemiMarkov.cpp \
# 	TrainTreeMarkov.cpp TreeMarkov.hpp CoNLLTreeReader.hpp \
# 	TestTreeMarkov.cpp TreeMarkov.hpp \
# 	TrainShiftReduceParser.cpp ShiftReduceParser.hpp \
# 	TestShiftReduceParser.cpp

# ######################################################################

# CXXFLAGS=-W -Wall -O2 -g -lz 

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

# all: $(TARGETS)

# main: main.cpp Classifier.hpp $(PERCEPTRON) $(LOGLINEARVM)
# TrainDependency: TrainDependency.cpp DependencyParseMST.hpp StringIndexer.hpp DependencyParseIO.hpp ReadCoNLL.hpp MatrixOp.hpp $(PERCEPTRON)
# TestDependency: TestDependency.cpp DependencyParseMST.hpp StringIndexer.hpp DependencyParseIO.hpp ReadCoNLL.hpp $(PERCEPTRON)
# TrainMarkov: TrainMarkov.cpp Markov.hpp StringIndexer.hpp MarkovIO.hpp GzStream.hpp $(PERCEPTRON) $(LOGLINEARVM) $(BAYESPOINTMACHINE) $(LOGLINEARSGD) $(PEGASOS) $(SVMSGD)
# TestMarkov: TestMarkov.cpp Markov.hpp StringIndexer.hpp MarkovIO.hpp GzStream.hpp
# TrainSemiMarkov: TrainSemiMarkov.cpp SemiMarkov.hpp StringIndexer.hpp SemiMarkovIO.hpp ReadCoNLL.hpp $(PERCEPTRON)
# TestSemiMarkov: TestSemiMarkov.cpp SemiMarkov.hpp StringIndexer.hpp SemiMarkovIO.hpp ReadCoNLL.hpp $(PERCEPTRON) 
# TrainClassifier: TrainClassifier.cpp Classifier.hpp StringIndexer.hpp $(PERCEPTRON) $(LOGLINEARVM) $(LOGLINEARSGD) $(BAYESPOINTMACHINE) $(MAXLIKELIHOOD) $(PEGASOS) $(SVMDCD) $(SVMSGD) $(CONFIDENCEWEIGHTED)
# TestClassifier: TestClassifier.cpp Classifier.hpp StringIndexer.hpp
# TrainSelector: TrainSelector.cpp Selector.hpp StringIndexer.hpp $(PERCEPTRON) $(LOGLINEARVM) $(LOGLINEARSGD) $(BAYESPOINTMACHINE)
# TestSelector: TestSelector.cpp Selector.hpp StringIndexer.hpp
# TrainForest: TrainForest.cpp Forest.hpp StringIndexer.hpp ForestIO.hpp GzStream.hpp $(PERCEPTRON) $(LOGLINEARVM) $(LOGLINEARSGD) $(BAYESPOINTMACHINE)
# TestForest: TestForest.cpp Forest.hpp StringIndexer.hpp ForestIO.hpp
# TrainTreeMarkov: TrainTreeMarkov.cpp TreeMarkov.hpp CoNLLTreeReader.hpp StringIndexer.hpp $(PERCEPTRON) $(BAYESPOINTMACHINE)
# TestTreeMarkov: TestTreeMarkov.cpp TreeMarkov.hpp CoNLLTreeReader.hpp StringIndexer.hpp
# TrainShiftReduceParser: TrainShiftReduceParser.cpp ShiftReduceParser.hpp ShiftReduceParserFormat.hpp StringIndexer.hpp $(PERCEPTRON) $(BAYESPOINTMACHINE) $(LOGLINEARVM) $(LOGLINEARSGD)
# TestShiftReduceParser: TestShiftReduceParser.cpp ShiftReduceParser.hpp ShiftReduceParserFormat.hpp StringIndexer.hpp

# package:
# 	mkdir $(PACKAGE_NAME)-$(VERSION)
# 	mkdir $(PACKAGE_NAME)-$(VERSION)/src
# 	cp $(PACKAGE_SOURCES) $(PACKAGE_NAME)-$(VERSION)/src
# 	tar cvf - $(PACKAGE_NAME)-$(VERSION) | gzip -c > $(PACKAGE_NAME)-$(VERSION).tar.gz
# 	rm -rf $(PACKAGE_NAME)-$(VERSION)

.PHONY: all models html clean package

