1# This Makefile is used under Linux
2
3MATLABDIR ?= /usr/local/matlab
4# for Mac
5# MATLABDIR ?= /opt/local/matlab
6
7CXX ?= g++
8#CXX = g++-4.1
9CFLAGS = -Wall -Wconversion -O3 -fPIC -I$(MATLABDIR)/extern/include -I..
10
11MEX = $(MATLABDIR)/bin/mex
12MEX_OPTION = CC="$(CXX)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CFLAGS)"
13# comment the following line if you use MATLAB on 32-bit computer
14MEX_OPTION += -largeArrayDims
15MEX_EXT = $(shell $(MATLABDIR)/bin/mexext)
16
17all:	matlab
18
19matlab:	binary
20
21octave:
22	@echo "please type make under Octave"
23
24binary: svmpredict.$(MEX_EXT) svmtrain.$(MEX_EXT) libsvmread.$(MEX_EXT) libsvmwrite.$(MEX_EXT)
25
26svmpredict.$(MEX_EXT):     svmpredict.c ../svm.h ../svm.o svm_model_matlab.o
27	$(MEX) $(MEX_OPTION) svmpredict.c ../svm.o svm_model_matlab.o
28
29svmtrain.$(MEX_EXT):       svmtrain.c ../svm.h ../svm.o svm_model_matlab.o
30	$(MEX) $(MEX_OPTION) svmtrain.c ../svm.o svm_model_matlab.o
31
32libsvmread.$(MEX_EXT):	libsvmread.c
33	$(MEX) $(MEX_OPTION) libsvmread.c
34
35libsvmwrite.$(MEX_EXT):	libsvmwrite.c
36	$(MEX) $(MEX_OPTION) libsvmwrite.c
37
38svm_model_matlab.o:     svm_model_matlab.c ../svm.h
39	$(CXX) $(CFLAGS) -c svm_model_matlab.c
40
41../svm.o: ../svm.cpp ../svm.h
42	make -C .. svm.o
43
44clean:
45	rm -f *~ *.o *.mex* *.obj ../svm.o
46