wscript 7 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',
sletz's avatar
sletz committed
25
26
    'jack_simple_session_client' : 'simple_session_client.c',
    'jack_session_notify' : 'session_notify.c',
27
    'jack_server_control' : 'server_control.cpp',
28
29
    'jack_net_slave' : 'netslave.c',
    'jack_net_master' : 'netmaster.c',
nedko's avatar
nedko committed
30
31
32
33
34
35
36
    }

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

def configure(conf):
37
38
    e = conf.check_cc(header_name='sndfile.h', define_name="HAVE_SNDFILE")
 
sletz's avatar
sletz committed
39
40
41
42
43
    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
44
45
46
    if conf.is_defined('HAVE_SNDFILE'):
        conf.env['LIB_SNDFILE'] = ['sndfile']

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

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

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

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

sletz's avatar
sletz committed
56
57
58
    # 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
59

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

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

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

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

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

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

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

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