Subversion Repositories seema-scanner

Rev

Rev 194 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 194 Rev 209
1
%%
1
%%
2
% Build Matlab MEX functions
2
% Build Matlab MEX functions
3
% Jakob Wilm, DTU, 2014
3
% Jakob Wilm, DTU, 2014
4
 
4
 
5
%% Camera
5
%% Camera
6
srcDirCamera = '../src/camera/';
6
srcDirCamera = '../src/camera/';
7
if ismac
7
if ismac
8
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/opt/local/lib/';
8
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/opt/local/lib/';
9
    LDFLAGS = 'LDFLAGS=$LDFLAGS -ldc1394';
9
    LDFLAGS = 'LDFLAGS=$LDFLAGS -ldc1394';
10
    DEFINES = {'-DWITH_CAMERAIIDC'};
10
    DEFINES = {'-DWITH_CAMERAIIDC'};
11
    srcFilesCamera = {'Camera.cpp', 'CameraIIDC.cpp'};
11
    srcFilesCamera = {'Camera.cpp', 'CameraIIDC.cpp'};
12
elseif isunix
12
elseif isunix
13
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/usr/include/flycapture';
13
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/usr/include/flycapture';
14
    LDFLAGS = 'LINKLIBS=$LINKLIBS -lflycapture';
14
    LDFLAGS = 'LINKLIBS=$LINKLIBS -lflycapture';
15
    DEFINES = {'-DWITH_CAMERAPOINTGREY'};
15
    DEFINES = {'-DWITH_CAMERAPOINTGREY'};
16
    srcFilesCamera = {'Camera.cpp', 'CameraPointGrey.cpp'};
16
    srcFilesCamera = {'Camera.cpp', 'CameraPointGrey.cpp'};
17
elseif ispc
17
elseif ispc
18
	CXXFLAGS = '';
18
	CXXFLAGS = '';
19
    LDFLAGS = '';
19
    LDFLAGS = '';
20
    DEFINES = {};
20
    DEFINES = {};
21
    srcFilesCamera = {'Camera.cpp'};
21
    srcFilesCamera = {'Camera.cpp'};
22
end
22
end
23
 
23
 
24
srcFilesCamera = strcat(srcDirCamera, srcFilesCamera);
24
srcFilesCamera = strcat(srcDirCamera, srcFilesCamera);
25
srcFilesCamera = ['CameraMex.cpp' srcFilesCamera];
25
srcFilesCamera = ['CameraMex.cpp' srcFilesCamera];
26
 
26
 
27
%mex('-v', 'GCC=/usr/bin/g++-4.7', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
27
%mex('-v', 'GCC=/usr/bin/g++-4.7', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
28
mex('-v', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
28
mex('-v', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
29
 
29
 
30
%% Projector
30
%% Projector
31
srcDirProjector = '../src/projector/';
31
srcDirProjector = '../src/projector/';
32
srcFilesProjector = {'ProjectorOpenGL.cpp'};
32
srcFilesProjector = {'ProjectorOpenGL.cpp'};
33
if ismac
33
if ismac
34
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Mac.cpp'];
34
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Mac.cpp'];
35
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -ObjC++';
35
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -ObjC++';
36
    LDFLAGS = 'LINKLIBS=$LINKLIBS -framework Cocoa -framework OpenGL"';
36
    LDFLAGS = 'LINKLIBS=$LINKLIBS -framework Cocoa -framework OpenGL"';
37
elseif isunix
37
elseif isunix
38
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Xscreens.cpp'];
38
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Xscreens.cpp'];
39
    %srcFilesProjector = [srcFilesProjector 'OpenGLContext.XRandr.cpp'];
39
    %srcFilesProjector = [srcFilesProjector 'OpenGLContext.XRandr.cpp'];
40
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
40
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
41
    LDFLAGS = 'LINKLIBS=$LINKLIBS -lGL -lGLU -lX11 -lXxf86vm -lXi -lXcursor -lXrandr';
41
    LDFLAGS = 'LINKLIBS=$LINKLIBS -lGL -lGLU -lX11 -lXxf86vm -lXi -lXcursor -lXrandr';
42
elseif ispc
42
elseif ispc
43
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Win.cpp']; 
43
    srcFilesProjector = [srcFilesProjector 'OpenGLContext.Win.cpp']; 
44
	CXXFLAGS = '-I.';
44
	CXXFLAGS = '-I.';
45
    LDFLAGS = '-lOpenGL32';
45
    LDFLAGS = '-lOpenGL32';
46
end
46
end
47
 
47
 
48
srcFilesProjector = strcat(srcDirProjector, srcFilesProjector);
48
srcFilesProjector = strcat(srcDirProjector, srcFilesProjector);
49
srcFilesProjector = ['ProjectorMex.cpp' srcFilesProjector];
49
srcFilesProjector = ['ProjectorMex.cpp' srcFilesProjector];
50
 
50
 
51
mex('-v', ['-I' srcDirProjector], srcFilesProjector{:}, CXXFLAGS, LDFLAGS);
51
mex('-v', ['-I' srcDirProjector], srcFilesProjector{:}, CXXFLAGS, LDFLAGS);
52
 
52
 
53
 
-
 
54
%% Rotation Stage
53
%% Rotation Stage
55
srcDirRotationStage = '../src/rotationstage/';
54
srcDirRotationStage = '../src/rotationstage/';
56
srcFilesRotationStage = {'RotationStage.cpp'};
55
srcFilesRotationStage = {'RotationStage.cpp'};
57
if ismac
56
if ismac
58
    CFLAGS = 'CFLAGS=$CFLAGS';
57
    CFLAGS = 'CFLAGS=$CFLAGS';
59
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
58
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
60
    LINKLIBS = 'LINKLIBS=$LINKLIBS"';
59
    LINKLIBS = 'LINKLIBS=$LINKLIBS"';
61
elseif isunix
60
elseif isunix
62
    CFLAGS = 'CFLAGS=$CFLAGS -std=c99';
61
    CFLAGS = 'CFLAGS=$CFLAGS -std=c99';
63
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
62
    CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
64
    LINKLIBS = 'LINKLIBS=$LINKLIBS -lusb-1.0';
63
    LINKLIBS = 'LINKLIBS=$LINKLIBS -lusb-1.0';
65
elseif ispc
64
elseif ispc
66
	CFLAGS = 'CFLAGS=$CFLAGS';
65
	CFLAGS = 'CFLAGS=$CFLAGS';
67
    LINKLIBS = 'LINKLIBS=$LINKLIBS';
66
    LINKLIBS = 'LINKLIBS=$LINKLIBS';
68
end
67
end
69
 
68
 
70
srcFilesRotationStage = strcat(srcDirRotationStage, srcFilesRotationStage);
69
srcFilesRotationStage = strcat(srcDirRotationStage, srcFilesRotationStage);
71
srcFilesRotationStage = ['RotationStageMex.cpp' srcFilesRotationStage];
70
srcFilesRotationStage = ['RotationStageMex.cpp' srcFilesRotationStage];
72
 
71
 
73
% C file needs own call to gcc (c99, not ansi)
72
% C file needs own call to gcc (c99, not ansi)
74
%mex('-v', 'GCC=/usr/bin/g++-4.7', '-c', ['-I' srcDirRotationStage], [srcDirRotationStage 'ArcusPerformaxDriver.c'], CFLAGS);
-
 
75
mex('-v', '-c', ['-I' srcDirRotationStage], [srcDirRotationStage 'ArcusPerformaxDriver.c'], CFLAGS);
73
mex('-v', '-c', ['-I' srcDirRotationStage], [srcDirRotationStage 'ArcusPerformaxDriver.c'], CFLAGS);
76
% C++ files will be compiled with g++
74
% C++ files will be compiled with g++
77
mex('-v', ['-I' srcDirRotationStage], srcFilesRotationStage{:}, 'ArcusPerformaxDriver.o', CXXFLAGS, LINKLIBS);
75
mex('-v', ['-I' srcDirRotationStage], srcFilesRotationStage{:}, 'ArcusPerformaxDriver.o', CXXFLAGS, LINKLIBS);
78
 
76
 
79
 
77
 
80
 
78