root/trunk/libffado/support/dbus/SConscript

Revision 2165, 3.1 kB (checked in by jwoithe, 9 years ago)

Address ticket #355, patch by oget. Some distributions are becoming more conservative in what libraries are brought in by packages. In particular, when compiling under Fedora now, pthread is no longer automatically brought in for ffado-dbus-server, so we need to do it ourselves.

Line 
1 #!/bin/env python
2 #
3 # Copyright (C) 2007,2008,2011 Arnold Krille
4 # Copyright (C) 2007-2008 Pieter Palmers
5 #
6 # This file is part of FFADO
7 # FFADO = Free Firewire (pro-)audio drivers for linux
8 #
9 # FFADO is based upon FreeBoB.
10 #
11 # This program is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation, either version 2 of the License, or
14 # (at your option) version 3 of the License.
15 #
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 # GNU General Public License for more details.
20 #
21 # You should have received a copy of the GNU General Public License
22 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 #
24
25 import os
26
27 Import( 'env' )
28
29 env = env.Clone()
30
31 #
32 # For the debugging apps
33 #
34
35 env.AppendUnique( CPPPATH=["#/", "#/src"] )
36 env.PrependUnique( LIBPATH=[env['build_base']+"src"] )
37 env.PrependUnique( LIBS=["ffado", "pthread"] )
38
39 if not env.GetOption( "clean" ):
40     env.MergeFlags( env["DBUS1_FLAGS"] )
41     env.MergeFlags( env["DBUSC1_FLAGS"] )
42     env.MergeFlags( env['LIBRAW1394_FLAGS'] )
43     if not env['SERIALIZE_USE_EXPAT']:
44         env.MergeFlags( env['LIBXML26_FLAGS'] )
45     else:
46         env.PrependUnique( LIBS=["expat"] )
47
48 env.Xml2Cpp_Proxy('controlclient-glue.h', 'control-interface.xml')
49 env.Xml2Cpp_Adaptor('controlserver-glue.h', 'control-interface.xml')
50
51 static_env = env.Clone()
52
53 apps = {
54 }
55
56 installapps = []
57
58 apps = {
59     "ffado-dbus-server":"ffado-dbus-server.cpp controlserver.cpp",
60     "test-dbus" : "test-dbus.cpp controlclient.cpp",
61     "test-dbus-server" : "test-dbus-server.cpp controlserver.cpp",
62 }
63
64 manpages = (
65     "ffado-dbus-server.1",
66 )
67
68 installapps += [ "ffado-dbus-server" ]
69
70 for app in apps.keys():
71     env.Program( target=app, source = env.Split( apps[app] ) )
72     if app.find( "test" ) == -1:
73         env.Install( "$bindir", app )
74
75 for manpage in manpages:
76     section = manpage.split(".")[1]
77     dest = os.path.join("$mandir", "man"+section, manpage)
78     env.InstallAs(source=manpage, target=dest)
79
80 servicefile = env.ScanReplace('org.ffado.Control.service.in')
81 if env['dbus_service_dir'] and ( env.destdir or os.access( env['dbus_service_dir'], os.W_OK ) ):
82     print "Will install the service-file"
83     targetdir = env.destdir + env['dbus_service_dir']
84     env.Alias( "install", env.Install( env.destdir + env['dbus_service_dir'], servicefile ) )
85 else:
86     if not env['dbus_service_dir']:
87         print 'Can\'t install the system-wide dbus service file as the concerned variable is not defined.'
88     else:
89         if not os.access( env['dbus_service_dir'], os.W_OK ):
90             print 'Insufficient rights to install the system-wide dbus service file.'
91             print 'Please run the "scons install" command with higher authority.'
92
93 # static versions
94 if static_env['BUILD_STATIC_TOOLS']:
95     static_env.Append(LIBS=File('#/src/libffado.a'))
96     for app in apps.keys():
97         static_app = app + "-static"
98         static_env.Program( target=static_app, source = static_env.Split( apps[app] ) )
99
100 # vim: et
Note: See TracBrowser for help on using the browser.