root/trunk/libffado/src/SConscript

Revision 864, 8.2 kB (checked in by ppalmers, 13 years ago)

update license to GPLv2 or GPLv3 instead of GPLv2 or any later version. Update copyrights to reflect the new year

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 env.AppendUnique( CPPPATH=["#/", "#/src"] )
29
30 libenv = env.Copy()
31
32 ffado_source = env.Split( '\
33         devicemanager.cpp \
34         ffado.cpp \
35         ffadodevice.cpp \
36         debugmodule/debugmodule.cpp \
37         libavc/streamformat/avc_extended_stream_format.cpp \
38         libavc/musicsubunit/avc_descriptor_music.cpp \
39         libavc/musicsubunit/avc_musicsubunit.cpp \
40         libavc/audiosubunit/avc_audiosubunit.cpp \
41         libavc/audiosubunit/avc_function_block.cpp \
42         libavc/descriptors/avc_descriptor_cmd.cpp \
43         libavc/descriptors/avc_descriptor.cpp \
44         libavc/general/avc_extended_subunit_info.cpp \
45         libavc/general/avc_unit_info.cpp \
46         libavc/general/avc_generic.cpp \
47         libavc/general/avc_subunit_info.cpp \
48         libavc/general/avc_connect.cpp \
49         libavc/general/avc_signal_format.cpp \
50         libavc/general/avc_extended_cmd_generic.cpp \
51         libavc/general/avc_extended_plug_info.cpp \
52         libavc/general/avc_plug_info.cpp \
53         libavc/general/avc_unit.cpp \
54         libavc/general/avc_subunit.cpp \
55         libavc/general/avc_plug.cpp \
56         libavc/general/avc_vendor_dependent_cmd.cpp \
57         libavc/avc_definitions.cpp \
58         libavc/ccm/avc_signal_source.cpp \
59         libieee1394/ARMHandler.cpp \
60         libieee1394/configrom.cpp \
61         libieee1394/csr1212.c \
62         libieee1394/CycleTimerHelper.cpp \
63         libieee1394/ieee1394service.cpp \
64         libieee1394/IEC61883.cpp \
65         libieee1394/IsoHandler.cpp \
66         libieee1394/IsoHandlerManager.cpp \
67         libstreaming/StreamProcessorManager.cpp \
68         libstreaming/util/cip.c \
69         libstreaming/generic/StreamProcessor.cpp \
70         libstreaming/generic/Port.cpp \
71         libstreaming/generic/PortManager.cpp \
72         libutil/cmd_serialize.cpp \
73         libutil/DelayLockedLoop.cpp \
74         libutil/PacketBuffer.cpp \
75         libutil/OptionContainer.cpp \
76         libutil/PosixThread.cpp \
77         libutil/ringbuffer.c \
78         libutil/serialize.cpp \
79         libutil/StreamStatistics.cpp \
80         libutil/SystemTimeSource.cpp \
81         libutil/TimeSource.cpp \
82         libutil/TimestampedBuffer.cpp \
83         libcontrol/Element.cpp \
84         libcontrol/BasicElements.cpp \
85         libcontrol/MatrixMixer.cpp \
86 ' )
87
88 bebob_source = env.Split( '\
89         bebob/bebob_avdevice.cpp \
90         bebob/bebob_avdevice_subunit.cpp \
91         bebob/bebob_avplug.cpp \
92         bebob/bebob_dl_bcd.cpp \
93         bebob/bebob_dl_codes.cpp \
94         bebob/bebob_dl_mgr.cpp \
95         bebob/bebob_functionblock.cpp \
96         bebob/bebob_mixer.cpp \
97         bebob/focusrite/focusrite_generic.cpp \
98         bebob/focusrite/focusrite_saffire.cpp \
99         bebob/focusrite/focusrite_saffirepro.cpp \
100         bebob/focusrite/focusrite_cmd.cpp \
101         bebob/terratec/terratec_device.cpp \
102         bebob/terratec/terratec_cmd.cpp \
103         maudio/maudio_avdevice.cpp \
104 ' )
105 bebob_pkgdata = env.Split( '\
106         maudio/refdesign.xml \
107         maudio/fw410.xml \
108         maudio/fwap.xml \
109         bebob/ffado_driver_bebob.txt \
110 ' )
111
112 genericavc_source =  env.Split( '\
113         genericavc/avc_avdevice.cpp \
114         genericavc/avc_vendormodel.cpp \
115 ' )
116
117 genericavc_pkgdata = env.Split( '\
118         genericavc/ffado_driver_genericavc.txt \
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/audiofire/audiofire_device.cpp \
134 ' )
135
136 fireworks_pkgdata =  env.Split( '\
137         fireworks/ffado_driver_fireworks.txt \
138 ' )
139
140 motu_source = env.Split( '\
141         motu/motu_avdevice.cpp \
142         libstreaming/motu/MotuPort.cpp \
143         libstreaming/motu/MotuPortInfo.cpp \
144         libstreaming/motu/MotuReceiveStreamProcessor.cpp \
145         libstreaming/motu/MotuTransmitStreamProcessor.cpp \
146 ' )
147
148 dice_source = env.Split( '\
149         dice/dice_avdevice.cpp \
150 ' )
151
152 bounce_source = env.Split( '\
153         bounce/bounce_avdevice.cpp \
154         bounce/bounce_slave_avdevice.cpp \
155         libstreaming/AmdtpSlaveStreamProcessor.cpp \
156 ' )
157
158 metric_halo_source = env.Split( '\
159         metrichalo/mh_avdevice.cpp \
160 ' )
161
162 rme_source = env.Split( '\
163         rme/rme_avdevice.cpp \
164 ' )
165
166 amdtp_source = env.Split( '\
167         libstreaming/amdtp/AmdtpPort.cpp \
168         libstreaming/amdtp/AmdtpPortInfo.cpp \
169         libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp \
170         libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp \
171 ' )
172
173
174 source = ffado_source
175 pkgdata = []
176 if env['ENABLE_BEBOB']:
177         libenv.AppendUnique( CCFLAGS=["-DENABLE_BEBOB"] )
178         source += bebob_source
179         pkgdata += bebob_pkgdata
180 if env['ENABLE_FIREWORKS']:
181         libenv.AppendUnique( CCFLAGS=["-DENABLE_FIREWORKS"] )
182         source += fireworks_source
183         pkgdata += fireworks_pkgdata
184 if env['ENABLE_MOTU']:
185         libenv.AppendUnique( CCFLAGS=["-DENABLE_MOTU"] )
186         source += motu_source
187 if env['ENABLE_DICE']:
188         libenv.AppendUnique( CCFLAGS=["-DENABLE_DICE"] )
189         source += dice_source
190 if env['ENABLE_METRIC_HALO']:
191         libenv.AppendUnique( CCFLAGS=["-DENABLE_METRIC_HALO"] )
192         source += metric_halo_source
193 if env['ENABLE_RME']:
194         libenv.AppendUnique( CCFLAGS=["-DENABLE_RME"] )
195         source += rme_source
196 if env['ENABLE_BOUNCE']:
197         libenv.AppendUnique( CCFLAGS=["-DENABLE_BOUNCE"] )
198         source += bounce_source
199
200 # The list of devices needing GENERICAVC is controlled in ../SConstruct
201 if env['ENABLE_GENERICAVC']:
202         libenv.AppendUnique( CCFLAGS=["-DENABLE_GENERICAVC"] )
203         source += amdtp_source
204         source += genericavc_source
205         pkgdata += genericavc_pkgdata
206
207 if not env.GetOption( "clean" ):
208         libenv.MergeFlags( "-lrt" )
209         libenv.MergeFlags( env['LIBRAW1394_FLAGS'] )
210         libenv.MergeFlags( env['LIBAVC1394_FLAGS'] )
211         libenv.MergeFlags( env['LIBIEC61883_FLAGS'] )
212         libenv.MergeFlags( env['ALSA_FLAGS'] )
213         libenv.MergeFlags( env['LIBXML26_FLAGS'] )
214
215 #env1.AppendUnique( LINKFLAGS = env.Split("-Wl,-rpath $libdir -Wl,-soname -Wl,libffado.so.1 --version-info=1:0:0") )
216 ffadolib = libenv.SharedLibrary( "ffado", source )
217
218 if libenv['BUILD_STATIC_LIB']:
219     ffadolib_static = libenv.StaticLibrary( "ffado", source )
220
221 #
222 # All the following tries to emulate the versioning of installed libs as seen from libtool...
223 #
224 if False:
225         print "Trying to emulate libtools versioned install"
226         libenv.Alias( "install", libenv.InstallAs( os.path.join('$libdir','libffado.so.$LIBVERSION'), ffadolib ) )
227         libenv.Ignore( ffadolib, os.path.join('$libdir','libffado.so') )
228         #env.Ignore( os.path.join('$libdir','libffado.so'), ffadolib )
229         #env.Ignore( os.path.join('$libdir','libffado.so.0'), "install" )
230
231         libenv.Alias( "install", libenv.Command(
232                 target="$libdir/libffado.so",
233                 source=libenv['libdir']+"/libffado.so.$LIBVERSION",
234                 action="ln -s $SOURCE $TARGET"
235                 ) )
236         libenv.Alias( "install", libenv.Command(
237                 target="$libdir/libffado.so.%s" % str(libenv['LIBVERSION']).rsplit('.',1)[0],
238                 source=libenv['libdir']+"/libffado.so.$LIBVERSION",
239                 action="ln -s $SOURCE $TARGET"
240                 ) )
241         libenv.Alias( "install", libenv.Command(
242                 target="$libdir/libffado.so.%s" % str(libenv['LIBVERSION']).rsplit('.',2)[0],
243                 source=libenv['libdir']+"/libffado.so.$LIBVERSION",
244                 action="ln -s $SOURCE $TARGET"
245                 ) )
246 else:
247         #print "Doing simple install"
248         libenv.Install( "$libdir", ffadolib )
249
250 #
251 # Install the pkgdata to $sharedir
252 #
253 for data in pkgdata:
254         libenv.Install( "$sharedir", data )
255
256 #
257 # For the debugging apps
258 #
259 env2 = libenv.Copy()
260 env2.PrependUnique( LIBPATH=env['build_base']+"src" )
261 env2.PrependUnique( LIBS="ffado" )
262
263 apps = { \
264         "test-debugmodule" : "debugmodule/test_debugmodule.cpp", \
265         "test-dll" : "libutil/test-dll.cpp", \
266         "test-unittests-util" : "libutil/unittests.cpp", \
267         "test-cyclecalc" : "libieee1394/test-cyclecalc.cpp", \
268 }
269
270 installapps = []
271
272 for app in apps.keys():
273         env2.Program( target=app, source = env.Split( apps[app] ) )
274         if app.find( "test" ) == -1:
275                 env2.Install( "$bindir", app )
276
Note: See TracBrowser for help on using the browser.