#!/usr/bin/env python
import autowaf
+import Options
# Version of this package (even if built as a child)
-LIBSURFACES_VERSION = '0.0.0'
+LIBSURFACES_VERSION = '4.1.0'
# Library version (UNIX style major, minor, micro)
# major increment <=> incompatible changes
def configure(conf):
autowaf.configure(conf)
- autowaf.check_tool(conf, 'compiler_cxx')
- autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=True)
- autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=True)
- autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0', mandatory=True)
- autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML', mandatory=True)
- autowaf.check_pkg(conf, 'uuid', uselib_store='UUID', mandatory=True)
- conf.env.append_value('CXXFLAGS', '-DHAVE_WAFCONFIG_H')
- conf.write_config_header('wafconfig.h')
-
- # Boost headers
- autowaf.check_header(conf, 'boost/shared_ptr.hpp', mandatory=True)
- autowaf.check_header(conf, 'boost/weak_ptr.hpp', mandatory=True)
+ 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.env['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.env['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):
- # Library
- obj = bld.new_task_gen('cxx', 'shlib')
- obj.source = '''
- control_protocol/basic_ui.cc
- control_protocol/control_protocol.cc
- control_protocol/smpte.cc
- '''
- obj.export_incdirs = ['./control_protocol']
- obj.cxxflags = '-DPACKAGE=\\\"ardour_cp\\\"'
- obj.includes = ['.', './control_protocol']
- obj.name = 'libsurfaces'
- obj.target = 'surfaces'
- obj.uselib_local = 'libardour'
- obj.vnum = LIBSURFACES_LIB_VERSION
- obj.install_path = ''
-
+ bld.add_subdirs('control_protocol')
+ bld.add_subdirs('generic_midi')
+ 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()