root/trunk/libffado/src/SConscript

Revision 2802, 11.0 kB (checked in by jwoithe, 3 years ago)

Cosmetic: "Firewire" becomes "FireWire?".

Officially both the "F" and "W" were capitalised in the FireWire? name, so
reflect this throughout FFADO's source tree. This mostly affects comments.

This patch originated from pander on the ffado-devel mailing list. To
maintain consistency, the committed version has been expanded to include
files not originally included in the original patch.

Line 
1 #
2 # Copyright (C) 2007-2008 Arnold Krille
3 # Copyright (C) 2007-2008 Pieter Palmers
4 #
5 # This file is part of FFADO
6 # FFADO = Free FireWire (pro-)audio drivers for linux
7 #
8 # FFADO is based upon FreeBoB.
9 #
10 # This program is free software: you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 2 of the License, or
13 # (at your option) version 3 of the License.
14 #
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19 #
20 # You should have received a copy of the GNU General Public License
21 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
22 #
23
24 import os
25
26 Import( 'env' )
27
28 libenv = env.Clone()
29
30 libenv.MergeFlags( "-I#/ -I#/src" )
31
32 ffado_source = env.Split( '\
33     devicemanager.cpp \
34     ffado.cpp \
35     ffadodevice.cpp \
36     debugmodule/debugmodule.cpp \
37     DeviceStringParser.cpp \
38     libieee1394/ARMHandler.cpp \
39     libieee1394/configrom.cpp \
40     libieee1394/csr1212.c \
41     libieee1394/CycleTimerHelper.cpp \
42     libieee1394/ieee1394service.cpp \
43     libieee1394/IEC61883.cpp \
44     libieee1394/IsoHandlerManager.cpp \
45     libstreaming/StreamProcessorManager.cpp \
46     libstreaming/util/cip.c \
47     libstreaming/generic/StreamProcessor.cpp \
48     libstreaming/generic/Port.cpp \
49     libstreaming/generic/PortManager.cpp \
50     libutil/cmd_serialize.cpp \
51     libutil/DelayLockedLoop.cpp \
52     libutil/IpcRingBuffer.cpp \
53     libutil/PacketBuffer.cpp \
54     libutil/Configuration.cpp \
55     libutil/OptionContainer.cpp \
56     libutil/PosixMessageQueue.cpp \
57     libutil/PosixSharedMemory.cpp \
58     libutil/PosixMutex.cpp \
59     libutil/PosixThread.cpp \
60     libutil/ringbuffer.c \
61     libutil/StreamStatistics.cpp \
62     libutil/SystemTimeSource.cpp \
63     libutil/TimestampedBuffer.cpp \
64     libutil/Watchdog.cpp \
65     libcontrol/Element.cpp \
66     libcontrol/BasicElements.cpp \
67     libcontrol/MatrixMixer.cpp \
68     libcontrol/CrossbarRouter.cpp \
69     libcontrol/ClockSelect.cpp \
70     libcontrol/Nickname.cpp \
71 ')
72
73 if env['SERIALIZE_USE_EXPAT']:
74     ffado_source.append('libutil/serialize_expat.cpp')
75     ffado_source.append('libutil/serialize_expat_xml.cpp')
76 else:
77     ffado_source.append('libutil/serialize_libxml.cpp')
78
79 bebob_source = env.Split( '\
80     bebob/bebob_avdevice.cpp \
81     bebob/bebob_avdevice_subunit.cpp \
82     bebob/bebob_avplug.cpp \
83     bebob/bebob_dl_bcd.cpp \
84     bebob/bebob_dl_codes.cpp \
85     bebob/bebob_dl_mgr.cpp \
86     bebob/bebob_functionblock.cpp \
87     bebob/bebob_mixer.cpp \
88     bebob/focusrite/focusrite_generic.cpp \
89     bebob/focusrite/focusrite_saffire.cpp \
90     bebob/focusrite/focusrite_saffirepro.cpp \
91     bebob/focusrite/focusrite_cmd.cpp \
92     bebob/terratec/terratec_device.cpp \
93     bebob/terratec/terratec_cmd.cpp \
94     bebob/edirol/edirol_fa101.cpp \
95     bebob/edirol/edirol_fa66.cpp \
96     bebob/esi/quatafire610.cpp \
97     bebob/mackie/onyxmixer.cpp \
98     bebob/yamaha/yamaha_cmd.cpp \
99     bebob/yamaha/yamaha_avdevice.cpp \
100     bebob/maudio/normal_avdevice.cpp \
101     bebob/maudio/special_avdevice.cpp \
102     bebob/maudio/special_mixer.cpp \
103     bebob/presonus/firebox_avdevice.cpp \
104     bebob/presonus/inspire1394_avdevice.cpp \
105 ' )
106
107 bebob_pkgdata = env.Split( '\
108     bebob/maudio/refdesign.xml \
109     bebob/maudio/fw410.xml \
110     bebob/maudio/fwap.xml \
111 ' )
112
113 genericavc_source =  env.Split( '\
114     genericavc/avc_avdevice.cpp \
115     genericavc/stanton/scs.cpp \
116 ' )
117
118 genericavc_pkgdata = env.Split( '\
119 ' )
120
121 fireworks_source =  env.Split( '\
122     fireworks/fireworks_device.cpp \
123     fireworks/fireworks_control.cpp \
124     fireworks/fireworks_firmware.cpp \
125     fireworks/efc/efc_avc_cmd.cpp \
126     fireworks/efc/efc_cmd.cpp \
127     fireworks/efc/efc_cmds_hardware.cpp \
128     fireworks/efc/efc_cmds_hardware_ctrl.cpp \
129     fireworks/efc/efc_cmds_flash.cpp \
130     fireworks/efc/efc_cmds_mixer.cpp \
131     fireworks/efc/efc_cmds_monitor.cpp \
132     fireworks/efc/efc_cmds_ioconfig.cpp \
133     fireworks/fireworks_session_block.cpp \
134     fireworks/audiofire/audiofire_device.cpp \
135 ' )
136
137 fireworks_pkgdata =  env.Split( '\
138 ' )
139
140 oxford_source =  env.Split( '\
141     oxford/oxford_device.cpp \
142     libstreaming/amdtp-oxford/AmdtpOxfordReceiveStreamProcessor.cpp \
143 ' )
144
145 oxford_pkgdata = env.Split( '\
146 ' )
147
148 motu_source = env.Split( '\
149     motu/motu_avdevice.cpp \
150     motu/motu_controls.cpp \
151     motu/motu_mark3_controls.cpp \
152     motu/motu_mixerdefs.cpp \
153     motu/motu_mark3_mixerdefs.cpp \
154     motu/motu_mixer.cpp \
155     libstreaming/motu/MotuPort.cpp \
156     libstreaming/motu/MotuPortInfo.cpp \
157     libstreaming/motu/MotuReceiveStreamProcessor.cpp \
158     libstreaming/motu/MotuTransmitStreamProcessor.cpp \
159 ' )
160
161 dice_source = env.Split( '\
162     dice/dice_avdevice.cpp \
163     dice/dice_firmware_loader.cpp \
164     dice/dice_eap.cpp \
165     dice/focusrite/focusrite_eap.cpp \
166     dice/focusrite/saffire_pro40.cpp \
167     dice/focusrite/saffire_pro26.cpp \
168     dice/focusrite/saffire_pro24.cpp \
169     dice/focusrite/saffire_pro14.cpp \
170     dice/focusrite/saffire_56.cpp \
171     dice/maudio/profire_2626.cpp \
172     dice/presonus/firestudio_tube.cpp \
173     dice/presonus/firestudio_project.cpp \
174     dice/presonus/firestudio_mobile.cpp \
175 ' )
176
177 bounce_source = env.Split( '\
178     bounce/bounce_avdevice.cpp \
179     bounce/bounce_slave_avdevice.cpp \
180 ' )
181
182 metric_halo_source = env.Split( '\
183     metrichalo/mh_avdevice.cpp \
184 ' )
185
186 rme_source = env.Split( '\
187     rme/rme_shm.cpp \
188     rme/rme_avdevice.cpp \
189     rme/rme_avdevice_settings.cpp \
190     rme/fireface_flash.cpp \
191     rme/fireface_hw.cpp \
192     rme/fireface_settings_ctrls.cpp \
193     libstreaming/rme/RmePort.cpp \
194     libstreaming/rme/RmePortInfo.cpp \
195     libstreaming/rme/RmeReceiveStreamProcessor.cpp \
196     libstreaming/rme/RmeTransmitStreamProcessor.cpp \
197 ' )
198
199 digidesign_source = env.Split( '\
200     digidesign/digidesign_avdevice.cpp \
201     libstreaming/digidesign/DigidesignPort.cpp \
202     libstreaming/digidesign/DigidesignPortInfo.cpp \
203     libstreaming/digidesign/DigidesignReceiveStreamProcessor.cpp \
204     libstreaming/digidesign/DigidesignTransmitStreamProcessor.cpp \
205 ' )
206
207 amdtp_source = env.Split( '\
208     libstreaming/amdtp/AmdtpPort.cpp \
209     libstreaming/amdtp/AmdtpPortInfo.cpp \
210     libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp \
211     libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp \
212 ' )
213
214 libavc_source = env.Split( '\
215     libavc/streamformat/avc_extended_stream_format.cpp \
216     libavc/musicsubunit/avc_descriptor_music.cpp \
217     libavc/musicsubunit/avc_musicsubunit.cpp \
218     libavc/audiosubunit/avc_audiosubunit.cpp \
219     libavc/audiosubunit/avc_descriptor_audio.cpp \
220     libavc/audiosubunit/avc_function_block.cpp \
221     libavc/descriptors/avc_descriptor_cmd.cpp \
222     libavc/descriptors/avc_descriptor.cpp \
223     libavc/general/avc_extended_subunit_info.cpp \
224     libavc/general/avc_unit_info.cpp \
225     libavc/general/avc_generic.cpp \
226     libavc/general/avc_subunit_info.cpp \
227     libavc/general/avc_connect.cpp \
228     libavc/general/avc_signal_format.cpp \
229     libavc/general/avc_extended_cmd_generic.cpp \
230     libavc/general/avc_extended_plug_info.cpp \
231     libavc/general/avc_plug_info.cpp \
232     libavc/general/avc_unit.cpp \
233     libavc/general/avc_subunit.cpp \
234     libavc/general/avc_plug.cpp \
235     libavc/general/avc_vendor_dependent_cmd.cpp \
236     libavc/avc_definitions.cpp \
237     libavc/ccm/avc_signal_source.cpp \
238 ' )
239
240 source = ffado_source
241 pkgdata = []
242 if env['ENABLE_BEBOB']:
243     env['ENABLE_GENERICAVC'] = True
244     libenv.MergeFlags( "-DENABLE_BEBOB" )
245     source += bebob_source
246     pkgdata += bebob_pkgdata
247 if env['ENABLE_FIREWORKS']:
248     env['ENABLE_GENERICAVC'] = True
249     libenv.MergeFlags( "-DENABLE_FIREWORKS" )
250     source += fireworks_source
251     pkgdata += fireworks_pkgdata
252 if env['ENABLE_OXFORD']:
253     env['ENABLE_GENERICAVC'] = True
254     libenv.MergeFlags( "-DENABLE_OXFORD" )
255     source += oxford_source
256     pkgdata += oxford_pkgdata
257 if env['ENABLE_MOTU']:
258     libenv.MergeFlags( "-DENABLE_MOTU" )
259     source += motu_source
260 if env['ENABLE_DICE']:
261     env['ENABLE_GENERICAVC'] = True
262     libenv.MergeFlags( "-DENABLE_DICE" )
263     source += dice_source
264 if env['ENABLE_METRIC_HALO']:
265     libenv.MergeFlags( "-DENABLE_METRIC_HALO" )
266     source += metric_halo_source
267 if env['ENABLE_RME']:
268     libenv.MergeFlags( "-DENABLE_RME" )
269     source += rme_source
270 if env['ENABLE_DIGIDESIGN']:
271     libenv.MergeFlags( "-DENABLE_DIGIDESIGN" )
272     source += digidesign_source
273 if env['ENABLE_BOUNCE']:
274     env['ENABLE_GENERICAVC'] = True
275     libenv.MergeFlags( "-DENABLE_BOUNCE" )
276     source += bounce_source
277
278 if env['ENABLE_GENERICAVC']:
279     libenv.MergeFlags( "-DENABLE_GENERICAVC" )
280     source += libavc_source
281     source += amdtp_source
282     source += genericavc_source
283     pkgdata += genericavc_pkgdata
284
285 if not env.GetOption( "clean" ):
286     libenv.MergeFlags( "-lrt -lpthread" )
287     libenv.MergeFlags( env['LIBRAW1394_FLAGS'].decode() )
288     libenv.MergeFlags( env['LIBIEC61883_FLAGS'].decode() )
289     libenv.MergeFlags( env['LIBCONFIG_FLAGS'].decode() )
290     if not env['SERIALIZE_USE_EXPAT']:
291         if 'LIBXML30_FLAGS' in env :
292             libenv.MergeFlags( env['LIBXML30_FLAGS'].decode() )
293         if not('LIBXML30_FLAGS' in env) :
294             libenv.MergeFlags( env['LIBXML26_FLAGS'].decode() )
295     else:
296         libenv.PrependUnique( LIBS=["expat"] )
297         libenv.MergeFlags( "-DSERIALIZE_USE_EXPAT" )
298     if env['REQUIRE_LIBAVC']:
299         libenv.MergeFlags( env['LIBAVC1394_FLAGS'].decode() )
300
301 libname_versioned = "libffado.so.%s" % libenv['VERSION']
302 libname_versioned_short = "libffado.so.%s" % libenv['VERSION'].split('.')[0]
303
304 libenv.MergeFlags( "-Wl,-soname=%s" % libname_versioned_short )
305 ffadolib = libenv.SharedLibrary( "ffado", source )
306
307 #libenv.Install( "$libdir", ffadolib )
308 installer = libenv.InstallAs ( "$libdir/%s" % libname_versioned , ffadolib )
309
310 # if stripping would be something for us
311 #libenv.AddPostAction(installer, [['strip', env['STRIPFLAGS'], t[0].path]])
312
313 # make the required links
314 libenv.NoCache( '$libdir/%s' % libname_versioned )
315 libenv.AddPostAction(installer, [['rm', '-f', '$libdir/libffado.so', '$libdir/%s' % libname_versioned_short],
316                                  ['cd', '$libdir',
317                                  '&&','ln', '-s', libname_versioned_short, 'libffado.so',
318                                  '&&','ln', '-s', installer[0].name, libname_versioned_short,
319                                  ]
320                                 ])
321
322 if libenv['BUILD_STATIC_LIB']:
323     ffadolib_static = libenv.StaticLibrary( "ffado", source )
324
325 #
326 # Install the pkgdata to $sharedir
327 #
328 for data in pkgdata:
329     libenv.Install( "$sharedir", data )
330
331 #
332 # For the debugging apps
333 #
334 env2 = libenv.Clone()
335 env2.PrependUnique( LIBPATH=env['build_base']+"src" )
336 env2.PrependUnique( LIBS="ffado" )
337
338 apps = { \
339     "test-debugmodule" : "debugmodule/test_debugmodule.cpp", \
340     "test-dll" : "libutil/test-dll.cpp", \
341     "test-unittests-util" : "libutil/unittests.cpp", \
342     "test-cyclecalc" : "libieee1394/test-cyclecalc.cpp", \
343 }
344
345 installapps = []
346
347 for app in apps.keys():
348     env2.Program( target=app, source = env.Split( apps[app] ) )
349     if app.find( "test" ) == -1:
350         env2.Install( "$bindir", app )
Note: See TracBrowser for help on using the browser.