#! /usr/bin/env python # encoding: utf-8 from waflib import Context def configure(conf): conf.check_cfg(package='alsa', atleast_version='1.0.18', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_ALSA'] = conf.is_defined('HAVE_ALSA') conf. check_cfg(package='libfreebob', atleast_version='1.0.0', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_FREEBOB'] = conf.is_defined('HAVE_LIBFREEBOB') conf. check_cfg(package='libffado', atleast_version='1.999.17', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_FFADO'] = conf.is_defined('HAVE_LIBFFADO') conf.check_cfg(package='gtkIOStream', atleast_version='1.4.0', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_IIO'] = conf.is_defined('HAVE_GTKIOSTREAM') conf.check_cfg(package='eigen3', atleast_version='3.2.0', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_EIGEN3') conf.check_cfg(package='sox', atleast_version='14.4.1', args='--cflags --libs', mandatory=False) conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_SOX') #conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_EIGEN3') #print conf.env #conffile.write("\n".join(myconf)) #conf.define('HAVE_PPOLL', 1 ) conf.find_program("mkoctfile", var="MKOCTFILE") if conf.env.MKOCTFILE: conf.env['HAVE_OCTAVE']=1 conf.env['define_key'] += ['HAVE_OCTAVE'] conf.env['DEFINES'] += ['HAVE_OCTAVE=1'] #conf.env('Octave') conf.env['INCLUDES_OCTAVE'] = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "INCFLAGS" ], output=Context.STDOUT).replace('\n', '').replace('-I','').split() lflags = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "LFLAGS" ], output=Context.STDOUT) conf.env['LIB_OCTAVE'] = conf.cmd_and_log([conf.env.MKOCTFILE, "--print", "OCTAVE_LIBS" ], output=Context.STDOUT).replace('\n', '').replace('-l','').split() #conf.append("INCFLAGS: " + incflags) #conf.append("LFLAGS: " + lflags) #conf.append("LIBS: " + libs) print conf.env #import pdb; pdb.set_trace() def create_jack_driver_obj(bld, target, sources, uselib = None): driver = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib']) driver.env['cxxshlib_PATTERN'] = 'jack_%s.so' #driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL'] driver.defines = ['HAVE_CONFIG_H','SERVER_SIDE', 'HAVE_PPOLL', 'HAVE_TIMERFD'] driver.includes = ['.', '../linux', '../posix', '../common', '../common/jack', '../dbus', '../'] driver.target = target driver.source = sources driver.install_path = '${ADDON_DIR}/' driver.use = [] if uselib: driver.use += uselib return driver def build(bld): if bld.env['BUILD_JACKD'] == True: jackd = bld(features = ['cxx', 'cxxprogram']) jackd.includes = ['../linux', '../posix', '../common/jack', '../common', '../dbus', '../'] jackd.defines = ['HAVE_CONFIG_H','SERVER_SIDE'] jackd.source = ['../common/Jackdmp.cpp'] jackd.use = ['serverlib'] if bld.env['IS_LINUX'] and bld.env['BUILD_JACKDBUS']: jackd.source += ['../dbus/reserve.c', '../dbus/audio_reserve.c'] jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++', 'DBUS-1'] else: jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++'] jackd.target = 'jackd' create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp') alsa_driver_src = [ 'alsa/JackAlsaDriver.cpp', 'alsa/alsa_rawmidi.c', 'alsa/alsa_seqmidi.c', 'alsa/alsa_midi_jackmp.cpp', '../common/memops.c', 'alsa/generic_hw.c', 'alsa/hdsp.c', 'alsa/alsa_driver.c', 'alsa/hammerfall.c', 'alsa/ice1712.c' ] alsarawmidi_driver_src = ['alsarawmidi/JackALSARawMidiDriver.cpp', 'alsarawmidi/JackALSARawMidiInputPort.cpp', 'alsarawmidi/JackALSARawMidiOutputPort.cpp', 'alsarawmidi/JackALSARawMidiPort.cpp', 'alsarawmidi/JackALSARawMidiReceiveQueue.cpp', 'alsarawmidi/JackALSARawMidiSendQueue.cpp', 'alsarawmidi/JackALSARawMidiUtil.cpp' ] ffado_driver_src = ['firewire/JackFFADODriver.cpp', 'firewire/JackFFADOMidiInputPort.cpp', 'firewire/JackFFADOMidiOutputPort.cpp', 'firewire/JackFFADOMidiReceiveQueue.cpp', 'firewire/JackFFADOMidiSendQueue.cpp' ] iio_driver_src = ['iio/JackIIODriver.C'] if bld.env['BUILD_DRIVER_ALSA'] == True: create_jack_driver_obj(bld, 'alsa', alsa_driver_src, ["ALSA"]) create_jack_driver_obj(bld, 'alsarawmidi', alsarawmidi_driver_src, ["ALSA"]) if bld.env['BUILD_DRIVER_FREEBOB'] == True: create_jack_driver_obj(bld, 'freebob', 'freebob/JackFreebobDriver.cpp', ["LIBFREEBOB"]) if bld.env['BUILD_DRIVER_FFADO'] == True: create_jack_driver_obj(bld, 'firewire', ffado_driver_src, ["LIBFFADO"]) if bld.env['BUILD_DRIVER_IIO'] == True: create_jack_driver_obj(bld, 'iio', iio_driver_src, ["GTKIOSTREAM", "EIGEN3", "OCTAVE"]) create_jack_driver_obj(bld, 'net', '../common/JackNetDriver.cpp') create_jack_driver_obj(bld, 'loopback', '../common/JackLoopbackDriver.cpp') create_jack_driver_obj(bld, 'netone', [ '../common/JackNetOneDriver.cpp', '../common/netjack.c', '../common/netjack_packet.c' ], ["SAMPLERATE", "CELT"])