diff extra/NaN/src/Makefile @ 6547:fd5a38714a75 octave-forge

(none)
author schloegl
date Sun, 10 Jan 2010 21:22:21 +0000
parents 2b00eae0b7d5
children 41e9854fe26d
line wrap: on
line diff
--- a/extra/NaN/src/Makefile	Sun Jan 10 18:14:58 2010 +0000
+++ b/extra/NaN/src/Makefile	Sun Jan 10 21:22:21 2010 +0000
@@ -1,13 +1,43 @@
-PROGS = $(patsubst %.cpp,%.mex,$(wildcard *.cpp))
+
+MATLABDIR = /usr/local/matlab
+CC  	= gcc
+CXX 	= g++
+CFLAGS 	= -Wall -Wconversion -O3 -fPIC -I/usr/include/octave
+OCTMEX	= mkoctfile --mex
 
-all: $(PROGS)
+#CFLAGS	= -Wall -Wconversion -O3 -fPIC -I$(MATLABDIR)/extern/include
+# comment the following line if you use MATLAB on 32-bit computer
+MEX_OPTION += -largeArrayDims
+MATMEX	= $(MATLABDIR)/bin/mex $(MEX_OPTION)
+MEX_EXT = $(shell $(MATLABDIR)/bin/mexext)
+
+PROGS = $(patsubst %_mex.c,%_mex.mex,$(wildcard *.c))
+
+matlab: $(patsubst %_mex.c,%_mex.$(MEX_EXT),$(wildcard *.c))
+octave: $(patsubst %_mex.c,%_mex.mex,$(wildcard *.c))
+all: matlab octave
 
 $(PROGS): Makefile
 
 %.oct: %.cc
 	mkoctfile $<
 
-%.mex: %.cpp
-	mkoctfile --mex $<
+%.mex: %.c
+	$(OCTMEX) $<           ## Octave
+%.$(MEX_EXT): %.c
+	$(MATMEX) $<           ## Matlab
+
+svmtrain_mex.mex:     svmtrain_mex.c svm.h svm.o svm_model_matlab.o
+	env CC=$(CXX) $(OCTMEX) svmtrain_mex.c svm.o svm_model_matlab.o
 
-clean: ; -$(RM) *.o core octave-core *.oct *~ *.mex
+svmtrain_mex.$(MEX_EXT):     svmtrain_mex.c svm.h svm.o svm_model_matlab.o
+	$(MATMEX) svmtrain_mex.c svm.o svm_model_matlab.o
+
+svm_model_matlab.o:     svm_model_matlab.c svm.h
+	$(CXX) $(CFLAGS) -c svm_model_matlab.c
+
+svm.o:  svm.cpp svm.h
+	$(CXX) $(CFLAGS) -c svm.cpp
+
+clean: ; -$(RM) *.o core octave-core *.oct *~ *.mex*
+