99 lines
3.5 KiB
Matlab
Executable File
99 lines
3.5 KiB
Matlab
Executable File
%%*****************************************************************
|
|
%% SDPT3: version 4.0
|
|
%% Copyright (c) 1997 by
|
|
%% Kim-Chuan Toh, Michael J. Todd, Reha H. Tutuncu
|
|
%% Last Modified: 16 Sep 2004
|
|
%%*****************************************************************
|
|
%% Run this script in Matlab command window
|
|
%%*****************************************************************
|
|
|
|
function Installmex(recompile)
|
|
|
|
curdir = pwd;
|
|
fprintf(' current directory is: %s\n',curdir);
|
|
%%
|
|
%% generate mex files in Mexfun
|
|
%%
|
|
if (nargin==0); recompile = 0; end
|
|
computer_model = computer;
|
|
matlabversion = sscanf(version,'%f');
|
|
matlabversion = matlabversion(1);
|
|
tmp = version('-release');
|
|
matlabrelease = str2num(tmp(1:4));
|
|
%%
|
|
fsp = filesep;
|
|
if strcmp(computer_model,'PCWIN')
|
|
str0 = ['''',matlabroot,'\extern\lib\win32\lcc\'' '];
|
|
if (exist(eval(str0),'dir')==7)
|
|
str1 = ['''',matlabroot,'\extern\lib\win32\lcc\libmwlapack.lib'' '];
|
|
str2 = ['''',matlabroot,'\extern\lib\win32\lcc\libmwblas.lib'' '];
|
|
else
|
|
str1 = ['''',matlabroot,'\extern\lib\win32\microsoft\libmwlapack.lib'' '];
|
|
str2 = ['''',matlabroot,'\extern\lib\win32\microsoft\libmwblas.lib'' '];
|
|
end
|
|
libstr = [str1,str2];
|
|
elseif strcmp(computer_model,'PCWIN64')
|
|
str_lcc = ['''',matlabroot,'\extern\lib\win64\lcc\'' '];
|
|
str_mingw64 = ['''',matlabroot,'\extern\lib\win64\mingw64\'' '];
|
|
str_microsoft = ['''',matlabroot,'\extern\lib\win64\microsoft\'' '];
|
|
if (exist(eval(str_lcc),'dir')==7)
|
|
str1 = ['''',matlabroot,'\extern\lib\win64\lcc\libmwlapack.lib'' '];
|
|
str2 = ['''',matlabroot,'\extern\lib\win64\lcc\libmwblas.lib'' '];
|
|
elseif (exist(eval(str_mingw64),'dir')==7)
|
|
str1 = ['''',matlabroot,'\extern\lib\win64\mingw64\libmwlapack.lib'' '];
|
|
str2 = ['''',matlabroot,'\extern\lib\win64\mingw64\libmwblas.lib'' '];
|
|
elseif (exist(eval(str_microsoft),'dir')==7)
|
|
str1 = ['''',matlabroot,'\extern\lib\win64\microsoft\libmwlapack.lib'' '];
|
|
str2 = ['''',matlabroot,'\extern\lib\win64\microsoft\libmwblas.lib'' '];
|
|
else
|
|
error(' no compiler found');
|
|
end
|
|
libstr = [str1,str2];
|
|
else
|
|
libstr = ' -lmwlapack -lmwblas ';
|
|
end
|
|
if strfind(computer_model,'MAC')
|
|
mexcmd = 'mex -largeArrayDims -output ';
|
|
else
|
|
mexcmd = 'mex -O -largeArrayDims -output ';
|
|
end
|
|
%%
|
|
%%
|
|
%%
|
|
src = [curdir,fsp,'Solver',fsp,'Mexfun'];
|
|
eval(['cd ','Solver',fsp,'Mexfun']);
|
|
fprintf ('\n Now compiling the mexFunctions in:\n');
|
|
fprintf (' %s\n',src);
|
|
|
|
fname{1} = 'mexProd2';
|
|
fname{2} = 'mexProd2nz';
|
|
fname{3} = 'mexinprod';
|
|
fname{4} = 'mexmat';
|
|
fname{5} = 'mexsmat';
|
|
fname{6} = 'mexsvec';
|
|
fname{7} = 'mexschur';
|
|
fname{8} = 'mexqops';
|
|
fname{9} = 'mexexpand';
|
|
fname{10} = 'mexskron';
|
|
fname{11} = 'mexnnz';
|
|
fname{12} = 'mexschurfun';
|
|
fname{13} = 'mexMatvec';
|
|
fname{14} = 'mextriang';
|
|
fname{15} = 'mextriangsp';
|
|
%%
|
|
ext = mexext;
|
|
for k = 1:length(fname)
|
|
existmex = exist([fname{k},'.',ext]);
|
|
if (existmex ~= 3) | (recompile)
|
|
cmd([mexcmd,fname{k},' ',fname{k},'.c ',libstr]);
|
|
end
|
|
end
|
|
cd ..
|
|
cd ..
|
|
%%***********************************************
|
|
function cmd(s)
|
|
|
|
fprintf(' %s\n',s);
|
|
eval(s);
|
|
%%***********************************************
|