#!/usr/bin/env python from waflib.extras import autowaf as autowaf from waflib import Options # Version of this package (even if built as a child) LIBSURFACES_VERSION = '4.1.0' # Library version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes LIBSURFACES_LIB_VERSION = '4.1.0' # Variables for 'waf dist' APPNAME = 'libsurfaces' VERSION = LIBSURFACES_VERSION # Mandatory variables top = '.' out = 'build' children = [ 'control_protocol', 'frontier', 'generic_midi', 'mackie', 'osc', 'powermate', 'tranzport', 'wiimote' ] def options(opt): autowaf.set_options(opt) def sub_config_and_use(conf, name, has_objects = True): conf.recurse(name) autowaf.set_local_lib(conf, name, has_objects) def configure(conf): autowaf.set_recursive() autowaf.configure(conf) for i in children: sub_config_and_use(conf, i) autowaf.check_pkg(conf, 'libusb-1.0', uselib_store='USB', mandatory=False) if conf.is_defined('HAVE_USB'): conf.define('BUILD_TRANZPORT', 1) #conf.check_cc (lib='libusb', header_name='libusb.h', function_name='usb_interrupt_write', define_name='BUILD_TRANZPORT') conf.check_cc (header_name='linux/input.h', define_name='BUILD_POWERMATE') conf.check_cc (lib='lo', header_name='lo/lo.h', function_name='lo_server_new', define_name='BUILD_OSC') if Options.options.wiimote: conf.check_cc (header_name='cwiid.h', define_name='HAVE_CWIID_H') if not conf.is_defined('HAVE_CWIID_H'): print('WIIMOTE configured but you are missing libcwiid!') sys.exit(1) conf.check_cc (header_name='bluetooth/bluetooth.h', define_name='HAVE_BLUETOOTH_H') if not conf.is_defined('HAVE_BLUETOOTH_H'): print('WIIMOTE configured but you are missing the libbluetooth headers needed to compile wiimote support!') sys.exit(1) conf.define ('BUILD_WIIMOTE', 1) def build(bld): bld.recurse('control_protocol') bld.recurse('generic_midi') bld.recurse('mackie') if bld.env['BUILD_OSC']: bld.add_subdirs('osc') if bld.env['BUILD_POWERMATE']: bld.add_subdirs('powermate') if bld.env['BUILD_WIIMOTE']: bld.add_subdirs('wiimote') if bld.env['BUILD_TRANZPORT']: bld.add_subdirs('tranzport') def shutdown(): autowaf.shutdown()