~ubuntu-branches/ubuntu/trusty/psychtoolbox-3/trusty-proposed

« back to all changes in this revision

Viewing changes to .pc/deb_portaudio_usebuilt_a/PsychSourceGL/Source/linuxmakeitoctave3.m

  • Committer: Package Import Robot
  • Author(s): Yaroslav Halchenko
  • Date: 2013-11-19 23:34:50 UTC
  • mfrom: (3.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20131119233450-f7nf92vb8qavjmk8
Tags: 3.0.11.20131017.dfsg1-3
Upload to unsable since fresh glew has arrived to sid!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
function linuxmakeitoctave3(mode)
 
2
% This is the GNU/Linux version of makeit to build the Linux
 
3
% mex files for Octave on Linux.
 
4
 
 
5
if ~IsLinux || ~IsOctave
 
6
    error('This script is for Octave on Linux only!');
 
7
end
 
8
 
 
9
if nargin < 1
 
10
    mode = 0;
 
11
end;
 
12
 
 
13
fprintf('Building plugin type %i ...\n\n', mode);
 
14
 
 
15
% Target folder depends if this is a 64 bit or 32 bit runtime:
 
16
if ~isempty(findstr(computer, '_64'))
 
17
    target = 'PsychBasic/Octave3LinuxFiles64/';
 
18
else
 
19
    target = 'PsychBasic/Octave3LinuxFiles/';
 
20
end
 
21
 
 
22
% Special folder for ARM binaries:
 
23
if ~isempty(findstr(computer, 'arm'))
 
24
    target = 'PsychBasic/Octave3LinuxFilesARM/';
 
25
end
 
26
 
 
27
if mode==0
 
28
    % Build Screen.mex:
 
29
    
 
30
    % Setting "if 1" would enable GStreamer-SDK functions, but be backwards
 
31
    % incompatible with older Linux distros we'd like to keep supporting,
 
32
    % e.g., Debian 6.0:
 
33
    if 0
 
34
        % Build against GStreamer-SDK for Linux from www.gstreamer.com and
 
35
        % enable support for camerabin2 recording with selection of video
 
36
        % encoding profiles via -DPTB_USE_GSTENCODINGPROFILES
 
37
        %
 
38
        % This will disable backwards compatibility with old Linux distros,
 
39
        % so only use for testing, not for production releases!
 
40
        mex -v -g "-W -std=gnu99" --output ../Projects/Linux/build/Screen.mex -DPTBMODULE_Screen -DPTB_USE_GSTREAMER -DPTB_USE_GSTENCODINGPROFILES -DPTBVIDEOCAPTURE_LIBDC -DPTBOCTAVE3MEX -D_GNU_SOURCE -I/usr/X11R6/include -I/opt/gstreamer-sdk/include/gstreamer-0.10 -I/opt/gstreamer-sdk/include/glib-2.0 -I/opt/gstreamer-sdk/lib/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/opt/gstreamer-sdk/include/libxml2 -ICommon/Base -ICommon/Screen -ILinux/Base -ILinux/Screen -L/usr/X11R6/lib -L/opt/gstreamer-sdk/lib Common/Base/*.cc Linux/Base/*.c Linux/Screen/*.c Common/Screen/*.c Common/Base/*.c -lc -ldl -lrt -lGL -lGLU -lX11 -lXext -lgstreamer-0.10 -lgstbase-0.10 -lgstapp-0.10 -lgstinterfaces-0.10 -lgstpbutils-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lglib-2.0 -lXxf86vm -ldc1394 -lusb-1.0 -lpciaccess -lXi -lXrandr -lXfixes
 
41
    else
 
42
        % Build against system installed GStreamer, backwards compatible to
 
43
        % old Linux distros. This is the default for production builds:
 
44
        mex -v -g "-W -std=gnu99" --output ../Projects/Linux/build/Screen.mex -DPTBMODULE_Screen -DPTB_USE_GSTREAMER -DPTBVIDEOCAPTURE_LIBDC -DPTBOCTAVE3MEX -D_GNU_SOURCE -I/usr/X11R6/include -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libxml2 -ICommon/Base -ICommon/Screen -ILinux/Base -ILinux/Screen -L/usr/X11R6/lib  Common/Base/*.cc Linux/Base/*.c Linux/Screen/*.c Common/Screen/*.c Common/Base/*.c -lc -ldl -lrt -lGL -lGLU -lX11 -lXext -lgstreamer-0.10 -lgstbase-0.10 -lgstapp-0.10 -lgstinterfaces-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lglib-2.0 -lXxf86vm -ldc1394 -lusb-1.0 -lpciaccess -lGLEW -lXi -lXrandr -lXfixes
 
45
    end
 
46
    
 
47
    unix(['mv ../Projects/Linux/build/Screen.mex ' PsychtoolboxRoot target]);
 
48
    striplibsfrommexfile([PsychtoolboxRoot target 'Screen.mex']);
 
49
end;
 
50
 
 
51
if mode==100
 
52
    % Build Screen.mex with Waffle display backend, for desktop Linux:
 
53
    fprintf('Hmm, me likes some Waffle with this Screen :-)\n');
 
54
    mex -v -g "-W -std=gnu99" --output ../Projects/Linux/build/Screen.mex -DPTBMODULE_Screen -DPTB_USE_WAFFLE -DPTB_USE_GSTREAMER -DPTBVIDEOCAPTURE_LIBDC -DPTBOCTAVE3MEX -D_GNU_SOURCE -I/usr/local/include/waffle-1 -L/usr/local/lib/x86_64-linux-gnu/ -I/usr/X11R6/include -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libxml2 -ICommon/Base -ICommon/Screen -ILinux/Base -ILinux/Screen -L/usr/X11R6/lib  Common/Base/*.cc Linux/Base/*.c Linux/Screen/*.c Common/Screen/*.c Common/Base/*.c -lc -ldl -lrt -lGL -lGLU -lX11 -lXext -lgstreamer-0.10 -lgstbase-0.10 -lgstapp-0.10 -lgstinterfaces-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lglib-2.0 -lXxf86vm -ldc1394 -lusb-1.0 -lpciaccess -lXi -lXrandr -lXfixes -lwaffle-1
 
55
 
 
56
    unix(['mv ../Projects/Linux/build/Screen.mex ' PsychtoolboxRoot target]);
 
57
    striplibsfrommexfile([PsychtoolboxRoot target 'Screen.mex']);
 
58
end
 
59
 
 
60
if mode==1000
 
61
    % Build Screen.mex with Waffle display backend, for embedded/android devices:
 
62
    fprintf('Hmm, me likes some mobile Waffle with this Screen :-)\n');
 
63
    mex -v -g "-W -std=gnu99" --output ../Projects/Linux/build/Screen.mex -DPTBMODULE_Screen -DPTB_USE_WAFFLE -DPTB_USE_EGL -DPTB_USE_GLES1 -DPTB_USE_GSTREAMER -DPTBVIDEOCAPTURE_LIBDC -DPTBOCTAVE3MEX -D_GNU_SOURCE -I/usr/local/include/waffle-1 -L/usr/local/lib/arm-linux-gnueabihf/ -I/usr/X11R6/include -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2 -ICommon/Base -ICommon/Screen -ILinux/Base -ILinux/Screen -L/usr/X11R6/lib  Common/Base/*.cc Linux/Base/*.c Linux/Screen/*.c Common/Screen/*.c Common/Base/*.c -lc -ldl -lrt -lGLESv1_CM -lGL -lGLU -lX11 -lXext -lgstreamer-0.10 -lgstbase-0.10 -lgstapp-0.10 -lgstinterfaces-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lglib-2.0 -lXxf86vm -ldc1394 -lusb-1.0 -lpciaccess -lXi -lXrandr -lXfixes -lwaffle-1
 
64
 
 
65
    unix(['mv ../Projects/Linux/build/Screen.mex ' PsychtoolboxRoot target]);
 
66
    striplibsfrommexfile([PsychtoolboxRoot target 'Screen.mex']);
 
67
end
 
68
 
 
69
if mode==1
 
70
    % Build GetSecs.mex:
 
71
    mex -v -g --output ../Projects/Linux/build/GetSecs.mex -DPTBMODULE_GetSecs -DPTBOCTAVE3MEX -ICommon/Base -ILinux/Base -ICommon/GetSecs -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/GetSecs/*.c -lc -lrt 
 
72
    unix(['mv ../Projects/Linux/build/GetSecs.mex ' PsychtoolboxRoot target]);
 
73
    striplibsfrommexfile([PsychtoolboxRoot target 'GetSecs.mex']);
 
74
end;
 
75
 
 
76
if mode==2
 
77
    % Build WaitSecs.mex:
 
78
    mex -v -g --output ../Projects/Linux/build/WaitSecs.mex -DPTBMODULE_WaitSecs -DPTBOCTAVE3MEX -ICommon/Base -ILinux/Base -ICommon/WaitSecs -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/WaitSecs/*.c -lc -lrt 
 
79
    unix(['mv ../Projects/Linux/build/WaitSecs.mex ' PsychtoolboxRoot target]);
 
80
    striplibsfrommexfile([PsychtoolboxRoot target 'WaitSecs.mex']);
 
81
end;
 
82
 
 
83
if mode==3
 
84
    % Build PsychPortAudio.mex:
 
85
    mex -v -g --output ../Projects/Linux/build/PsychPortAudio.mex -DPTBMODULE_PsychPortAudio -DPTBOCTAVE3MEX -ICommon/Base -ILinux/Base -ICommon/PsychPortAudio -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/PsychPortAudio/*.c /usr/local/lib/libportaudio.a -lc -lrt -lasound
 
86
    unix(['mv ../Projects/Linux/build/PsychPortAudio.mex ' PsychtoolboxRoot target]);
 
87
    striplibsfrommexfile([PsychtoolboxRoot target 'PsychPortAudio.mex']);
 
88
end
 
89
 
 
90
if mode==4
 
91
    % Build Eyelink.mex:
 
92
    mex -v -g --output ../Projects/Linux/build/Eyelink.mex -DPTBMODULE_Eyelink -DPTBOCTAVE3MEX -ICommon/Base -ILinux/Base -ICommon/Eyelink -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/Eyelink/*.c -leyelink_core -lc -lrt
 
93
    unix(['mv ../Projects/Linux/build/Eyelink.mex ' PsychtoolboxRoot target]);
 
94
    striplibsfrommexfile([PsychtoolboxRoot target 'Eyelink.mex']);
 
95
end
 
96
 
 
97
if mode==5
 
98
    % Build IOPort.mex:
 
99
    mex -v -g --output ../Projects/Linux/build/IOPort.mex -DPTBMODULE_IOPort -DPTBOCTAVE3MEX -ICommon/Base -ILinux/Base -ICommon/IOPort -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/IOPort/*.c -lc -lrt
 
100
    unix(['mv ../Projects/Linux/build/IOPort.mex ' PsychtoolboxRoot target]);
 
101
    striplibsfrommexfile([PsychtoolboxRoot target 'IOPort.mex']);
 
102
end
 
103
 
 
104
if mode==6
 
105
    % Build moglcore.mex:
 
106
    curdir = pwd;
 
107
    cd('../../Psychtoolbox/PsychOpenGL/MOGL/source/')
 
108
    try
 
109
       mex -v -g --output moglcore.mex -DLINUX -DPTBOCTAVE3MEX -I/usr/X11R6/include -L/usr/X11R6/lib -lc -lGL -lGLU -lglut -lGLEW moglcore.c gl_auto.c gl_manual.c mogl_rebinder.c ftglesGlue.c
 
110
    catch
 
111
    end
 
112
    unix(['mv moglcore.mex ' PsychtoolboxRoot target]);
 
113
    cd(curdir);
 
114
    striplibsfrommexfile([PsychtoolboxRoot target 'moglcore.mex']);
 
115
end;
 
116
 
 
117
if mode==6000
 
118
    % Build moglcore.mex for OpenGL-ES:
 
119
    curdir = pwd;
 
120
    cd('../../Psychtoolbox/PsychOpenGL/MOGL/source/')
 
121
    try
 
122
       mex -v -g --output moglcore.mex -DPTB_USE_WAFFLE -DLINUX -DGLEW_STATIC -DPTBOCTAVE3MEX -I/usr/X11R6/include -L/usr/X11R6/lib -lc -lGLESv1_CM -lGL -lGLU -lglut moglcore.c gl_auto.c gl_manual.c glew.c mogl_rebinder.c ftglesGlue.c
 
123
    catch
 
124
    end
 
125
    unix(['mv moglcore.mex ' PsychtoolboxRoot target]);
 
126
    cd(curdir);
 
127
    striplibsfrommexfile([PsychtoolboxRoot target 'moglcore.mex']);
 
128
end;
 
129
 
 
130
if mode==7
 
131
    % Build PsychKinectCore.mex:
 
132
    mex -v -g --output ../Projects/Linux/build/PsychKinectCore.mex -DPTBMODULE_PsychKinectCore -DPTBOCTAVE3MEX -I/usr/include/libusb-1.0 -I/usr/include/libfreenect -ICommon/Base -ILinux/Base -ICommon/PsychKinect -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/PsychKinect/*.c -lc -lrt -lfreenect -lusb-1.0
 
133
    unix(['mv ../Projects/Linux/build/PsychKinectCore.mex ' PsychtoolboxRoot target]);
 
134
    striplibsfrommexfile([PsychtoolboxRoot target 'PsychKinectCore.mex']);
 
135
end;
 
136
 
 
137
if mode==8
 
138
    % Build PsychHID.mex:
 
139
    mex -v -g --output ../Projects/Linux/build/PsychHID.mex -DPTBMODULE_PsychHID -DPTBOCTAVE3MEX -I/usr/include/libusb-1.0 -ICommon/Base -ILinux/Base -ICommon/PsychHID -ILinux/PsychHID -ICommon/Screen Common/Base/*.cc Linux/Base/*.c Common/Base/*.c Common/PsychHID/*.c Linux/PsychHID/*.c -lc -ldl -lrt -lusb-1.0 -lX11 -lXi -lutil
 
140
    unix(['mv ../Projects/Linux/build/PsychHID.mex ' PsychtoolboxRoot target]);
 
141
    striplibsfrommexfile([PsychtoolboxRoot target 'PsychHID.mex']);
 
142
end;
 
143
 
 
144
if mode==9
 
145
    % Build moalcore.mex:
 
146
    curdir = pwd;
 
147
    cd('../../Psychtoolbox/PsychSound/MOAL/source/')
 
148
    try
 
149
       mex -v -g --output moalcore.mex -DLINUX -DPTBOCTAVE3MEX -lc -lopenal moalcore.c al_auto.c al_manual.c alm.c 
 
150
    catch
 
151
    end
 
152
    unix(['mv moalcore.mex ' PsychtoolboxRoot target]);
 
153
    cd(curdir);
 
154
    striplibsfrommexfile([PsychtoolboxRoot target 'moalcore.mex']);
 
155
end;
 
156
 
 
157
if mode == 10
 
158
    % Build PsychCV
 
159
    mex -v -g --output PsychCV.mex -DPTBMODULE_PsychCV -DPTBOCTAVE3MEX -ICommon/Base -ICommon/PsychCV -ILinux/Base -I../Cohorts/ARToolkit/include Common/Base/*.cc Common/Base/*.c Linux/Base/*.c Common/PsychCV/*.c -lc -lrt /usr/local/lib/libARMulti.a /usr/local/lib/libARgsub.a /usr/local/lib/libARgsub_lite.a /usr/local/lib/libARgsubUtil.a /usr/local/lib/libAR.a -lglut
 
160
    unix(['mv PsychCV.mex ' PsychtoolboxRoot target]);
 
161
    striplibsfrommexfile([PsychtoolboxRoot target 'PsychCV.mex']);
 
162
end
 
163
 
 
164
% Remove stale object files:
 
165
delete('*.o');
 
166
 
 
167
return;