wscript 6.89 KB
Newer Older
nedko's avatar
nedko committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /usr/bin/env python
# encoding: utf-8

example_programs = {
    'jack_freewheel' : 'freewheel.c',
    'jack_connect' : 'connect.c',
    'jack_lsp' : 'lsp.c',
    'jack_metro' : 'metro.c',
    'jack_midiseq' : 'midiseq.c',
    'jack_midisine' : 'midisine.c',
    'jack_showtime' : 'showtime.c',
    'jack_simple_client' : 'simple_client.c',
    'jack_zombie' : 'zombie.c',
    'jack_load' : 'ipload.c',
    'jack_unload' : 'ipunload.c',
    'jack_showtime' : 'showtime.c',
    'jack_alias' : 'alias.c',
    'jack_bufsize' : 'bufsize.c',
sletz's avatar
sletz committed
19
20
    'jack_wait' : 'wait.c',
    'jack_samplerate' : 'samplerate.c',
nedko's avatar
nedko committed
21
22
    'jack_evmon' : 'evmon.c',
    'jack_monitor_client' : 'monitor_client.c',
23
    'jack_thru' : 'thru_client.c',
sletz's avatar
sletz committed
24
    'jack_cpu_load' : 'cpu_load.c',
25
    'jack_server_control' : 'server_control.cpp',
26
27
    'jack_net_slave' : 'netslave.c',
    'jack_net_master' : 'netmaster.c',
nedko's avatar
nedko committed
28
29
30
31
32
33
34
    }

example_libs = {
    'inprocess' : 'inprocess.c',
    }

def configure(conf):
35
36
    e = conf.check_cc(header_name='sndfile.h', define_name="HAVE_SNDFILE")
 
sletz's avatar
sletz committed
37
38
39
40
41
    conf.check_cc(header_name='samplerate.h', define_name="HAVE_SAMPLERATE")
   
    if conf.is_defined('HAVE_SAMPLERATE'):
        conf.env['LIB_SAMPLERATE'] = ['samplerate']

nedko's avatar
nedko committed
42
43
44
    if conf.is_defined('HAVE_SNDFILE'):
        conf.env['LIB_SNDFILE'] = ['sndfile']

sletz's avatar
sletz committed
45
46
    conf.check_cfg(package='celt', atleast_version='0.5.0', args='--cflags --libs')

47
    e = conf.check_cc(header_name='ncurses.h', define_name="HAVE_NCURSES")
nedko's avatar
nedko committed
48
49
50
51

    if conf.is_defined('HAVE_NCURSES'):
        conf.env['LIB_NCURSES'] = ['ncurses']

52
    e = conf.check_cc(lib='readline', define_name="HAVE_READLINE")
nedko's avatar
nedko committed
53

sletz's avatar
sletz committed
54
55
56
    # define_name="HAVE_READLINE" has no effect, LIB_READLINE is defined if readline is available
    #if conf.is_defined('HAVE_READLINE'):
    #    conf.env['LIB_READLINE'] = ['readline']
nedko's avatar
nedko committed
57

sletz's avatar
sletz committed
58
    conf.env['BUILD_EXAMPLE_CLIENT_TRANSPORT'] = bool(conf.env['LIB_READLINE']) and bool(conf.env['LIB_NCURSES'])
nedko's avatar
nedko committed
59

60
    conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.is_defined('HAVE_SNDFILE')
nedko's avatar
nedko committed
61

sletz's avatar
sletz committed
62
    conf.env['BUILD_EXAMPLE_ALSA_IO'] = conf.is_defined('HAVE_SAMPLERATE') and conf.is_defined('HAVE_ALSA')
sletz's avatar
sletz committed
63

nedko's avatar
nedko committed
64
def build(bld):
65
    if bld.env['IS_LINUX']:
66
        os_incdir = ['../linux', '../posix']
67
    if bld.env['IS_MACOSX']:
68
        os_incdir = ['../macosx', '../posix']
sletz's avatar
sletz committed
69
70
    if bld.env['IS_SUN']:
        os_incdir = ['../solaris', '../posix']
nedko's avatar
nedko committed
71
    for example_program, example_program_source in example_programs.items():
72
        prog = bld.new_task_gen('cxx', 'program')
73
        prog.features.append('cc')
74
        prog.includes = os_incdir + ['../common/jack', '../common']
nedko's avatar
nedko committed
75
        prog.source = example_program_source
76
        if bld.env['IS_MACOSX']:
77
            prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
sletz's avatar
sletz committed
78
79
            #prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
            prog.env.append_value("LINKFLAGS", "")
80
        if bld.env['IS_LINUX']:
sletz's avatar
sletz committed
81
            prog.uselib = 'RT'
sletz's avatar
sletz committed
82
83
        if bld.env['IS_SUN']:
            prog.env.append_value("LINKFLAGS", "-lm")
84
85
        if example_program == 'jack_server_control':
            prog.uselib_local = 'serverlib'
86
87
88
89
        elif example_program == 'jack_net_slave':
            prog.uselib_local = 'netlib'
	elif example_program == 'jack_net_master':
            prog.uselib_local = 'netlib'
90
        else:
91
92
            prog.uselib_local = 'clientlib' 
                     
nedko's avatar
nedko committed
93
        prog.target = example_program
94
   
sletz's avatar
sletz committed
95
    if bld.env['BUILD_EXAMPLE_CLIENT_TRANSPORT']:
96
        prog = bld.new_task_gen('cc', 'program')
97
        prog.includes = os_incdir + ['../common/jack', '../common']
nedko's avatar
nedko committed
98
        prog.source = 'transport.c'
99
        if bld.env['IS_MACOSX']:
100
            prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
sletz's avatar
sletz committed
101
102
            #prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
            prog.env.append_value("LINKFLAGS", "")
103
        if bld.env['IS_LINUX']:
sletz's avatar
sletz committed
104
            prog.uselib = 'RT READLINE NCURSES'
105
        if bld.env['IS_MACOSX']:
sletz's avatar
sletz committed
106
	    prog.uselib = 'READLINE NCURSES'
nedko's avatar
nedko committed
107
108
109
        prog.uselib_local = 'clientlib'
        prog.target = 'jack_transport'

sletz's avatar
sletz committed
110
    if bld.env['BUILD_EXAMPLE_CLIENT_REC']:
111
        prog = bld.new_task_gen('cc', 'program')
112
        prog.includes = os_incdir + ['../common/jack', '../common']
nedko's avatar
nedko committed
113
        prog.source = 'capture_client.c'
114
        if bld.env['IS_MACOSX']:
115
            prog.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
sletz's avatar
sletz committed
116
117
            #prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
            prog.env.append_value("LINKFLAGS", "")
sletz's avatar
sletz committed
118
            prog.uselib = 'SNDFILE'
119
        if bld.env['IS_LINUX']:
sletz's avatar
sletz committed
120
            prog.uselib = 'RT SNDFILE'
sletz's avatar
sletz committed
121
122
        if bld.env['IS_SUN']:
            prog.uselib = 'RT SNDFILE'
nedko's avatar
nedko committed
123
124
125
        prog.uselib_local = 'clientlib'
        prog.target = 'jack_rec'

sletz's avatar
sletz committed
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
    if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']:
        prog = bld.new_task_gen('cc', 'program')
        prog.includes = os_incdir + ['../common/jack', '../common']
        prog.source = ['netsource.c', '../common/netjack_packet.c']
        prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR")
        # Seems uneeded here...
        #if bld.env['HAVE_CELT']:
	    #if bld.env['HAVE_CELT_API_0_5']:
	    #    prog.defines = ['HAVE_CELT', 'HAVE_CELT_API_0_5']
	    #elif bld.env['HAVE_CELT_API_0_7']:
	    #    prog.defines = ['HAVE_CELT', 'HAVE_CELT_API_0_7']
        prog.uselib = 'CELT SAMPLERATE'
        prog.uselib_local = 'clientlib'
        prog.target = 'jack_netsource'

    if bld.env['IS_LINUX'] and bld.env['BUILD_EXAMPLE_ALSA_IO']:
	    prog = bld.new_task_gen('cc', 'program')
	    prog.includes = os_incdir + ['../common/jack', '../common']
	    prog.source = ['alsa_in.c', '../common/memops.c']
	    prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR")
	    prog.uselib = 'ALSA SAMPLERATE'
	    prog.uselib_local = 'clientlib'
	    prog.target = 'alsa_in'

	    prog = bld.new_task_gen('cc', 'program')
	    prog.includes = os_incdir + ['../common/jack', '../common']
	    prog.source = ['alsa_out.c', '../common/memops.c']
	    prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR")
	    prog.uselib = 'ALSA SAMPLERATE'
	    prog.uselib_local = 'clientlib'
	    prog.target = 'alsa_out'

nedko's avatar
nedko committed
158
    for example_lib, example_lib_source in example_libs.items():
159
        lib = bld.new_task_gen('cc', 'shlib')
nedko's avatar
nedko committed
160
        lib.env['shlib_PATTERN'] = '%s.so'
161
        lib.includes = os_incdir + ['../common/jack', '../common']
nedko's avatar
nedko committed
162
163
        lib.target = example_lib
        lib.source = example_lib_source
164
        if bld.env['IS_MACOSX']:
165
            lib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc")
sletz's avatar
sletz committed
166
167
            #lib.env.append_value("LINKFLAGS", "-arch i386 -arch ppc")
            lib.env.append_value("LINKFLAGS", "")
sletz's avatar
sletz committed
168
169
        if bld.env['IS_SUN']:
	        lib.env.append_value("LINKFLAGS", "-lm")
sletz's avatar
sletz committed
170
        lib.uselib_local = 'serverlib'
171
        lib.install_path = '${ADDON_DIR}/'
172

173
    bld.symlink_as('${PREFIX}/bin/jack_disconnect', 'jack_connect')
nedko's avatar
nedko committed
174

175
    bld.install_files('${PREFIX}/bin', 'jack_control', chmod=0755)