Path: news.mathworks.com!not-for-mail
From: "Bruno Luong" <b.luong@fogale.findmycountry>
Newsgroups: comp.soft-sys.matlab
Subject: Re: determination of the associated compiler and API lib locations
Date: Thu, 12 Nov 2009 08:35:19 +0000 (UTC)
Organization: FOGALE nanotech
Lines: 69
Message-ID: <hdghc7$g7n$1@fred.mathworks.com>
References: <hdggou$9du$1@fred.mathworks.com>
Reply-To: "Bruno Luong" <b.luong@fogale.findmycountry>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1258014919 16631 172.30.248.37 (12 Nov 2009 08:35:19 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Thu, 12 Nov 2009 08:35:19 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 390839
Xref: news.mathworks.com comp.soft-sys.matlab:584452


"Sebastien Paris" <sebastien.paris.nospam@lsis.org> wrote in message <hdggou$9du$1@fred.mathworks.com>...
> Hello,
> 
> 
> Who knows how to determine the compiler associated with the mex command. Want a function which returns a string such as : 
> 
> comp = compiler;
> 
> where comp should be {lcc, msvc, gcc, ...} and whatever version of Matlab of course ...
> 
> Other point, I would like to know the location of librairies used by matlab such BLAS, LAPACK, etc ... A function returning something like
> 
> lib = APIllib;
> 
> 
> where lib.blas = 'C:\Program Files\MATLAB\R2009a\extern\lib\win32\microsoft\libmwblas.lib'
> 
> for example.
> 
> 
> Sebastien

Get the compiler, here is a tool from me.

>> getmexopts('COMPILER')

ans =

cl

function res = getmexopts(Tag)
% function res = getmexopts(Tag)
% Get the MCC or MEX configuration
% Author Bruno Luong <brunoluong@yahoo.com>
% Last update: 29-Jun-2009

if ispc()
    optpath=prefdir;
    optfile=[optpath filesep 'compopts.bat'];
    mexoptfile=[optpath filesep 'mexopts.bat'];
else
    optpath=matlabroot;
    optfile=[optpath '/bin/mbuildopts.sh'];
    mexoptfile=[optpath '/bin/mexopts.sh']; % not sure correct path
end

% Try to get MEX option first
fid=fopen(mexoptfile,'r');
if fid<=0
    % Next MCC options
    fid=fopen(optfile,'r');
end

if fid>0
    iscompilerline=@(S) (strcmp(S,['set ' Tag]));
    C=textscan(fid,'%s %s', 'delimiter', '=', 'whitespace', '');
    fclose(fid);
    cline=find(cellfun(iscompilerline,C{1}));
    if isempty(cline)
        error('getmexopt [Bruno]: cannot get Tag %s', Tag)
    end
    res=C{2}{cline};
    root=regexprep(matlabroot,'\\','\\\\');
    res = regexprep(res,'%MATLAB%',root);
else
    error('getmexopts [Bruno]: cannot open comopts.bat file')
end

% Bruno