LIBLBFGS_DIR=lib
LIBLBFGS_HDR_DIR=./

TARGET=train-eda eda

CXX=g++
#CXXFLAGS= -Wall
CXXFLAGS= -Wall -O2
#CXXFLAGS= -Wall -O3

LIBLINEAR_BINARIES=liblinear-1.91/tron.o liblinear-1.91/linear.o liblinear-1.91/blas/blas.a


all:$(TARGET)

clean:
	cd liblinear-1.91/ && make clean
	rm -rf $(TARGET)

train-eda:\
	sentence.cpp\
	string_indexer.cpp\
	chu_liu_edmonds.cpp\
	eda_unlabeled_edge_feature_extractor.cpp\
	log_linear_sgd_parser_learner.cpp\
	lbfgs_hpp_parser_learner.cpp\
	simple_edge_label_feature_extractor.cpp\
	models.cpp\
	train.cpp
	cd liblinear-1.91/ && make
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBLINEAR_BINARIES)
#	$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBLINEAR_BINARIES) -llbfgs -static -I$(LIBLBFGS_HDR_DIR) -L$(LIBLBFGS_DIR)



eda:\
	sentence.cpp\
	string_indexer.cpp\
	chu_liu_edmonds.cpp\
	eda_unlabeled_edge_feature_extractor.cpp\
	simple_edge_label_feature_extractor.cpp\
	models.cpp\
	parse.cpp
	cd liblinear-1.91/ && make
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBLINEAR_BINARIES)


liblinear-1.91/tron.o:
	cd liblinear-1.91/ && make


chu_liu_edmonds_test: chu_liu_edmonds.cpp chu_liu_edmonds_test.cpp 
	$(CXX) $(CXXFLAGS) -o $@ $^

sentence_test: sentence_test.cpp sentence.cpp
	$(CXX) $(CXXFLAGS) -o $@ $^

models_test:\
	sentence.cpp\
	string_indexer.cpp\
	chu_liu_edmonds.cpp\
	eda_unlabeled_edge_feature_extractor.cpp\
	simple_edge_label_feature_extractor.cpp\
	models.cpp\
	models_test.cpp
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBLINEAR_BINARIES)
