changeset 12585:26be3bc7237c octave-forge

[nan] support multi-threaded make; use liblinear and libsvm provided by target system
author schloegl
date Mon, 06 Apr 2015 12:01:45 +0000
parents 4e0e24d27b82
children 43fdbcb25f46
files extra/NaN/NEWS extra/NaN/src/Makefile
diffstat 2 files changed, 36 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/extra/NaN/NEWS	Fri Apr 03 19:24:52 2015 +0000
+++ b/extra/NaN/NEWS	Mon Apr 06 12:01:45 2015 +0000
@@ -1,3 +1,9 @@
+2015-04-06
+- use libsvm and liblinear of target system, instead of outdated copy
+- fix multi-threaded build (make -j) 
+- improve some tests
+
+
 2015-03-31: Release of NaN 2.7.2
 
 - bug fix in nanstd.m 
--- a/extra/NaN/src/Makefile	Fri Apr 03 19:24:52 2015 +0000
+++ b/extra/NaN/src/Makefile	Mon Apr 06 12:01:45 2015 +0000
@@ -87,37 +87,55 @@
 %.mex: %.cpp
 	$(OCTMEX) "$<"
 
+ifeq (,$(shell /sbin/ldconfig -p | grep libsvm))
 svm%_mex.mex: svm%_mex.cpp svm.o svm_model_octave.o
 	env CC=$(CXX) $(OCTMEX) "$<" svm.o svm_model_octave.o
 svm%_mex.$(MEX_EXT): svm%_mex.cpp svm.o svm_model_matlab.o
 	$(MATMEX) "$<" svm.o svm_model_matlab.o
-
 %.$(MEX_EXT): %.cpp  svm.o svm_model_matlab.o
-	$(MATMEX) "$<" # svm.o svm_model_matlab.o
+	$(MATMEX) "$<" svm.o svm_model_matlab.o
 
 svm_model_octave.o: svm_model_matlab.c 
 	$(CC)  $(CFLAGS) $(shell $(OCTMEX) -p INCFLAGS) -o svm_model_octave.o -c svm_model_matlab.c 
-
 svm_model_matlab.o: svm_model_matlab.c 
 	$(CC) $(CFLAGS) -I $(MATLABDIR)/extern/include -c svm_model_matlab.c 
+svm.o: svm.cpp
+	echo "It's recommended to install the package libsvm-dev."
+	$(CC) $(CFLAGS) -c svm.cpp
 
-train.$(MEX_EXT) predict.$(MEX_EXT): train.c linear.h tron.o linear.o linear_model_matlab.c
+else
+svm%_mex.mex: svm%_mex.cpp #svm.o svm_model_octave.o
+	env CC=$(CXX) $(OCTMEX) "$<" -lsvm
+svm%_mex.$(MEX_EXT): svm%_mex.cpp svm.o svm_model_matlab.o
+	$(MATMEX) "$<" -lsvm
+%.$(MEX_EXT): %.cpp  
+	$(MATMEX) "$<" -lsvm
+
+endif
+
+
+ifeq (,$(shell /sbin/ldconfig -p | grep liblinear))
+train.$(MEX_EXT) predict.$(MEX_EXT): train.c tron.o linear.o linear_model_matlab.c
 	$(CC) $(CFLAGS) -I $(MATLABDIR)/extern/include -c linear_model_matlab.c
 	$(MATMEX)  -lblas train.c tron.o linear.o linear_model_matlab.o 
 	#$(MATMEX) -lblas predict.c tron.o linear.o linear_model_matlab.o
-
-train.mex predict.mex: train.c linear.h tron.o linear.o linear_model_matlab.c
+train.mex predict.mex: train.c tron.o linear.o linear_model_matlab.c
 	env CC=$(CXX) $(OCTMEX) -lblas train.c tron.o linear.o linear_model_matlab.c
-
-svm.o: svm.cpp svm.h
-	$(CC) $(CFLAGS) -c svm.cpp
-
-linear.o: linear.cpp linear.h
+linear.o: linear.cpp
+	echo "It's recommended to install the package liblinear-dev"
 	$(CXX) $(CFLAGS) -c linear.cpp
-
 tron.o: tron.cpp tron.h
 	$(CXX) $(CFLAGS) -c tron.cpp
 
+else
+train.$(MEX_EXT) predict.$(MEX_EXT): train.c
+	$(CC) $(CFLAGS) -I $(MATLABDIR)/extern/include -c linear_model_matlab.c
+	$(MATMEX)  -lblas -llinear train.c
+train.mex predict.mex: train.c
+	env CC=$(CXX) $(OCTMEX) -lblas -llinear  train.c
+
+endif
+
 
 #########################################################
 #	MATLAB/WIN32