diff --git a/Makefile b/Makefile index 1bc5d4e..a8a46a9 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,30 @@ CXX ?= g++ -CFLAGS = -Wall -Wconversion -O3 -fPIC +CFLAGS ?= -Wall -Wconversion +CXXFLAGS ?= $(CFLAGS) SHVER = 4 OS = $(shell uname) ifeq ($(OS),Darwin) - SHARED_LIB_FLAG = -dynamiclib -Wl,-install_name,libsvm.so.$(SHVER) + SHARED_LIB_FLAG = -dynamiclib -Wl,-install_name,libsvm.so.$(SHVER) -fPIC else - SHARED_LIB_FLAG = -shared -Wl,-soname,libsvm.so.$(SHVER) + SHARED_LIB_FLAG = -shared -Wl,-soname,libsvm.so.$(SHVER) -fPIC endif # Uncomment the following lines to enable parallelization with OpenMP # CFLAGS += -fopenmp # SHARED_LIB_FLAG += -fopenmp -all: svm-train svm-predict svm-scale +all: svm-train svm-predict svm-scale lib lib: svm.o - $(CXX) $(SHARED_LIB_FLAG) svm.o -o libsvm.so.$(SHVER) + $(CXX) $(LDFLAGS) $(SHARED_LIB_FLAG) svm.o -o libsvm.so.$(SHVER) + ln -s libsvm.so.$(SHVER) libsvm.so svm-predict: svm-predict.c svm.o - $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm + $(CXX) $(CFLAGS) $(LDFLAGS) svm-predict.c svm.o -o svm-predict -lm svm-train: svm-train.c svm.o - $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm + $(CXX) $(CFLAGS) $(LDFLAGS) svm-train.c svm.o -o svm-train -lm svm-scale: svm-scale.c - $(CXX) $(CFLAGS) svm-scale.c -o svm-scale + $(CXX) $(CFLAGS) $(LDFLAGS) svm-scale.c -o svm-scale svm.o: svm.cpp svm.h - $(CXX) $(CFLAGS) -c svm.cpp + $(CXX) $(CXXFLAGS) -c svm.cpp clean: rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)