-% This make.m is used under Windows\r
+% This make.m is for MATLAB and OCTAVE under Windows, Mac, and Unix\r
\r
-mex -O -largeArrayDims -c ..\blas\*.c -outdir ..\blas\r
-mex -O -largeArrayDims -c ..\linear.cpp\r
-mex -O -largeArrayDims -c ..\tron.cpp\r
-mex -O -largeArrayDims -c linear_model_matlab.c -I..\\r
-mex -O -largeArrayDims train.c -I..\ tron.obj linear.obj linear_model_matlab.obj ..\blas\*.obj\r
-mex -O -largeArrayDims predict.c -I..\ tron.obj linear.obj linear_model_matlab.obj ..\blas\*.obj\r
-mex -O -largeArrayDims libsvmread.c\r
-mex -O -largeArrayDims libsvmwrite.c\r
+Type = ver;\r
+% This part is for OCTAVE\r
+if(strcmp(Type(1).Name, 'Octave') == 1)\r
+ mex libsvmread.c\r
+ mex libsvmwrite.c\r
+ mex train.c linear_model_matlab.c ../linear.cpp ../tron.cpp ../blas/*.c\r
+ mex predict.c linear_model_matlab.c ../linear.cpp ../tron.cpp ../blas/*.c\r
+% This part is for MATLAB\r
+% Add -largeArrayDims on 64-bit machines of MATLAB\r
+else\r
+ mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmread.c\r
+ mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmwrite.c\r
+ mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims train.c linear_model_matlab.c ../linear.cpp ../tron.cpp "../blas/*.c"\r
+ mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims predict.c linear_model_matlab.c ../linear.cpp ../tron.cpp "../blas/*.c"\r
+end\r
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
-#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))