Subversion Repositories seema-scanner

Rev

Rev 174 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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