From 50bd7dbaaf1565c035054048e374e0a7a0d553cd Mon Sep 17 00:00:00 2001 From: coha Date: Sat, 27 Aug 2011 05:04:47 +0000 Subject: [PATCH] Modify make.m so that it is workable for MATLAB and OCTAVE under Windows, Mac, and Unix. Modify "linear.h" into "../linear.h". Handle the varible MX_API_VER of OCTAVE. --- matlab/linear_model_matlab.c | 4 +++- matlab/make.m | 25 ++++++++++++++++--------- matlab/predict.c | 4 +++- matlab/train.c | 4 +++- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/matlab/linear_model_matlab.c b/matlab/linear_model_matlab.c index ee3773a..2d4076e 100644 --- a/matlab/linear_model_matlab.c +++ b/matlab/linear_model_matlab.c @@ -1,12 +1,14 @@ #include #include -#include "linear.h" +#include "../linear.h" #include "mex.h" +#ifdef MX_API_VER #if MX_API_VER < 0x07030000 typedef int mwIndex; #endif +#endif #define Malloc(type,n) (type *)malloc((n)*sizeof(type)) diff --git a/matlab/make.m b/matlab/make.m index 1258e13..8823c80 100644 --- a/matlab/make.m +++ b/matlab/make.m @@ -1,10 +1,17 @@ -% This make.m is used under Windows +% This make.m is for MATLAB and OCTAVE under Windows, Mac, and Unix -mex -O -largeArrayDims -c ..\blas\*.c -outdir ..\blas -mex -O -largeArrayDims -c ..\linear.cpp -mex -O -largeArrayDims -c ..\tron.cpp -mex -O -largeArrayDims -c linear_model_matlab.c -I..\ -mex -O -largeArrayDims train.c -I..\ tron.obj linear.obj linear_model_matlab.obj ..\blas\*.obj -mex -O -largeArrayDims predict.c -I..\ tron.obj linear.obj linear_model_matlab.obj ..\blas\*.obj -mex -O -largeArrayDims libsvmread.c -mex -O -largeArrayDims libsvmwrite.c +Type = ver; +% This part is for OCTAVE +if(strcmp(Type(1).Name, 'Octave') == 1) + mex libsvmread.c + mex libsvmwrite.c + mex train.c linear_model_matlab.c ../linear.cpp ../tron.cpp ../blas/*.c + mex predict.c linear_model_matlab.c ../linear.cpp ../tron.cpp ../blas/*.c +% This part is for MATLAB +% Add -largeArrayDims on 64-bit machines of MATLAB +else + mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmread.c + mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmwrite.c + mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims train.c linear_model_matlab.c ../linear.cpp ../tron.cpp "../blas/*.c" + mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims predict.c linear_model_matlab.c ../linear.cpp ../tron.cpp "../blas/*.c" +end diff --git a/matlab/predict.c b/matlab/predict.c index 2704d36..b700a3e 100644 --- a/matlab/predict.c +++ b/matlab/predict.c @@ -1,14 +1,16 @@ #include #include #include -#include "linear.h" +#include "../linear.h" #include "mex.h" #include "linear_model_matlab.h" +#ifdef MX_API_VER #if MX_API_VER < 0x07030000 typedef int mwIndex; #endif +#endif #define CMD_LEN 2048 diff --git a/matlab/train.c b/matlab/train.c index b0b2b52..1094a51 100644 --- a/matlab/train.c +++ b/matlab/train.c @@ -3,14 +3,16 @@ #include #include #include -#include "linear.h" +#include "../linear.h" #include "mex.h" #include "linear_model_matlab.h" +#ifdef MX_API_VER #if MX_API_VER < 0x07030000 typedef int mwIndex; #endif +#endif #define CMD_LEN 2048 #define Malloc(type,n) (type *)malloc((n)*sizeof(type)) -- 2.50.1