Rev 194 | Blame | Compare with Previous | Last modification | View Log | RSS feed
%%
% Build Matlab MEX functions
% Jakob Wilm, DTU, 2014
%% Camera
srcDirCamera = '../src/camera/';
if ismac
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/opt/local/lib/';
LDFLAGS = 'LDFLAGS=$LDFLAGS -ldc1394';
DEFINES = {'-DWITH_CAMERAIIDC'};
srcFilesCamera = {'Camera.cpp', 'CameraIIDC.cpp'};
elseif isunix
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -I/usr/include/flycapture';
LDFLAGS = 'LINKLIBS=$LINKLIBS -lflycapture';
DEFINES = {'-DWITH_CAMERAPOINTGREY'};
srcFilesCamera = {'Camera.cpp', 'CameraPointGrey.cpp'};
elseif ispc
CXXFLAGS = '';
LDFLAGS = '';
DEFINES = {};
srcFilesCamera = {'Camera.cpp'};
end
srcFilesCamera = strcat(srcDirCamera, srcFilesCamera);
srcFilesCamera = ['CameraMex.cpp' srcFilesCamera];
%mex('-v', 'GCC=/usr/bin/g++-4.7', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
mex('-v', ['-I' srcDirCamera], DEFINES{:}, srcFilesCamera{:}, CXXFLAGS, LDFLAGS);
%% Projector
srcDirProjector = '../src/projector/';
srcFilesProjector = {'ProjectorOpenGL.cpp'};
if ismac
srcFilesProjector = [srcFilesProjector 'OpenGLContext.Mac.cpp'];
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS -ObjC++';
LDFLAGS = 'LINKLIBS=$LINKLIBS -framework Cocoa -framework OpenGL"';
elseif isunix
srcFilesProjector = [srcFilesProjector 'OpenGLContext.Xscreens.cpp'];
%srcFilesProjector = [srcFilesProjector 'OpenGLContext.XRandr.cpp'];
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
LDFLAGS = 'LINKLIBS=$LINKLIBS -lGL -lGLU -lX11 -lXxf86vm -lXi -lXcursor -lXrandr';
elseif ispc
srcFilesProjector = [srcFilesProjector 'OpenGLContext.Win.cpp'];
CXXFLAGS = '-I.';
LDFLAGS = '-lOpenGL32';
end
srcFilesProjector = strcat(srcDirProjector, srcFilesProjector);
srcFilesProjector = ['ProjectorMex.cpp' srcFilesProjector];
mex('-v', ['-I' srcDirProjector], srcFilesProjector{:}, CXXFLAGS, LDFLAGS);
%% Rotation Stage
srcDirRotationStage = '../src/rotationstage/';
srcFilesRotationStage = {'RotationStage.cpp'};
if ismac
CFLAGS = 'CFLAGS=$CFLAGS';
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
LINKLIBS = 'LINKLIBS=$LINKLIBS"';
elseif isunix
CFLAGS = 'CFLAGS=$CFLAGS -std=c99';
CXXFLAGS = 'CXXFLAGS=$CXXFLAGS';
LINKLIBS = 'LINKLIBS=$LINKLIBS -lusb-1.0';
elseif ispc
CFLAGS = 'CFLAGS=$CFLAGS';
LINKLIBS = 'LINKLIBS=$LINKLIBS';
end
srcFilesRotationStage = strcat(srcDirRotationStage, srcFilesRotationStage);
srcFilesRotationStage = ['RotationStageMex.cpp' srcFilesRotationStage];
% C file needs own call to gcc (c99, not ansi)
mex('-v', '-c', ['-I' srcDirRotationStage], [srcDirRotationStage 'ArcusPerformaxDriver.c'], CFLAGS);
% C++ files will be compiled with g++
mex('-v', ['-I' srcDirRotationStage], srcFilesRotationStage{:}, 'ArcusPerformaxDriver.o', CXXFLAGS, LINKLIBS);