source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/lightspeed/install_lightspeed.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1%Install_lightspeed
2% Compiles mex files for the lightspeed library.
3
4% Written by Tom Minka
5% (c) Microsoft Corporation. All rights reserved.
6
7% thanks to Kevin Murphy for suggesting this routine.
8
9fprintf('Compiling lightspeed mex files...\n');
10fprintf('Change directory to lightspeed for this to work.\n');
11
12% Matlab version
13v = sscanf(version,'%d.%d.%*s (R%d) %*s');
14% v(3) is the R number
15% could also use v(3)>=13
16atleast65 = (v(1)>6 || (v(1)==6 && v(2)>=5));
17
18% copy matlab's original repmat.m as xrepmat.m
19if exist('xrepmat.m') ~= 2
20  w = which('repmat','-all');
21  cmd = ['"' w{end} '" xrepmat.m'];
22  if ispc
23    system(['copy ' cmd]);
24  else
25    system(['cp -rp ' cmd]);
26  end
27end
28
29% Routines that use LAPACK
30if ispc
31  if strcmp(mexcompiler,'cl')
32    if atleast65
33      % version >= 6.5
34      lapacklib = fullfile(matlabroot,'extern\lib\win32\microsoft\libmwlapack.lib');
35    end
36  else
37    lapacklib = fullfile(matlabroot,'extern\lib\win32\lcc\libmwlapack.lib');
38  end
39  if ~exist(lapacklib,'file')
40    lapacklib = 'dtrsm.c';
41    fprintf('libmwlapack.lib was not found.  To get additional optimizations, paste its location into install_lightspeed.m\n');
42  else
43    fprintf('Using the lapack library at %s\n',lapacklib);
44  end
45  %%% Paste the location of libmwlapack.lib %%%
46  %lapacklib = '';
47  clear functions
48  eval(['mex solve_triu.c "' lapacklib '"']);
49  eval(['mex solve_tril.c "' lapacklib '"']);
50else
51  % UNIX
52  mex solve_triu.c
53  mex solve_tril.c
54end
55
56mex -c flops.c
57mex sameobject.c
58mex int_hist.c
59mex -c mexutil.c
60mex -c util.c
61
62if ispc
63  % Windows
64  %if exist('util.obj','file')
65  mex addflops.c flops.obj
66  mex digamma.c util.obj
67  mex gammaln.c util.obj
68  mex randbinom.c util.obj
69  mex randgamma.c util.obj
70  mex repmat.c mexutil.obj
71  mex sample_hist.c util.obj
72  mex trigamma.c util.obj
73  try
74    % standalone programs
75    % compilation instructions are described at:
76    % http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/ch1_im15.html#27765
77    if atleast65
78      % -V5 is required for Matlab >=6.5
79      mex -f lccengmatopts.bat matfile.c -V5
80      %mex -f msvc71engmatopts.bat matfile.c -V5
81    else
82      mex -f lccengmatopts.bat matfile.c
83    end
84    mex -f lccengmatopts.bat test_flops.c
85  catch
86    disp('Could not install the standalone programs.');
87    disp(lasterr)
88  end
89else
90  % UNIX
91  mex addflops.c flops.o
92  mex digamma.c util.o -lm
93  mex gammaln.c util.o -lm
94  mex randbinom.c util.o -lm
95  mex randgamma.c util.o -lm
96  mex repmat.c mexutil.o
97  mex sample_hist.c util.o -lm
98  mex trigamma.c util.o -lm
99  try
100    % standalone programs
101    if atleast65
102      % -V5 is required only for Matlab >=6.5
103      mex -f matopts.sh matfile.c -V5
104    else
105      mex -f matopts.sh matfile.c
106    end 
107    mex -f matopts.sh test_flops.c
108  catch
109    disp('Could not install the standalone programs.');
110    disp(lasterr);
111    fprintf('Note: if matlab cannot find matopts.sh, your installation of matlab is faulty.\nIf you get this error, don''t worry, lightspeed should still work.');
112  end
113end
114
115fprintf('Done.\n');
Note: See TracBrowser for help on using the repository browser.