From 723ab60b39aed9a9190e047fc5803c1f4e1adac3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 29 Sep 2011 19:17:54 +0000 Subject: Upgrade to waf 1.6.7 and autowaf r52. git-svn-id: svn://localhost/ardour2/branches/3.0@10162 d708f5d6-7413-0410-9779-e7cbd77b26cf --- autowaf.py | 480 --------------------------------- export/wscript | 11 +- gtk2_ardour/arcall | 2 +- gtk2_ardour/ardbg | 2 +- gtk2_ardour/ardev | 2 +- gtk2_ardour/ardev_common.sh.in | 4 +- gtk2_ardour/arldd | 2 +- gtk2_ardour/arval | 2 +- gtk2_ardour/wscript | 106 ++++---- libs/appleutility/wscript | 9 +- libs/ardour/wscript | 39 ++- libs/audiographer/autowaf.py | 439 ------------------------------ libs/audiographer/wscript | 22 +- libs/clearlooks-newer/wscript | 12 +- libs/evoral/wscript | 36 +-- libs/gnomecanvas/wscript | 12 +- libs/gtkmm2ext/wscript | 19 +- libs/midi++2/wscript | 18 +- libs/panners/1in2out/wscript | 14 +- libs/panners/2in2out/wscript | 14 +- libs/panners/vbap/wscript | 14 +- libs/panners/wscript | 8 +- libs/pbd/wscript | 26 +- libs/qm-dsp/wscript | 12 +- libs/rubberband/wscript | 16 +- libs/surfaces/control_protocol/wscript | 14 +- libs/surfaces/frontier/wscript | 14 +- libs/surfaces/generic_midi/wscript | 14 +- libs/surfaces/mackie/wscript | 14 +- libs/surfaces/osc/wscript | 14 +- libs/surfaces/powermate/wscript | 14 +- libs/surfaces/tranzport/wscript | 14 +- libs/surfaces/wiimote/wscript | 14 +- libs/surfaces/wscript | 14 +- libs/taglib/wscript | 48 ++-- libs/timecode/wscript | 12 +- libs/vamp-plugins/wscript | 16 +- libs/vamp-sdk/wscript | 16 +- templates/wscript | 16 +- tools/sanity_check/wscript | 10 +- waf | Bin 92583 -> 91073 bytes wscript | 95 ++++--- 42 files changed, 374 insertions(+), 1286 deletions(-) delete mode 100644 autowaf.py delete mode 100644 libs/audiographer/autowaf.py diff --git a/autowaf.py b/autowaf.py deleted file mode 100644 index c9ac680c7b..0000000000 --- a/autowaf.py +++ /dev/null @@ -1,480 +0,0 @@ -#!/usr/bin/env python -# Waf utilities for easily building standard unixey packages/libraries -# Licensed under the GNU GPL v2 or later, see COPYING file for details. -# Copyright (C) 2008 David Robillard -# Copyright (C) 2008 Nedko Arnaudov - -import Configure -import Options -import Utils -import misc -import os -import subprocess -import sys -import glob - -from TaskGen import feature, before, after - -global g_is_child -g_is_child = False - -# Only run autowaf hooks once (even if sub projects call several times) -global g_step -g_step = 0 - -# Compute dependencies globally -#import preproc -#preproc.go_absolute = True - -@feature('cc', 'cxx') -@after('apply_lib_vars') -@before('apply_obj_vars_cc', 'apply_obj_vars_cxx') -def include_config_h(self): - self.env.append_value('INC_PATHS', self.bld.srcnode) - -def set_options(opt): - "Add standard autowaf options if they havn't been added yet" - global g_step - if g_step > 0: - return - opt.tool_options('compiler_cc') - opt.tool_options('compiler_cxx') - opt.add_option('--debug', action='store_true', default=True, dest='debug', - help="Build debuggable binaries [Default: True]") - opt.add_option('--optimize', action='store_false', default=True, dest='debug', - help="Build optimized binaries [Default: False]") - opt.add_option('--strict', action='store_true', default=False, dest='strict', - help="Use strict compiler flags and show all warnings [Default: False]") - opt.add_option('--docs', action='store_true', default=False, dest='docs', - help="Build documentation - requires doxygen [Default: False]") - opt.add_option('--bundle', action='store_true', default=False, - help="Build a self-contained bundle [Default: False]") - opt.add_option('--bindir', type='string', - help="Executable programs [Default: PREFIX/bin]") - opt.add_option('--libdir', type='string', - help="Libraries [Default: PREFIX/lib]") - opt.add_option('--includedir', type='string', - help="Header files [Default: PREFIX/include]") - opt.add_option('--datadir', type='string', - help="Shared data [Default: PREFIX/share]") - opt.add_option('--configdir', type='string', - help="Configuration data [Default: PREFIX/etc]") - opt.add_option('--mandir', type='string', - help="Manual pages [Default: DATADIR/man]") - opt.add_option('--htmldir', type='string', - help="HTML documentation [Default: DATADIR/doc/PACKAGE]") - opt.add_option('--lv2-user', action='store_true', default=False, dest='lv2_user', - help="Install LV2 bundles to user-local location [Default: False]") - if sys.platform == "darwin": - opt.add_option('--lv2dir', type='string', - help="LV2 bundles [Default: /Library/Audio/Plug-Ins/LV2]") - else: - opt.add_option('--lv2dir', type='string', - help="LV2 bundles [Default: LIBDIR/lv2]") - g_step = 1 - -def check_header(conf, name, define='', mandatory=False): - "Check for a header iff it hasn't been checked for yet" - if type(conf.env['AUTOWAF_HEADERS']) != dict: - conf.env['AUTOWAF_HEADERS'] = {} - - checked = conf.env['AUTOWAF_HEADERS'] - if not name in checked: - checked[name] = True - includes = '' # search default system include paths - if sys.platform == "darwin": - includes = '/opt/local/include' - if define != '': - conf.check(header_name=name, includes=includes, define_name=define, mandatory=mandatory) - else: - conf.check(header_name=name, includes=includes, mandatory=mandatory) - -def nameify(name): - return name.replace('/', '_').replace('++', 'PP').replace('-', '_').replace('.', '_') - -def check_pkg(conf, name, **args): - if not 'mandatory' in args: - args['mandatory'] = True - "Check for a package iff it hasn't been checked for yet" - var_name = 'HAVE_' + nameify(args['uselib_store']) - check = not var_name in conf.env - if not check and 'atleast_version' in args: - # Re-check if version is newer than previous check - checked_version = conf.env['VERSION_' + name] - if checked_version and checked_version < args['atleast_version']: - check = True; - if check: - conf.check_cfg(package=name, args="--cflags --libs", **args) - found = bool(conf.env[var_name]) - if found: - conf.define(var_name, int(found)) - if 'atleast_version' in args: - conf.env['VERSION_' + name] = args['atleast_version'] - else: - conf.undefine(var_name) - if args['mandatory'] == True: - conf.fatal("Required package " + name + " not found") - -def configure(conf): - global g_step - if g_step > 1: - return - def append_cxx_flags(vals): - conf.env.append_value('CCFLAGS', vals.split()) - conf.env.append_value('CXXFLAGS', vals.split()) - display_header('Global Configuration') - conf.check_tool('misc') - conf.check_tool('compiler_cc') - conf.check_tool('compiler_cxx') - conf.env['DOCS'] = Options.options.docs - conf.env['DEBUG'] = Options.options.debug - conf.env['STRICT'] = Options.options.strict - conf.env['PREFIX'] = os.path.abspath(os.path.expanduser(os.path.normpath(conf.env['PREFIX']))) - if Options.options.bundle: - conf.env['BUNDLE'] = True - conf.define('BUNDLE', 1) - conf.env['BINDIR'] = conf.env['PREFIX'] - conf.env['INCLUDEDIR'] = os.path.join(conf.env['PREFIX'], 'Headers') - conf.env['LIBDIR'] = os.path.join(conf.env['PREFIX'], 'Libraries') - conf.env['DATADIR'] = os.path.join(conf.env['PREFIX'], 'Resources') - conf.env['HTMLDIR'] = os.path.join(conf.env['PREFIX'], 'Resources/Documentation') - conf.env['MANDIR'] = os.path.join(conf.env['PREFIX'], 'Resources/Man') - conf.env['LV2DIR'] = os.path.join(conf.env['PREFIX'], 'PlugIns') - else: - conf.env['BUNDLE'] = False - if Options.options.bindir: - conf.env['BINDIR'] = Options.options.bindir - else: - conf.env['BINDIR'] = os.path.join(conf.env['PREFIX'], 'bin') - if Options.options.includedir: - conf.env['INCLUDEDIR'] = Options.options.includedir - else: - conf.env['INCLUDEDIR'] = os.path.join(conf.env['PREFIX'], 'include') - if Options.options.libdir: - conf.env['LIBDIR'] = Options.options.libdir - else: - conf.env['LIBDIR'] = os.path.join(conf.env['PREFIX'], 'lib') - if Options.options.datadir: - conf.env['DATADIR'] = Options.options.datadir - else: - conf.env['DATADIR'] = os.path.join(conf.env['PREFIX'], 'share') - if Options.options.configdir: - conf.env['CONFIGDIR'] = Options.options.configdir - else: - conf.env['CONFIGDIR'] = os.path.join(conf.env['PREFIX'], 'etc') - if Options.options.htmldir: - conf.env['HTMLDIR'] = Options.options.htmldir - else: - conf.env['HTMLDIR'] = os.path.join(conf.env['DATADIR'], 'doc', Utils.g_module.APPNAME) - if Options.options.mandir: - conf.env['MANDIR'] = Options.options.mandir - else: - conf.env['MANDIR'] = os.path.join(conf.env['DATADIR'], 'man') - if Options.options.lv2dir: - conf.env['LV2DIR'] = Options.options.lv2dir - else: - if Options.options.lv2_user: - if sys.platform == "darwin": - conf.env['LV2DIR'] = os.path.join(os.getenv('HOME'), 'Library/Audio/Plug-Ins/LV2') - else: - conf.env['LV2DIR'] = os.path.join(os.getenv('HOME'), '.lv2') - else: - if sys.platform == "darwin": - conf.env['LV2DIR'] = '/Library/Audio/Plug-Ins/LV2' - else: - conf.env['LV2DIR'] = os.path.join(conf.env['LIBDIR'], 'lv2') - - conf.env['BINDIRNAME'] = os.path.basename(conf.env['BINDIR']) - conf.env['LIBDIRNAME'] = os.path.basename(conf.env['LIBDIR']) - conf.env['DATADIRNAME'] = os.path.basename(conf.env['DATADIR']) - conf.env['CONFIGDIRNAME'] = os.path.basename(conf.env['CONFIGDIR']) - conf.env['LV2DIRNAME'] = os.path.basename(conf.env['LV2DIR']) - - if Options.options.docs: - doxygen = conf.find_program('doxygen') - if not doxygen: - conf.fatal("Doxygen is required to build documentation, configure without --docs") - - dot = conf.find_program('dot') - if not dot: - conf.fatal("Graphviz (dot) is required to build documentation, configure without --docs") - - if Options.options.debug: - conf.env['CCFLAGS'] = [ '-O0', '-g' ] - conf.env['CXXFLAGS'] = [ '-O0', '-g' ] - else: - append_cxx_flags('-DNDEBUG') - - if Options.options.strict: - conf.env.append_value('CCFLAGS', [ '-std=c99', '-pedantic' ]) - conf.env.append_value('CXXFLAGS', [ '-ansi', '-Woverloaded-virtual', '-Wnon-virtual-dtor']) - append_cxx_flags('-Wall -Wextra -Wno-unused-parameter') - - append_cxx_flags('-fPIC -DPIC -fshow-column') - - display_msg(conf, "Install prefix", conf.env['PREFIX']) - display_msg(conf, "Debuggable build", str(conf.env['DEBUG'])) - display_msg(conf, "Strict compiler flags", str(conf.env['STRICT'])) - display_msg(conf, "Build documentation", str(conf.env['DOCS'])) - print() - - g_step = 2 - -def set_local_lib(conf, name, has_objects): - conf.define('HAVE_' + nameify(name.upper()), 1) - if has_objects: - if type(conf.env['AUTOWAF_LOCAL_LIBS']) != dict: - conf.env['AUTOWAF_LOCAL_LIBS'] = {} - conf.env['AUTOWAF_LOCAL_LIBS'][name.lower()] = True - else: - if type(conf.env['AUTOWAF_LOCAL_HEADERS']) != dict: - conf.env['AUTOWAF_LOCAL_HEADERS'] = {} - conf.env['AUTOWAF_LOCAL_HEADERS'][name.lower()] = True - -def use_lib(bld, obj, libs): - abssrcdir = os.path.abspath('.') - libs_list = libs.split() - for l in libs_list: - in_headers = l.lower() in bld.env['AUTOWAF_LOCAL_HEADERS'] - in_libs = l.lower() in bld.env['AUTOWAF_LOCAL_LIBS'] - if in_libs: - if hasattr(obj, 'uselib_local'): - obj.uselib_local += ' lib' + l.lower() + ' ' - else: - obj.uselib_local = 'lib' + l.lower() + ' ' - - if in_headers or in_libs: - inc_flag = '-iquote ' + os.path.join(abssrcdir, l.lower()) - for f in ['CCFLAGS', 'CXXFLAGS']: - if not inc_flag in bld.env[f]: - bld.env.append_value(f, inc_flag) - else: - if hasattr(obj, 'uselib'): - obj.uselib += ' ' + l - else: - obj.uselib = l - - -def display_header(title): - Utils.pprint('BOLD', title) - -def display_msg(conf, msg, status = None, color = None): - color = 'CYAN' - if type(status) == bool and status or status == "True": - color = 'GREEN' - elif type(status) == bool and not status or status == "False": - color = 'YELLOW' - Utils.pprint('BOLD', "%s :" % msg.ljust(conf.line_just), sep='') - Utils.pprint(color, status) - -def link_flags(env, lib): - return ' '.join(map(lambda x: env['LIB_ST'] % x, env['LIB_' + lib])) - -def compile_flags(env, lib): - return ' '.join(map(lambda x: env['CPPPATH_ST'] % x, env['CPPPATH_' + lib])) - -def set_recursive(): - global g_is_child - g_is_child = True - -def is_child(): - global g_is_child - return g_is_child - -# Pkg-config file -def build_pc(bld, name, version, libs): - '''Build a pkg-config file for a library. - name -- uppercase variable name (e.g. 'SOMENAME') - version -- version string (e.g. '1.2.3') - libs -- string/list of dependencies (e.g. 'LIBFOO GLIB') - ''' - - obj = bld.new_task_gen('subst') - obj.source = name.lower() + '.pc.in' - obj.target = name.lower() + '.pc' - obj.install_path = '${PREFIX}/${LIBDIRNAME}/pkgconfig' - pkg_prefix = bld.env['PREFIX'] - if pkg_prefix[-1] == '/': - pkg_prefix = pkg_prefix[:-1] - obj.dict = { - 'prefix' : pkg_prefix, - 'exec_prefix' : '${prefix}', - 'libdir' : '${prefix}/' + bld.env['LIBDIRNAME'], - 'includedir' : '${prefix}/include', - name + '_VERSION' : version, - } - if type(libs) != list: - libs = libs.split() - for i in libs: - obj.dict[i + '_LIBS'] = link_flags(bld.env, i) - obj.dict[i + '_CFLAGS'] = compile_flags(bld.env, i) - -# Doxygen API documentation -def build_dox(bld, name, version, srcdir, blddir): - if not bld.env['DOCS']: - return - obj = bld.new_task_gen('subst') - obj.source = 'doc/reference.doxygen.in' - obj.target = 'doc/reference.doxygen' - if is_child(): - src_dir = os.path.join(srcdir, name.lower()) - doc_dir = os.path.join(blddir, 'default', name.lower(), 'doc') - else: - src_dir = srcdir - doc_dir = os.path.join(blddir, 'default', 'doc') - obj.dict = { - name + '_VERSION' : version, - name + '_SRCDIR' : os.path.abspath(src_dir), - name + '_DOC_DIR' : os.path.abspath(doc_dir) - } - obj.install_path = '' - out1 = bld.new_task_gen('command-output') - out1.dependencies = [obj] - out1.stdout = '/doc/doxygen.out' - out1.stdin = '/doc/reference.doxygen' # whatever.. - out1.command = 'doxygen' - out1.argv = [os.path.abspath(doc_dir) + '/reference.doxygen'] - out1.command_is_external = True - -# Version code file generation -def build_version_files(header_path, source_path, domain, major, minor, micro): - header_path = os.path.abspath(header_path) - source_path = os.path.abspath(source_path) - text = "int " + domain + "_major_version = " + str(major) + ";\n" - text += "int " + domain + "_minor_version = " + str(minor) + ";\n" - text += "int " + domain + "_micro_version = " + str(micro) + ";\n" - try: - o = open(source_path, 'w') - o.write(text) - o.close() - except IOError: - print("Could not open %s for writing\n", source_path) - sys.exit(-1) - - text = "#ifndef __" + domain + "_version_h__\n" - text += "#define __" + domain + "_version_h__\n" - text += "extern const char* " + domain + "_revision;\n" - text += "extern int " + domain + "_major_version;\n" - text += "extern int " + domain + "_minor_version;\n" - text += "extern int " + domain + "_micro_version;\n" - text += "#endif /* __" + domain + "_version_h__ */\n" - try: - o = open(header_path, 'w') - o.write(text) - o.close() - except IOError: - print("Could not open %s for writing\n", header_path) - sys.exit(-1) - - return None - -def run_tests(ctx, appname, tests): - orig_dir = os.path.abspath(os.curdir) - failures = 0 - base = '..' - - top_level = os.path.abspath(ctx.curdir) != os.path.abspath(os.curdir) - if top_level: - os.chdir('./build/default/' + appname) - base = '../..' - else: - os.chdir('./build/default') - - lcov = True - lcov_log = open('lcov.log', 'w') - try: - # Clear coverage data - subprocess.call('lcov -d ./src -z'.split(), - stdout=lcov_log, stderr=lcov_log) - except: - lcov = False - print("Failed to run lcov, no coverage report will be generated") - - - # Run all tests - for i in tests: - print() - Utils.pprint('BOLD', 'Running %s test %s' % (appname, i)) - if subprocess.call(i) == 0: - Utils.pprint('GREEN', 'Passed %s %s' % (appname, i)) - else: - failures += 1 - Utils.pprint('RED', 'Failed %s %s' % (appname, i)) - - if lcov: - # Generate coverage data - coverage_lcov = open('coverage.lcov', 'w') - subprocess.call(('lcov -c -d ./src -d ./test -b ' + base).split(), - stdout=coverage_lcov, stderr=lcov_log) - coverage_lcov.close() - - # Strip out unwanted stuff - coverage_stripped_lcov = open('coverage-stripped.lcov', 'w') - subprocess.call('lcov --remove coverage.lcov *boost* c++*'.split(), - stdout=coverage_stripped_lcov, stderr=lcov_log) - coverage_stripped_lcov.close() - - # Generate HTML coverage output - if not os.path.isdir('./coverage'): - os.makedirs('./coverage') - subprocess.call('genhtml -o coverage coverage-stripped.lcov'.split(), - stdout=lcov_log, stderr=lcov_log) - - lcov_log.close() - - print() - Utils.pprint('BOLD', 'Summary:', sep=''), - if failures == 0: - Utils.pprint('GREEN', 'All ' + appname + ' tests passed') - else: - Utils.pprint('RED', str(failures) + ' ' + appname + ' test(s) failed') - - Utils.pprint('BOLD', 'Coverage:', sep='') - print(os.path.abspath('coverage/index.html')) - - os.chdir(orig_dir) - -def shutdown(): - # This isn't really correct (for packaging), but people asking is annoying - if Options.commands['install']: - try: os.popen("/sbin/ldconfig") - except: pass - -def build_i18n(bld,srcdir,dir,name,sources): - pwd = os.getcwd() - os.chdir(os.path.join (srcdir, dir)) - - pot_file = '%s.pot' % name - - args = [ 'xgettext', - '--keyword=_', - '--keyword=N_', - '--from-code=UTF-8', - '-o', pot_file, - '--copyright-holder="Paul Davis"' ] - args += sources - print 'Updating ', pot_file - os.spawnvp (os.P_WAIT, 'xgettext', args) - - po_files = glob.glob ('po/*.po') - languages = [ po.replace ('.po', '') for po in po_files ] - - for po_file in po_files: - args = [ 'msgmerge', - '--update', - po_file, - pot_file ] - print 'Updating ', po_file - os.spawnvp (os.P_WAIT, 'msgmerge', args) - - for po_file in po_files: - mo_file = po_file.replace ('.po', '.mo') - args = [ 'msgfmt', - '-c', - '-f', - '-o', - mo_file, - po_file ] - print 'Generating ', po_file - os.spawnvp (os.P_WAIT, 'msgfmt', args) - os.chdir (pwd) diff --git a/export/wscript b/export/wscript index 2ab87c4cd9..2dce68a01b 100644 --- a/export/wscript +++ b/export/wscript @@ -1,19 +1,18 @@ #!/usr/bin/python import os -import glob -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' def configure(conf): pass def build(bld): - presets = glob.glob (os.path.join(bld.get_curdir(), '*.preset')) - formats = glob.glob (os.path.join(bld.get_curdir(), '*.format')) + presets = bld.path.ant_glob ('*.preset') + formats = bld.path.ant_glob ('*.format') bld.install_files (os.path.join(bld.env['DATADIR'], 'ardour3', 'export'), presets + formats) -def set_options(opt): +def options(opt): pass diff --git a/gtk2_ardour/arcall b/gtk2_ardour/arcall index 6e5d31784b..703bc741fd 100755 --- a/gtk2_ardour/arcall +++ b/gtk2_ardour/arcall @@ -1,5 +1,5 @@ #!/bin/sh -. `dirname "$0"`/../build/default/gtk2_ardour/ardev_common_waf.sh +. `dirname "$0"`/../build/gtk2_ardour/ardev_common_waf.sh LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export ARDOUR_RUNNING_UNDER_VALGRIND=TRUE exec valgrind --error-limit=no --num-callers=50 --tool=callgrind $TOP/$EXECUTABLE --novst "$@" diff --git a/gtk2_ardour/ardbg b/gtk2_ardour/ardbg index 5e19b2bde8..f0c092cab2 100755 --- a/gtk2_ardour/ardbg +++ b/gtk2_ardour/ardbg @@ -1,5 +1,5 @@ #!/bin/sh -. `dirname "$0"`/../build/default/gtk2_ardour/ardev_common_waf.sh +. `dirname "$0"`/../build/gtk2_ardour/ardev_common_waf.sh LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export ARDOUR_INSIDE_GDB=1 exec gdb --args $TOP/$EXECUTABLE $@ diff --git a/gtk2_ardour/ardev b/gtk2_ardour/ardev index 8f0af37d15..aee9a48102 100755 --- a/gtk2_ardour/ardev +++ b/gtk2_ardour/ardev @@ -1,4 +1,4 @@ #!/bin/sh -. `dirname "$0"`/../build/default/gtk2_ardour/ardev_common_waf.sh +. `dirname "$0"`/../build/gtk2_ardour/ardev_common_waf.sh LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH exec $TOP/$EXECUTABLE "$@" diff --git a/gtk2_ardour/ardev_common.sh.in b/gtk2_ardour/ardev_common.sh.in index 0931bef583..dc5926aae9 100644 --- a/gtk2_ardour/ardev_common.sh.in +++ b/gtk2_ardour/ardev_common.sh.in @@ -4,10 +4,10 @@ TOP=`dirname "$0"`/.. libs=$TOP/@LIBS@ -export ARDOUR_PATH=$TOP/gtk2_ardour/icons:$TOP/gtk2_ardour/pixmaps:$TOP/build/default/gtk2_ardour:$TOP/gtk2_ardour:. +export ARDOUR_PATH=$TOP/gtk2_ardour/icons:$TOP/gtk2_ardour/pixmaps:$TOP/build/gtk2_ardour:$TOP/gtk2_ardour:. export ARDOUR_SURFACES_PATH=$libs/surfaces/osc:$libs/surfaces/generic_midi:$libs/surfaces/tranzport:$libs/surfaces/powermate:$libs/surfaces/mackie export ARDOUR_PANNER_PATH=$libs/panners/2in2out:$libs/panners/1in2out:$libs/panners/vbap -export ARDOUR_DATA_PATH=$TOP/gtk2_ardour:build/default/gtk2_ardour:. +export ARDOUR_DATA_PATH=$TOP/gtk2_ardour:build/gtk2_ardour:. if test -d $HOME/gtk/inst ; then export GTK_PATH=~/.ardour3:$libs/clearlooks-newer diff --git a/gtk2_ardour/arldd b/gtk2_ardour/arldd index 3d0457d266..43899e9ab6 100755 --- a/gtk2_ardour/arldd +++ b/gtk2_ardour/arldd @@ -1,4 +1,4 @@ #!/bin/sh -. `dirname "$0"`/../build/default/gtk2_ardour/ardev_common_waf.sh +. `dirname "$0"`/../build/gtk2_ardour/ardev_common_waf.sh LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH exec ldd $TOP/$EXECUTABLE diff --git a/gtk2_ardour/arval b/gtk2_ardour/arval index cdd709dbb5..e563d7800c 100755 --- a/gtk2_ardour/arval +++ b/gtk2_ardour/arval @@ -1,5 +1,5 @@ #!/bin/sh -. `dirname "$0"`/../build/default/gtk2_ardour/ardev_common_waf.sh +. `dirname "$0"`/../build/gtk2_ardour/ardev_common_waf.sh LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export ARDOUR_RUNNING_UNDER_VALGRIND=TRUE exec valgrind --error-limit=no --num-callers=50 --tool=memcheck $TOP/$EXECUTABLE --novst "$@" diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 8f1468c600..12af400800 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf +import waflib.Logs as Logs, waflib.Utils as Utils import os -import glob import Options import sys import TaskGen @@ -18,8 +18,8 @@ APPNAME = 'gtk2_ardour' VERSION = GTK2_ARDOUR_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'gtk2_ardour/' @@ -233,10 +233,11 @@ gtk2_ardour_sources = [ 'window_proxy.cc' ] -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): + conf.load('misc') autowaf.build_version_files( path_prefix + 'version.h', path_prefix + 'version.cc', @@ -261,13 +262,11 @@ def configure(conf): uselib_store='GNOMECANVASMM', atleast_version='2.16') autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2') - conf.check_tool('misc') # subst tool - - conf.write_config_header('gtk2ardour-config.h') + conf.write_config_header('gtk2ardour-config.h', remove=False) # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') # Add a waf `feature' to allow compilation of things using winegcc from TaskGen import feature @@ -305,12 +304,13 @@ def _doPyp(infileName): outStr += _doPyp(incName) else: outStr += line + # done return outStr def include_processor(task): - infileName = task.inputs[0].srcpath(task.env) - outfileName = task.outputs[0].bldpath(task.env) + infileName = task.inputs[0].srcpath() + outfileName = os.path.join(out, task.outputs[0].bldpath()) fdOut = file (outfileName, "w") fdOut.write (_doPyp(infileName)) fdOut.close () @@ -338,9 +338,9 @@ def build(bld): # GTK front-end; if we're using VST we build this as a shared library, # otherwise it's a normal executabale if bld.env['VST_SUPPORT']: - obj = bld.new_task_gen(features = 'cxx cc cshlib') + obj = bld(features = 'cxx c cxxshlib') else: - obj = bld.new_task_gen(features = 'cxx cc cprogram') + obj = bld(features = 'cxx c cxxprogram') obj.includes = ['.'] obj.source = gtk2_ardour_sources @@ -355,15 +355,15 @@ def build(bld): obj.uselib = 'UUID FLAC GLIBMM GTHREAD GTK OGG ALSA CURL DL' obj.uselib += ' GTKMM GNOMECANVASMM ' obj.uselib += ' AUDIOUNITS OSX GTKOSX ' - obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp + obj.use = '''libpbd libmidipp libtaglib libardour libardour_cp libgtkmm2ext libtaglib libgnomecanvas-2''' if sys.platform == 'darwin': - obj.uselib_local + ' libappleutility' + obj.use += ' libappleutility' obj.defines = [ 'PACKAGE="gtk2_ardour"', 'VERSIONSTRING="' + bld.env['VERSION'] + '"', 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', - 'CONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"', + 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', 'MODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"', 'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"', @@ -397,12 +397,12 @@ def build(bld): if bld.env['COREAUDIO']: TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc'] obj.source += [ 'cocoacarbon.mm', 'au_pluginui.mm' ] - obj.uselib_local += ' libappleutility ' + obj.use += ' libappleutility ' if bld.env['VST_SUPPORT']: # If we require VST support we build a stub main() and the FST library # here using winegcc, and link it to the GTK front-end library - obj = bld.new_task_gen (features = 'cxx cc cprogram wine') + obj = bld(features = 'cxx c cxxprogram wine') obj.source = ''' ../libs/fst/fst.c ../libs/fst/fstinfofile.c @@ -415,7 +415,7 @@ def build(bld): obj.linkflags += ['-mwindows', '-Wl,--export-dynamic', '-lpthread'] obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX'] obj.uselib = 'ALSA' - obj.uselib_local = ['libpbd','libmidipp','libtaglib','libardour', + obj.use = ['libpbd','libmidipp','libtaglib','libardour', 'libardour_cp','libgtkmm2ext','libtaglib', 'gtk2_ardour'] @@ -423,24 +423,30 @@ def build(bld): wrapper_subst_dict = { 'INSTALL_PREFIX' : bld.env['PREFIX'], - 'LIBDIR' : os.path.normpath(bld.env['LIBDIRNAME']), - 'LIBS' : 'build/default/libs', + 'LIBDIR' : os.path.normpath(bld.env['LIBDIR']), + 'LIBS' : 'build/libs', 'VERSION' : '3.0', - 'EXECUTABLE' : 'build/default/gtk2_ardour/ardour-3.0' + 'EXECUTABLE' : 'build/gtk2_ardour/ardour-3.0' } - obj = bld.new_task_gen('subst') + def set_subst_dict(obj, dict): + for i in dict: + setattr(obj, i, dict[i]) + + obj = bld(features = 'subst', rule= 'chmod 0755 ${TGT}') obj.source = 'ardev_common.sh.in' obj.target = 'ardev_common_waf.sh' - obj.chmod = 0755 + obj.chmod = Utils.O755 obj.dict = wrapper_subst_dict + set_subst_dict(obj, wrapper_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = 'ardour.sh.in' obj.target = 'ardour3' - obj.chmod = 0755 + obj.chmod = Utils.O755 obj.dict = wrapper_subst_dict obj.install_path = bld.env['BINDIR'] + set_subst_dict(obj, wrapper_subst_dict) # Font configuration @@ -507,49 +513,47 @@ def build(bld): 'gtk2_ardour/ardour3_ui_light.rc.in', 'ARDOUR_LIGHT') light_rc_subst_dict['COLPREFIX'] = 'ARDOUR_LIGHT' - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_ui_dark.rc.in' ] obj.target = 'ardour3_ui_dark.rc.pre' - obj.dict = dark_rc_subst_dict obj.install_path = None + set_subst_dict(obj, dark_rc_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_ui_light.rc.in' ] obj.target = 'ardour3_ui_light.rc.pre' - obj.dict = light_rc_subst_dict obj.install_path = None + set_subst_dict(obj, light_rc_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_styles.rc.in' ] obj.target = 'ardour3_dark_styles.rc' - obj.dict = dark_rc_subst_dict obj.install_path = None + set_subst_dict(obj, dark_rc_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_styles.rc.in' ] obj.target = 'ardour3_light_styles.rc' - obj.dict = light_rc_subst_dict obj.install_path = None + set_subst_dict(obj, light_rc_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_fonts.rc.in' ] obj.target = 'ardour3_dark_fonts.rc' - obj.dict = dark_rc_subst_dict obj.install_path = None + set_subst_dict(obj, dark_rc_subst_dict) - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = [ 'ardour3_fonts.rc.in' ] obj.target = 'ardour3_light_fonts.rc' - obj.dict = light_rc_subst_dict obj.install_path = None + set_subst_dict(obj, light_rc_subst_dict) - obj = bld.new_task_gen('copy') + obj = bld(rule = 'cp ${SRC} ${TGT}') obj.source = [ 'ardour3_widget_list.rc' ] obj.target = 'ardour3_widgets.rc' obj.install_path = None - bld.use_the_magic() - bld ( rule = include_processor, source = 'ardour3_ui_dark.rc.pre', @@ -568,14 +572,14 @@ def build(bld): menus_argv = [ '-E', '-P', '-DGTKOSX' ] else: menus_argv = [ '-E', '-P' ] - obj = bld.new_task_gen('command-output') + obj = bld(features = 'command-output') obj.command = 'cpp' obj.command_is_external = True obj.no_inputs = True obj.argv = menus_argv obj.stdin = 'ardour.menus.in' obj.stdout = 'ardour.menus' - bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), + bld.install_files(os.path.join(bld.env['SYSCONFDIR'], 'ardour3'), 'ardour.menus') # Keybindings @@ -584,15 +588,15 @@ def build(bld): # 'SAE-us-nokeypad', 'ergonomic-us' for b in [ 'mnemonic-us' ] : - obj = bld.new_task_gen ( + obj = bld( target = b + '.bindings', source = b + '.bindings.in', rule = '../tools/fmt-bindings --winkey="%s" --accelmap <${SRC} >${TGT}' % bld.env['WINDOWS_KEY'] ) - obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') + obj.install_path = os.path.join(bld.env['SYSCONFDIR'], 'ardour3') # not modified at present - bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), + bld.install_files(os.path.join(bld.env['SYSCONFDIR'], 'ardour3'), 'step_editing.bindings') # Icons/Images @@ -601,16 +605,16 @@ def build(bld): bld.install_files('${DATADIR}/ardour3', 'splash.png') # Default UI configuration - bld.install_files('${CONFIGDIR}/ardour3', 'ardour3_ui_default.conf') + bld.install_files('${SYSCONFDIR}/ardour3', 'ardour3_ui_default.conf') # Generic widget style mappings - bld.install_files('${CONFIGDIR}/ardour3', 'ardour3_widgets.rc') + bld.install_files('${SYSCONFDIR}/ardour3', 'ardour3_widgets.rc') # Default export stuff - bld.install_files('${CONFIGDIR}/ardour3/export', 'export/*.format') + bld.install_files('${SYSCONFDIR}/ardour3/export', 'export/*.format') # i18n if bld.env['ENABLE_NLS']: - mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) + mo_files = bld.path.ant_glob ('po/*.mo') for mo in mo_files: lang = os.path.basename (mo).replace ('.mo', '') bld.install_as (os.path.join(bld.env['PREFIX'], 'share', 'locale', diff --git a/libs/appleutility/wscript b/libs/appleutility/wscript index 50e7e0200f..e9968f80e8 100644 --- a/libs/appleutility/wscript +++ b/libs/appleutility/wscript @@ -1,4 +1,5 @@ -import autowaf +#!/usr/bin/env python +from waflib.extras import autowaf as autowaf import os libappleutility_sources = [ @@ -20,17 +21,17 @@ libappleutility_sources = [ 'CAXException.cpp' ] -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.uselib = 'AUDIOUNITS OSX' obj.source = libappleutility_sources - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libappleutility' obj.target = 'appleutility' diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 1b71f58298..45ef1a5ff8 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -1,7 +1,6 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os -import glob import Options import re import subprocess @@ -26,8 +25,8 @@ APPNAME = 'libardour' VERSION = LIBARDOUR_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/ardour/' @@ -233,7 +232,7 @@ def ogg_supported(): out = cmd.communicate()[0].decode('utf-8'); return re.search ('unknown format', out) == None -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -292,7 +291,7 @@ def configure(conf): conf.check_cc(fragment = ''' #include -void callback(int code, const char* reason, void* arg) { return; } +void callback(jack_status_t code, const char* reason, void* arg) { return; } int main(int argc, char **argv) { jack_client_t* c; jack_on_info_shutdown(c, callback, (void*) 0); @@ -341,27 +340,27 @@ int main(int argc, char **argv) { if conf.env['HAVE_LILV'] or conf.env['HAVE_SLV2']: conf.define ('LV2_SUPPORT', 1) - conf.write_config_header('libardour-config.h') + conf.write_config_header('libardour-config.h', remove=False) # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') - autowaf.check_header(conf, 'boost/scoped_ptr.hpp') - autowaf.check_header(conf, 'boost/ptr_container/ptr_list.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/scoped_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/ptr_container/ptr_list.hpp') def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'c cxx cshlib cxxshlib') obj.source = libardour_sources - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', '../surfaces/control_protocol', '..'] obj.name = 'libardour' obj.target = 'ardour' obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID', 'JACK','SNDFILE','SAMPLERATE','LRDF','AUDIOUNIT', 'OSX','BOOST','CURL','DL'] - obj.uselib_local = ['libpbd','libmidipp','libevoral','libvamphost', + obj.use = ['libpbd','libmidipp','libevoral','libvamphost', 'libvampplugin','libtaglib','librubberband', 'libaudiographer'] obj.vnum = LIBARDOUR_LIB_VERSION @@ -369,7 +368,7 @@ def build(bld): obj.defines = [ 'PACKAGE="libardour3"', 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', - 'CONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"', + 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', 'MODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"', 'LOCALEDIR="' + os.path.join( os.path.normpath(bld.env['DATADIR']), 'locale') + '"', @@ -405,7 +404,7 @@ def build(bld): if bld.env['COREAUDIO']: obj.source += [ 'coreaudiosource.cc', 'caimportable.cc' ] - obj.uselib_local += ['libappleutility'] + obj.use += ['libappleutility'] obj.source += [ 'audio_unit.cc' ] if bld.env['FPU_OPTIMIZATION']: @@ -417,7 +416,7 @@ def build(bld): # i18n if bld.env['ENABLE_NLS']: - mo_files = glob.glob(os.path.join(bld.get_curdir(), 'po/*.mo')) + mo_files = bld.path.ant_glob('po/*.mo') for mo in mo_files: lang = os.path.basename(mo).replace('.mo', '') bld.install_as(os.path.join(bld.env['PREFIX'], 'share', 'locale', @@ -426,7 +425,7 @@ def build(bld): if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: # Unit tests - testobj = bld.new_task_gen('cxx', 'program') + testobj = bld(features = 'cxx cxxprogram') testobj.source = ''' test/bbt_test.cpp test/interpolation_test.cpp @@ -438,14 +437,14 @@ def build(bld): testobj.includes = obj.includes + ['test', '../pbd'] testobj.uselib = ['CPPUNIT','SIGCPP','JACK','GLIBMM','GTHREAD', 'SAMPLERATE','XML','LRDF','COREAUDIO'] - testobj.uselib_local = ['libpbd','libmidipp','libardour'] + testobj.use = ['libpbd','libmidipp','libardour'] testobj.name = 'libardour-tests' testobj.target = 'run-tests' testobj.install_path = '' testobj.defines = [ 'PACKAGE="libardour3test"', 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', - 'CONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"', + 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', 'MODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"', 'LOCALEDIR="' + os.path.join( os.path.normpath(bld.env['DATADIR']), 'locale') + '"', diff --git a/libs/audiographer/autowaf.py b/libs/audiographer/autowaf.py deleted file mode 100644 index cee80a587b..0000000000 --- a/libs/audiographer/autowaf.py +++ /dev/null @@ -1,439 +0,0 @@ -#!/usr/bin/env python -# Waf utilities for easily building standard unixey packages/libraries -# Licensed under the GNU GPL v2 or later, see COPYING file for details. -# Copyright (C) 2008 David Robillard -# Copyright (C) 2008 Nedko Arnaudov - -import Configure -import Options -import Utils -import misc -import os -import subprocess -import sys -from TaskGen import feature, before, after - -global g_is_child -g_is_child = False - -# Only run autowaf hooks once (even if sub projects call several times) -global g_step -g_step = 0 - -# Compute dependencies globally -#import preproc -#preproc.go_absolute = True - -@feature('cc', 'cxx') -@after('apply_lib_vars') -@before('apply_obj_vars_cc', 'apply_obj_vars_cxx') -def include_config_h(self): - self.env.append_value('INC_PATHS', self.bld.srcnode) - -def set_options(opt): - "Add standard autowaf options if they havn't been added yet" - global g_step - if g_step > 0: - return - opt.tool_options('compiler_cc') - opt.tool_options('compiler_cxx') - opt.add_option('--debug', action='store_true', default=False, dest='debug', - help="Build debuggable binaries [Default: False]") - opt.add_option('--strict', action='store_true', default=False, dest='strict', - help="Use strict compiler flags and show all warnings [Default: False]") - opt.add_option('--docs', action='store_true', default=False, dest='docs', - help="Build documentation - requires doxygen [Default: False]") - opt.add_option('--bundle', action='store_true', default=False, - help="Build a self-contained bundle [Default: False]") - opt.add_option('--bindir', type='string', - help="Executable programs [Default: PREFIX/bin]") - opt.add_option('--libdir', type='string', - help="Libraries [Default: PREFIX/lib]") - opt.add_option('--includedir', type='string', - help="Header files [Default: PREFIX/include]") - opt.add_option('--datadir', type='string', - help="Shared data [Default: PREFIX/share]") - opt.add_option('--configdir', type='string', - help="Configuration data [Default: PREFIX/etc]") - opt.add_option('--mandir', type='string', - help="Manual pages [Default: DATADIR/man]") - opt.add_option('--htmldir', type='string', - help="HTML documentation [Default: DATADIR/doc/PACKAGE]") - opt.add_option('--lv2-user', action='store_true', default=False, dest='lv2_user', - help="Install LV2 bundles to user-local location [Default: False]") - if sys.platform == "darwin": - opt.add_option('--lv2dir', type='string', - help="LV2 bundles [Default: /Library/Audio/Plug-Ins/LV2]") - else: - opt.add_option('--lv2dir', type='string', - help="LV2 bundles [Default: LIBDIR/lv2]") - g_step = 1 - -def check_header(conf, name, define='', mandatory=False): - "Check for a header iff it hasn't been checked for yet" - if type(conf.env['AUTOWAF_HEADERS']) != dict: - conf.env['AUTOWAF_HEADERS'] = {} - - checked = conf.env['AUTOWAF_HEADERS'] - if not name in checked: - checked[name] = True - includes = '' # search default system include paths - if sys.platform == "darwin": - includes = '/opt/local/include' - if define != '': - conf.check(header_name=name, includes=includes, define_name=define, mandatory=mandatory) - else: - conf.check(header_name=name, includes=includes, mandatory=mandatory) - -def nameify(name): - return name.replace('/', '_').replace('++', 'PP').replace('-', '_').replace('.', '_') - -def check_pkg(conf, name, **args): - if not 'mandatory' in args: - args['mandatory'] = True - "Check for a package iff it hasn't been checked for yet" - var_name = 'HAVE_' + nameify(args['uselib_store']) - check = not var_name in conf.env - if not check and 'atleast_version' in args: - # Re-check if version is newer than previous check - checked_version = conf.env['VERSION_' + name] - if checked_version and checked_version < args['atleast_version']: - check = True; - if check: - conf.check_cfg(package=name, args="--cflags --libs", **args) - found = bool(conf.env[var_name]) - if found: - conf.define(var_name, int(found)) - if 'atleast_version' in args: - conf.env['VERSION_' + name] = args['atleast_version'] - else: - conf.undefine(var_name) - if args['mandatory'] == True: - conf.fatal("Required package " + name + " not found") - -def configure(conf): - global g_step - if g_step > 1: - return - def append_cxx_flags(vals): - conf.env.append_value('CCFLAGS', vals.split()) - conf.env.append_value('CXXFLAGS', vals.split()) - conf.line_just = 43 - display_header('Global Configuration') - conf.check_tool('misc') - conf.check_tool('compiler_cc') - conf.check_tool('compiler_cxx') - conf.env['DOCS'] = Options.options.docs - conf.env['DEBUG'] = Options.options.debug - conf.env['STRICT'] = Options.options.strict - conf.env['PREFIX'] = os.path.abspath(os.path.expanduser(os.path.normpath(conf.env['PREFIX']))) - if Options.options.bundle: - conf.env['BUNDLE'] = True - conf.define('BUNDLE', 1) - conf.env['BINDIR'] = conf.env['PREFIX'] - conf.env['INCLUDEDIR'] = os.path.join(conf.env['PREFIX'], 'Headers') - conf.env['LIBDIR'] = os.path.join(conf.env['PREFIX'], 'Libraries') - conf.env['DATADIR'] = os.path.join(conf.env['PREFIX'], 'Resources') - conf.env['HTMLDIR'] = os.path.join(conf.env['PREFIX'], 'Resources/Documentation') - conf.env['MANDIR'] = os.path.join(conf.env['PREFIX'], 'Resources/Man') - conf.env['LV2DIR'] = os.path.join(conf.env['PREFIX'], 'PlugIns') - else: - conf.env['BUNDLE'] = False - if Options.options.bindir: - conf.env['BINDIR'] = Options.options.bindir - else: - conf.env['BINDIR'] = os.path.join(conf.env['PREFIX'], 'bin') - if Options.options.includedir: - conf.env['INCLUDEDIR'] = Options.options.includedir - else: - conf.env['INCLUDEDIR'] = os.path.join(conf.env['PREFIX'], 'include') - if Options.options.libdir: - conf.env['LIBDIR'] = Options.options.libdir - else: - conf.env['LIBDIR'] = os.path.join(conf.env['PREFIX'], 'lib') - if Options.options.datadir: - conf.env['DATADIR'] = Options.options.datadir - else: - conf.env['DATADIR'] = os.path.join(conf.env['PREFIX'], 'share') - if Options.options.configdir: - conf.env['CONFIGDIR'] = Options.options.configdir - else: - conf.env['CONFIGDIR'] = os.path.join(conf.env['PREFIX'], 'etc') - if Options.options.htmldir: - conf.env['HTMLDIR'] = Options.options.htmldir - else: - conf.env['HTMLDIR'] = os.path.join(conf.env['DATADIR'], 'doc', Utils.g_module.APPNAME) - if Options.options.mandir: - conf.env['MANDIR'] = Options.options.mandir - else: - conf.env['MANDIR'] = os.path.join(conf.env['DATADIR'], 'man') - if Options.options.lv2dir: - conf.env['LV2DIR'] = Options.options.lv2dir - else: - if Options.options.lv2_user: - if sys.platform == "darwin": - conf.env['LV2DIR'] = os.path.join(os.getenv('HOME'), 'Library/Audio/Plug-Ins/LV2') - else: - conf.env['LV2DIR'] = os.path.join(os.getenv('HOME'), '.lv2') - else: - if sys.platform == "darwin": - conf.env['LV2DIR'] = '/Library/Audio/Plug-Ins/LV2' - else: - conf.env['LV2DIR'] = os.path.join(conf.env['LIBDIR'], 'lv2') - - conf.env['BINDIRNAME'] = os.path.basename(conf.env['BINDIR']) - conf.env['LIBDIRNAME'] = os.path.basename(conf.env['LIBDIR']) - conf.env['DATADIRNAME'] = os.path.basename(conf.env['DATADIR']) - conf.env['CONFIGDIRNAME'] = os.path.basename(conf.env['CONFIGDIR']) - conf.env['LV2DIRNAME'] = os.path.basename(conf.env['LV2DIR']) - - if Options.options.docs: - doxygen = conf.find_program('doxygen') - if not doxygen: - conf.fatal("Doxygen is required to build documentation, configure without --docs") - - dot = conf.find_program('dot') - if not dot: - conf.fatal("Graphviz (dot) is required to build documentation, configure without --docs") - - if Options.options.debug: - conf.env['CCFLAGS'] = [ '-O0', '-g' ] - conf.env['CXXFLAGS'] = [ '-O0', '-g' ] - else: - append_cxx_flags('-DNDEBUG') - - if Options.options.strict: - conf.env.append_value('CCFLAGS', [ '-std=c99', '-pedantic' ]) - conf.env.append_value('CXXFLAGS', [ '-ansi', '-Woverloaded-virtual', '-Wnon-virtual-dtor']) - append_cxx_flags('-Wall -Wextra -Wno-unused-parameter') - - append_cxx_flags('-fPIC -DPIC -fshow-column') - - display_msg(conf, "Install prefix", conf.env['PREFIX']) - display_msg(conf, "Debuggable build", str(conf.env['DEBUG'])) - display_msg(conf, "Strict compiler flags", str(conf.env['STRICT'])) - display_msg(conf, "Build documentation", str(conf.env['DOCS'])) - print - - g_step = 2 - -def set_local_lib(conf, name, has_objects): - conf.define('HAVE_' + nameify(name.upper()), 1) - if has_objects: - if type(conf.env['AUTOWAF_LOCAL_LIBS']) != dict: - conf.env['AUTOWAF_LOCAL_LIBS'] = {} - conf.env['AUTOWAF_LOCAL_LIBS'][name.lower()] = True - else: - if type(conf.env['AUTOWAF_LOCAL_HEADERS']) != dict: - conf.env['AUTOWAF_LOCAL_HEADERS'] = {} - conf.env['AUTOWAF_LOCAL_HEADERS'][name.lower()] = True - -def use_lib(bld, obj, libs): - abssrcdir = os.path.abspath('.') - libs_list = libs.split() - for l in libs_list: - in_headers = l.lower() in bld.env['AUTOWAF_LOCAL_HEADERS'] - in_libs = l.lower() in bld.env['AUTOWAF_LOCAL_LIBS'] - if in_libs: - if hasattr(obj, 'uselib_local'): - obj.uselib_local += ' lib' + l.lower() + ' ' - else: - obj.uselib_local = 'lib' + l.lower() + ' ' - - if in_headers or in_libs: - inc_flag = '-iquote ' + os.path.join(abssrcdir, l.lower()) - for f in ['CCFLAGS', 'CXXFLAGS']: - if not inc_flag in bld.env[f]: - bld.env.append_value(f, inc_flag) - else: - if hasattr(obj, 'uselib'): - obj.uselib += ' ' + l - else: - obj.uselib = l - - -def display_header(title): - Utils.pprint('BOLD', title) - -def display_msg(conf, msg, status = None, color = None): - color = 'CYAN' - if type(status) == bool and status or status == "True": - color = 'GREEN' - elif type(status) == bool and not status or status == "False": - color = 'YELLOW' - Utils.pprint('BOLD', "%s :" % msg.ljust(conf.line_just), sep='') - Utils.pprint(color, status) - -def link_flags(env, lib): - return ' '.join(map(lambda x: env['LIB_ST'] % x, env['LIB_' + lib])) - -def compile_flags(env, lib): - return ' '.join(map(lambda x: env['CPPPATH_ST'] % x, env['CPPPATH_' + lib])) - -def set_recursive(): - global g_is_child - g_is_child = True - -def is_child(): - global g_is_child - return g_is_child - -# Pkg-config file -def build_pc(bld, name, version, libs): - '''Build a pkg-config file for a library. - name -- uppercase variable name (e.g. 'SOMENAME') - version -- version string (e.g. '1.2.3') - libs -- string/list of dependencies (e.g. 'LIBFOO GLIB') - ''' - - obj = bld.new_task_gen('subst') - obj.source = name.lower() + '.pc.in' - obj.target = name.lower() + '.pc' - obj.install_path = '${PREFIX}/${LIBDIRNAME}/pkgconfig' - pkg_prefix = bld.env['PREFIX'] - if pkg_prefix[-1] == '/': - pkg_prefix = pkg_prefix[:-1] - obj.dict = { - 'prefix' : pkg_prefix, - 'exec_prefix' : '${prefix}', - 'libdir' : '${prefix}/' + bld.env['LIBDIRNAME'], - 'includedir' : '${prefix}/include', - name + '_VERSION' : version, - } - if type(libs) != list: - libs = libs.split() - for i in libs: - obj.dict[i + '_LIBS'] = link_flags(bld.env, i) - obj.dict[i + '_CFLAGS'] = compile_flags(bld.env, i) - -# Doxygen API documentation -def build_dox(bld, name, version, srcdir, blddir): - if not bld.env['DOCS']: - return - obj = bld.new_task_gen('subst') - obj.source = 'doc/reference.doxygen.in' - obj.target = 'doc/reference.doxygen' - if is_child(): - src_dir = os.path.join(srcdir, name.lower()) - doc_dir = os.path.join(blddir, 'default', name.lower(), 'doc') - else: - src_dir = srcdir - doc_dir = os.path.join(blddir, 'default', 'doc') - obj.dict = { - name + '_VERSION' : version, - name + '_SRCDIR' : os.path.abspath(src_dir), - name + '_DOC_DIR' : os.path.abspath(doc_dir) - } - obj.install_path = '' - out1 = bld.new_task_gen('command-output') - out1.dependencies = [obj] - out1.stdout = '/doc/doxygen.out' - out1.stdin = '/doc/reference.doxygen' # whatever.. - out1.command = 'doxygen' - out1.argv = [os.path.abspath(doc_dir) + '/reference.doxygen'] - out1.command_is_external = True - -# Version code file generation -def build_version_files(header_path, source_path, domain, major, minor, micro): - header_path = os.path.abspath(header_path) - source_path = os.path.abspath(source_path) - text = "int " + domain + "_major_version = " + str(major) + ";\n" - text += "int " + domain + "_minor_version = " + str(minor) + ";\n" - text += "int " + domain + "_micro_version = " + str(micro) + ";\n" - try: - o = file(source_path, 'w') - o.write(text) - o.close() - except IOError: - print "Could not open", source_path, " for writing\n" - sys.exit(-1) - - text = "#ifndef __" + domain + "_version_h__\n" - text += "#define __" + domain + "_version_h__\n" - text += "extern const char* " + domain + "_revision;\n" - text += "extern int " + domain + "_major_version;\n" - text += "extern int " + domain + "_minor_version;\n" - text += "extern int " + domain + "_micro_version;\n" - text += "#endif /* __" + domain + "_version_h__ */\n" - try: - o = file(header_path, 'w') - o.write(text) - o.close() - except IOError: - print "Could not open", header_path, " for writing\n" - sys.exit(-1) - - return None - -def run_tests(ctx, appname, tests): - orig_dir = os.path.abspath(os.curdir) - failures = 0 - base = '..' - - top_level = os.path.abspath(ctx.curdir) != os.path.abspath(os.curdir) - if top_level: - os.chdir('./build/default/' + appname) - base = '../..' - else: - os.chdir('./build/default') - - lcov = True - lcov_log = open('lcov.log', 'w') - try: - # Clear coverage data - subprocess.call('lcov -d ./src -z'.split(), - stdout=lcov_log, stderr=lcov_log) - except: - lcov = False - print "Failed to run lcov, no coverage report will be generated" - - - # Run all tests - for i in tests: - print - Utils.pprint('BOLD', 'Running %s test %s' % (appname, i)) - if subprocess.call(i) == 0: - Utils.pprint('GREEN', 'Passed %s %s' % (appname, i)) - else: - failures += 1 - Utils.pprint('RED', 'Failed %s %s' % (appname, i)) - - if lcov: - # Generate coverage data - coverage_lcov = open('coverage.lcov', 'w') - subprocess.call(('lcov -c -d ./src -d ./test -b ' + base).split(), - stdout=coverage_lcov, stderr=lcov_log) - coverage_lcov.close() - - # Strip out unwanted stuff - coverage_stripped_lcov = open('coverage-stripped.lcov', 'w') - subprocess.call('lcov --remove coverage.lcov *boost* c++*'.split(), - stdout=coverage_stripped_lcov, stderr=lcov_log) - coverage_stripped_lcov.close() - - # Generate HTML coverage output - if not os.path.isdir('./coverage'): - os.makedirs('./coverage') - subprocess.call('genhtml -o coverage coverage-stripped.lcov'.split(), - stdout=lcov_log, stderr=lcov_log) - - lcov_log.close() - - print - Utils.pprint('BOLD', 'Summary:', sep=''), - if failures == 0: - Utils.pprint('GREEN', 'All ' + appname + ' tests passed') - else: - Utils.pprint('RED', str(failures) + ' ' + appname + ' test(s) failed') - - Utils.pprint('BOLD', 'Coverage:', sep='') - print os.path.abspath('coverage/index.html') - - os.chdir(orig_dir) - -def shutdown(): - # This isn't really correct (for packaging), but people asking is annoying - if Options.commands['install']: - try: os.popen("/sbin/ldconfig") - except: pass - diff --git a/libs/audiographer/wscript b/libs/audiographer/wscript index 31103b3095..1c651e834a 100644 --- a/libs/audiographer/wscript +++ b/libs/audiographer/wscript @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -19,10 +19,10 @@ APPNAME = 'audiographer' VERSION = AUDIOGRAPHER_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -39,8 +39,8 @@ def configure(conf): autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18', mandatory=False) # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/format.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/format.hpp') def build(bld): @@ -53,7 +53,7 @@ def build(bld): #bld.env['BUILD_TESTS'] = True bld.env['HAVE_ALL_GTHREAD'] = bld.env['HAVE_GLIB'] and bld.env['HAVE_GLIBMM'] and bld.env['HAVE_GTHREAD'] - audiographer = bld.new_task_gen('cxx', 'shlib') + audiographer = bld(features = 'cxx cxxshlib') audiographer.source = ''' private/gdither/gdither.cc src/general/sample_format_converter.cc @@ -69,17 +69,17 @@ def build(bld): audiographer.name = 'libaudiographer' audiographer.target = 'audiographer' - audiographer.export_incdirs = ['.', './src'] + audiographer.export_includes = ['.', './src'] audiographer.includes = ['.', './src'] audiographer.uselib = 'GLIB GLIBMM GTHREAD SAMPLERATE SNDFILE' - audiographer.uselib_local = 'libpbd' + audiographer.use = 'libpbd' audiographer.vnum = AUDIOGRAPHER_LIB_VERSION audiographer.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: # Unit tests - obj = bld.new_task_gen('cxx', 'program') + obj = bld(features = 'cxx cxxprogram') obj.source = ''' tests/test_runner.cc tests/type_utils_test.cc @@ -109,7 +109,7 @@ def build(bld): tests/general/sr_converter_test.cc ''' - obj.uselib_local = 'libaudiographer' + obj.use = 'libaudiographer' obj.uselib = 'CPPUNIT GLIBMM' obj.target = 'run-tests' obj.install_path = '' diff --git a/libs/clearlooks-newer/wscript b/libs/clearlooks-newer/wscript index b3ba10c5e2..d446275d49 100644 --- a/libs/clearlooks-newer/wscript +++ b/libs/clearlooks-newer/wscript @@ -1,14 +1,14 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os import sys -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/clearlooks-newer' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -16,7 +16,7 @@ def configure(conf): conf.check_tool('compiler_cc') def build(bld): - obj = bld.new_task_gen('cc', 'shlib') + obj = bld(features = 'c cshlib') obj.source = ''' animation.c cairo-support.c @@ -40,7 +40,7 @@ def build(bld): if sys.platform == 'darwin': # Bit of a hack: make a symlink to the .dylib that meets GTK's criteria for finding it (namely that the library must be a *.so # and that it must reside in a directory called `engines') - obj = bld.new_task_gen(target = 'engines', rule = 'mkdir -p ${TGT} && rm -f ${TGT}/libclearlooks.so && ln -s ../libclearlooks.dylib ${TGT}/libclearlooks.so') + obj = bld(target = 'engines', rule = 'mkdir -p ${TGT} && rm -f ${TGT}/libclearlooks.so && ln -s ../libclearlooks.dylib ${TGT}/libclearlooks.so') def shutdown(): diff --git a/libs/evoral/wscript b/libs/evoral/wscript index e1b729c826..24a5f4dd1f 100644 --- a/libs/evoral/wscript +++ b/libs/evoral/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import Options import os @@ -19,10 +19,10 @@ APPNAME = 'evoral' VERSION = EVORAL_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) opt.add_option('--test', action='store_true', default=False, dest='build_tests', help="Build unit tests") @@ -38,8 +38,8 @@ def configure(conf): autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0') # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') conf.env['BUILD_TESTS'] = Options.options.build_tests @@ -54,7 +54,7 @@ def build(bld): # Pkgconfig file #autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD') - libsmf = bld.new_task_gen('cc', 'shlib') + libsmf = bld(features = 'c cshlib') libsmf.source = ''' src/libsmf/smf.c src/libsmf/smf_decode.c @@ -62,7 +62,7 @@ def build(bld): src/libsmf/smf_save.c src/libsmf/smf_tempo.c ''' - libsmf.export_incdirs = ['./src/libsmf'] + libsmf.export_includes = ['./src/libsmf'] libsmf.defines = 'SMF_VERSION="1.2"' libsmf.includes = ['./src'] libsmf.name = 'libsmf' @@ -85,50 +85,50 @@ def build(bld): ''' # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = lib_source - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', './src'] obj.name = 'libevoral' obj.target = 'evoral' obj.uselib = 'GLIBMM GTHREAD SMF' - obj.uselib_local = 'libsmf libpbd' + obj.use = 'libsmf libpbd' obj.vnum = EVORAL_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.defines = ['PACKAGE="libevoral"' ] if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: # Static library (for unit test code coverage) - obj = bld.new_task_gen('cxx', 'staticlib') + obj = bld(features = 'cxx cstlib') obj.source = lib_source obj.source = lib_source - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', './src'] obj.name = 'libevoral_static' obj.target = 'evoral_static' obj.uselib = 'GLIBMM GTHREAD SMF' - obj.uselib_local = 'libsmf libpbd' + obj.use = 'libsmf libpbd' obj.vnum = EVORAL_LIB_VERSION obj.install_path = '' - obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] + obj.cflags = [ '-fprofile-arcs', '-ftest-coverage' ] obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] obj.defines = ['PACKAGE="libevoral"' ] # Unit tests - obj = bld.new_task_gen('cxx', 'program') + obj = bld(features = 'cxx cxxprogram') obj.source = ''' test/SequenceTest.cpp test/SMFTest.cpp test/testrunner.cpp ''' obj.includes = ['.', './src'] - obj.uselib_local = 'libevoral_static' + obj.use = 'libevoral_static' obj.uselib = 'CPPUNIT SNDFILE' obj.libs = 'gcov' obj.target = 'run-tests' obj.name = 'libevoral-tests' obj.install_path = '' - obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] + obj.cflags = [ '-fprofile-arcs', '-ftest-coverage' ] obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] def shutdown(): diff --git a/libs/gnomecanvas/wscript b/libs/gnomecanvas/wscript index e3085065dc..64ade4a189 100644 --- a/libs/gnomecanvas/wscript +++ b/libs/gnomecanvas/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -19,8 +19,8 @@ APPNAME = 'libgnomecanvas' VERSION = LIBGNOMECANVAS_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/gnomecanvas/' @@ -41,7 +41,7 @@ libgnomecanvas_sources = [ 'libgnomecanvas/libgnomecanvastypes.c' ] -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -52,9 +52,9 @@ def configure(conf): def build(bld): # Library - obj = bld.new_task_gen('cc', 'shlib') + obj = bld(features = 'c cshlib') obj.source = libgnomecanvas_sources - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libgnomecanvas-2' obj.target = 'gnomecanvas-2' diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index fa5dea50e0..3103ebd9b8 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -1,7 +1,6 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os -import glob # Version of this package (even if built as a child) MAJOR = '0' @@ -60,12 +59,12 @@ gtkmm2ext_sources = [ ] # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/gtkmm2ext/' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -78,20 +77,20 @@ def configure(conf): def build(bld): - obj = bld.new_task_gen(features = 'cc cxx cshlib') + obj = bld(features = 'c cxx cxxshlib cshlib') obj.source = gtkmm2ext_sources - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libgtkmm2ext' obj.target = 'gtkmm2ext' obj.uselib = 'GTKMM GTK GTKOSX OSX GDK' - obj.uselib_local = 'libpbd' + obj.use = 'libpbd' obj.vnum = GTKMM2EXT_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.cxxflags = [ '-DPACKAGE="libgtkmm2ext"', '-DLOCALEDIR="' + os.path.join( - os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '"'] + os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] if bld.env['GTKOSX']: obj.source += ['gtkapplication_quartz.mm'] else: @@ -99,7 +98,7 @@ def build(bld): # i18n if bld.env['ENABLE_NLS']: - mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) + mo_files = bld.path.ant_glob ('po/*.mo') for mo in mo_files: lang = os.path.basename (mo).replace ('.mo', '') bld.install_as (os.path.join(bld.env['PREFIX'], 'share', 'locale', diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index f236d0a8cd..e4dbf1eab6 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os import sys @@ -20,12 +20,12 @@ APPNAME = 'libmidipp' VERSION = LIBMIDIPP_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/midi++2/' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -38,12 +38,12 @@ def configure(conf): autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' midi.cc channel.cc @@ -57,12 +57,12 @@ def build(bld): ''' # everybody loves JACK obj.cxxflags = [ '-DWITH_JACK_MIDI' ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', '../surfaces/control_protocol'] obj.name = 'libmidipp' obj.target = 'midipp' obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' - obj.uselib_local = 'libpbd libevoral libtimecode' + obj.use = 'libpbd libevoral libtimecode' obj.vnum = LIBMIDIPP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/libs/panners/1in2out/wscript b/libs/panners/1in2out/wscript index 2238124dc7..70c34d0779 100644 --- a/libs/panners/1in2out/wscript +++ b/libs/panners/1in2out/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,24 +9,24 @@ import os LIBARDOUR_PAN1IN2OUT_LIB_VERSION = '1.0.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = [ 'panner_1in2out.cc' ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="libardour_pan1in2out"' obj.includes = ['.'] obj.name = 'libardour_pan1in2out' obj.target = 'pan1in2out' - obj.uselib_local = 'libardour libardour_cp libpbd' + obj.use = 'libardour libardour_cp libpbd' obj.vnum = LIBARDOUR_PAN1IN2OUT_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') diff --git a/libs/panners/2in2out/wscript b/libs/panners/2in2out/wscript index 2891dfd6f7..8288ef28f7 100644 --- a/libs/panners/2in2out/wscript +++ b/libs/panners/2in2out/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,24 +9,24 @@ import os LIBARDOUR_PAN2IN2OUT_LIB_VERSION = '1.0.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = [ 'panner_2in2out.cc' ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="libardour_pan2in2out"' obj.includes = ['.'] obj.name = 'libardour_pan2in2out' obj.target = 'pan2in2out' - obj.uselib_local = 'libardour libardour_cp libpbd' + obj.use = 'libardour libardour_cp libpbd' obj.vnum = LIBARDOUR_PAN2IN2OUT_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') diff --git a/libs/panners/vbap/wscript b/libs/panners/vbap/wscript index bd311272b5..c6ba94261f 100644 --- a/libs/panners/vbap/wscript +++ b/libs/panners/vbap/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,24 +9,24 @@ import os LIBARDOUR_PANVBAP_LIB_VERSION = '1.0.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = [ 'vbap_speakers.cc', 'vbap.cc' ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="libardour_panvbap"' obj.includes = ['.'] obj.name = 'libardour_panvbap' obj.target = 'panvbap' - obj.uselib_local = 'libardour libardour_cp libpbd' + obj.use = 'libardour libardour_cp libpbd' obj.vnum = LIBARDOUR_PANVBAP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') diff --git a/libs/panners/wscript b/libs/panners/wscript index 3c1a013732..76f14e6fa1 100644 --- a/libs/panners/wscript +++ b/libs/panners/wscript @@ -1,14 +1,14 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' panners = [ '2in2out', '1in2out', 'vbap' ] -def set_options(opt): +def options(opt): autowaf.set_options(opt) def sub_config_and_use(conf, name, has_objects = True): diff --git a/libs/pbd/wscript b/libs/pbd/wscript index 66b63c999e..c2be9849a9 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os import sys import TaskGen @@ -21,12 +21,12 @@ APPNAME = 'libpbd' VERSION = LIBPBD_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' path_prefix = 'libs/pbd/' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -42,19 +42,19 @@ def configure(conf): conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT') conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO') conf.check(header_name='unistd.h', define_name='HAVE_UNISTD') - if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', ccflags='-D_XOPEN_SOURCE=600') == False: + if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', cflags='-D_XOPEN_SOURCE=600') == False: conf.define ('NO_POSIX_MEMALIGN',1) - conf.write_config_header('libpbd-config.h') + conf.write_config_header('libpbd-config.h', remove=False) # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') - # autowaf.check_header(conf, 'boost/uuid/uuid.hpp') + autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp') + # autowaf.check_header(conf, 'cxx', 'boost/uuid/uuid.hpp') def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' basename.cc base_ui.cc @@ -111,7 +111,7 @@ def build(bld): if bld.env['DEBUG_RT_ALLOC']: obj.source += 'debug_rt_alloc.c' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libpbd' obj.target = 'pbd' @@ -129,7 +129,7 @@ def build(bld): if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: # Unit tests - testobj = bld.new_task_gen('cxx', 'program') + testobj = bld(features = 'cxx cxxprogram') testobj.source = ''' test/testrunner.cc test/xpath.cc @@ -139,7 +139,7 @@ def build(bld): testobj.target = 'run-tests' testobj.includes = obj.includes + ['test', '../pbd'] testobj.uselib = 'CPPUNIT XML SNDFILE' - testobj.uselib_local = 'libpbd' + testobj.use = 'libpbd' def shutdown(): diff --git a/libs/qm-dsp/wscript b/libs/qm-dsp/wscript index a77822abac..db759c69db 100644 --- a/libs/qm-dsp/wscript +++ b/libs/qm-dsp/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -16,10 +16,10 @@ APPNAME = 'qm-dsp' VERSION = QM_DSP_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -28,7 +28,7 @@ def configure(conf): def build(bld): # Host Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' dsp/onsets/DetectionFunction.cpp dsp/onsets/PeakPicking.cpp @@ -47,7 +47,7 @@ def build(bld): maths/MathUtilities.cpp base/Pitch.cpp ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libqmdsp' obj.target = 'qmdsp' diff --git a/libs/rubberband/wscript b/libs/rubberband/wscript index 011a858aca..15fb9b2ade 100644 --- a/libs/rubberband/wscript +++ b/libs/rubberband/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python -import autowaf -import glob +from waflib.extras import autowaf as autowaf import os +import glob # Version of this package (even if built as a child) LIBRUBBERBAND_VERSION = '0.0.0' @@ -17,10 +17,10 @@ APPNAME = 'librubberband' VERSION = LIBRUBBERBAND_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -29,18 +29,18 @@ def configure(conf): def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') prefix = 'libs/rubberband/' sources = glob.glob(prefix + 'src/*.cpp') obj.source = [ ] for i in sources: obj.source += [ i.replace(prefix, '') ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', 'rubberband'] obj.name = 'librubberband' obj.target = 'rubberband' obj.uselib = 'FFTW3 FFTW3F SAMPLERATE SNDFILE' - obj.uselib_local = 'libvamphost' + obj.use = 'libvamphost' obj.vnum = LIBRUBBERBAND_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.cxxflags = '-DPACKAGE="librubberband"' diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index a4afd68539..8c083ba9ec 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -10,27 +10,27 @@ APPNAME = 'libardour_cp' LIBARDOUR_CP_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' basic_ui.cc control_protocol.cc ''' - obj.export_incdirs = ['.', './control_protocol' ] + obj.export_includes = ['.', './control_protocol' ] obj.cxxflags = '-DPACKAGE="ardour_cp"' obj.includes = ['.', './control_protocol'] obj.name = 'libardour_cp' obj.target = 'ardourcp' - obj.uselib_local = 'libardour libtimecode' + obj.use = 'libardour libtimecode' obj.vnum = LIBARDOUR_CP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript index cd388b8bff..c23b3cf3c9 100644 --- a/libs/surfaces/frontier/wscript +++ b/libs/surfaces/frontier/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -16,10 +16,10 @@ APPNAME = 'libsurfaces' VERSION = LIBSURFACES_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -27,18 +27,18 @@ def configure(conf): def build(bld): # Generic MIDI - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' generic_midi_control_protocol.cc interface.cc midicontrollable.cc ''' - obj.export_incdirs = ['./generic_midi'] + obj.export_includes = ['./generic_midi'] obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' obj.includes = ['.', './generic_midi'] obj.name = 'libgeneric_midi' obj.target = 'generic_midi' - obj.uselib_local = 'libardour libsurfaces' + obj.use = 'libardour libsurfaces' obj.vnum = LIBSURFACES_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript index 9111df5982..6daf413b66 100644 --- a/libs/surfaces/generic_midi/wscript +++ b/libs/surfaces/generic_midi/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,17 +9,17 @@ import os LIBARDOUR_GENERIC_MIDI_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' generic_midi_control_protocol.cc gmcp_gui.cc @@ -29,13 +29,13 @@ def build(bld): midifunction.cc midiaction.cc ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' obj.includes = ['.', './generic_midi'] obj.name = 'libardour_generic_midi' obj.target = 'ardour_generic_midi' obj.uselib = 'GTKMM GTK GDK' - obj.uselib_local = 'libardour libardour_cp libgtkmm2ext libpbd' + obj.use = 'libardour libardour_cp libgtkmm2ext libpbd' obj.vnum = LIBARDOUR_GENERIC_MIDI_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript index f091acb148..ba8b8e5b4b 100644 --- a/libs/surfaces/mackie/wscript +++ b/libs/surfaces/mackie/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,17 +9,17 @@ import os LIBARDOUR_MCP_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' bcf_surface.cc bcf_surface_generated.cc @@ -41,13 +41,13 @@ def build(bld): surface_port.cc types.cc ''' - obj.export_incdirs = ['./mackie'] + obj.export_includes = ['./mackie'] obj.cxxflags = '-DPACKAGE="ardour_mackie"' obj.includes = ['.', './mackie'] obj.name = 'libardour_mcp' obj.target = 'ardour_mcp' obj.uselib = 'GTKMM' - obj.uselib_local = 'libardour libardour_cp libgtkmm2ext' + obj.use = 'libardour libardour_cp libgtkmm2ext' obj.vnum = LIBARDOUR_MCP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript index 4d62bda7bc..1ab9bf42a7 100644 --- a/libs/surfaces/osc/wscript +++ b/libs/surfaces/osc/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,10 +9,10 @@ import os LIBARDOUR_OSC_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -20,20 +20,20 @@ def configure(conf): autowaf.check_pkg(conf, 'liblo', uselib_store='LO', linkflags='-llo') def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' osc.cc osc_controllable.cc osc_route_observer.cc interface.cc ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="ardour_cp"' obj.includes = ['.', './osc'] obj.name = 'libardour_osc' obj.target = 'ardour_osc' obj.uselib = ' LO ' - obj.uselib_local = 'libardour libardour_cp libpbd' + obj.use = 'libardour libardour_cp libpbd' obj.vnum = LIBARDOUR_OSC_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/powermate/wscript b/libs/surfaces/powermate/wscript index 6f263fc9a0..fb97607169 100644 --- a/libs/surfaces/powermate/wscript +++ b/libs/surfaces/powermate/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,27 +9,27 @@ import os LIBARDOUR_POWERMATE_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' interface.cc powermate.cc ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.cxxflags = '-DPACKAGE="ardour_powermate"' obj.includes = ['.' ] obj.name = 'libpowermate' obj.target = 'powermate' - obj.uselib_local = 'libardour libardour_cp' + obj.use = 'libardour libardour_cp' obj.vnum = LIBARDOUR_POWERMATE_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript index 7a7d5d2a05..311a9a2045 100644 --- a/libs/surfaces/tranzport/wscript +++ b/libs/surfaces/tranzport/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,17 +9,17 @@ import os LIBARDOUR_TRANZPORT_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' button_events.cc buttons.cc @@ -38,12 +38,12 @@ def build(bld): wheel.cc wheel_modes.cc ''' - obj.export_incdirs = ['./tranzport'] + obj.export_includes = ['./tranzport'] obj.cxxflags = '-DPACKAGE="ardour_tranzport"' obj.includes = ['.', './tranzport'] obj.name = 'libardour_tranzport' obj.target = 'ardour_tranzport' - obj.uselib_local = 'libardour libardour_cp' + obj.use = 'libardour libardour_cp' obj.vnum = LIBARDOUR_TRANZPORT_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript index 3c4650ca9b..3fbea7e248 100644 --- a/libs/surfaces/wiimote/wscript +++ b/libs/surfaces/wiimote/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Library version (UNIX style major, minor, micro) @@ -9,27 +9,27 @@ import os LIBARDOUR_WIIMOTE_LIB_VERSION = '4.1.0' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' wiimote.cc interface.cc ''' - obj.export_incdirs = ['./wiimote'] + obj.export_includes = ['./wiimote'] obj.cxxflags = '-DPACKAGE="ardour_wiimote"' obj.includes = ['.', './wiimote'] obj.name = 'libwiimote' obj.target = 'wiimote' - obj.uselib_local = 'libardour libardour_cp' + obj.use = 'libardour libardour_cp' obj.vnum = LIBARDOUR_WIIMOTE_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/wscript b/libs/surfaces/wscript index 1b9d5c7091..9f5c4749e7 100644 --- a/libs/surfaces/wscript +++ b/libs/surfaces/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import Options # Version of this package (even if built as a child) @@ -16,8 +16,8 @@ APPNAME = 'libsurfaces' VERSION = LIBSURFACES_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' children = [ 'control_protocol', @@ -30,7 +30,7 @@ children = [ 'wiimote' ] -def set_options(opt): +def options(opt): autowaf.set_options(opt) def sub_config_and_use(conf, name, has_objects = True): @@ -44,7 +44,11 @@ def configure(conf): for i in children: sub_config_and_use(conf, i) - conf.check_cc (lib='libusb', header_name='libusb.h', function_name='usb_interrupt_write', define_name='BUILD_TRANZPORT') + autowaf.check_pkg(conf, 'libusb-1.0', uselib_store='USB', mandatory=False) + if conf.env['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') diff --git a/libs/taglib/wscript b/libs/taglib/wscript index b7276d01c5..986f8302ab 100644 --- a/libs/taglib/wscript +++ b/libs/taglib/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import glob import os @@ -17,12 +17,10 @@ APPNAME = 'libtaglib' VERSION = LIBTAGLIB_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -path_prefix = 'libs/taglib/' - -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -31,25 +29,23 @@ def configure(conf): def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') - sources = glob.glob(path_prefix + 'taglib/*.cpp') - sources += glob.glob(path_prefix + 'taglib/flac/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpc/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v1/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/frames/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/vorbis/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/speex/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/flac/*.cpp') - sources += glob.glob(path_prefix + 'taglib/trueaudio/*.cpp') - sources += glob.glob(path_prefix + 'taglib/wavpack/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ape/*.cpp') - sources += glob.glob(path_prefix + 'taglib/toolkit/*.cpp') - obj.source = [] - for i in sources: - obj.source += [ i.replace(path_prefix, '') ] + obj = bld(features = 'cxx cxxshlib') + sources = bld.path.ant_glob('taglib/*.cpp') + sources += bld.path.ant_glob('taglib/flac/*.cpp') + sources += bld.path.ant_glob('taglib/mpc/*.cpp') + sources += bld.path.ant_glob('taglib/mpeg/*.cpp') + sources += bld.path.ant_glob('taglib/mpeg/id3v1/*.cpp') + sources += bld.path.ant_glob('taglib/mpeg/id3v2/*.cpp') + sources += bld.path.ant_glob('taglib/mpeg/id3v2/frames/*.cpp') + sources += bld.path.ant_glob('taglib/ogg/*.cpp') + sources += bld.path.ant_glob('taglib/ogg/vorbis/*.cpp') + sources += bld.path.ant_glob('taglib/ogg/speex/*.cpp') + sources += bld.path.ant_glob('taglib/ogg/flac/*.cpp') + sources += bld.path.ant_glob('taglib/trueaudio/*.cpp') + sources += bld.path.ant_glob('taglib/wavpack/*.cpp') + sources += bld.path.ant_glob('taglib/ape/*.cpp') + sources += bld.path.ant_glob('taglib/toolkit/*.cpp') + obj.source = sources include_dirs = ''' taglib @@ -67,7 +63,7 @@ def build(bld): taglib/ogg/speex taglib/ogg/flac '''.split() - obj.export_incdirs = ['.', 'taglib', 'taglib/toolkit'] + obj.export_includes = ['.', 'taglib', 'taglib/toolkit'] obj.includes = include_dirs obj.name = 'libtaglib' obj.target = 'taglib' diff --git a/libs/timecode/wscript b/libs/timecode/wscript index be84a4b940..f919649e25 100644 --- a/libs/timecode/wscript +++ b/libs/timecode/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import Options import os @@ -19,10 +19,10 @@ APPNAME = 'timecode' VERSION = TIMECODE_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -32,9 +32,9 @@ def configure(conf): def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = [ 'src/time.cc', 'src/bbt_time.cc' ] - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.', './src'] obj.name = 'libtimecode' obj.target = 'timecode' diff --git a/libs/vamp-plugins/wscript b/libs/vamp-plugins/wscript index 4fde44ea34..4ec6c198b3 100644 --- a/libs/vamp-plugins/wscript +++ b/libs/vamp-plugins/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -16,10 +16,10 @@ APPNAME = 'libardourvampplugins' VERSION = LIBARDOURVAMPPLUGINS_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -27,11 +27,11 @@ def configure(conf): conf.check_tool('compiler_cxx') autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True) autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', mandatory=False) - conf.write_config_header('libvampplugins-config.h') + conf.write_config_header('libvampplugins-config.h', remove=False) def build(bld): # Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' plugins.cpp AmplitudeFollower.cpp @@ -40,12 +40,12 @@ def build(bld): SpectralCentroid.cpp ZeroCrossing.cpp ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libardourvampplugins' obj.target = 'ardourvampplugins' obj.uselib = 'FFTW3F' - obj.uselib_local = 'libvampplugin libqmdsp' + obj.use = 'libvampplugin libqmdsp' if bld.env['HAVE_AUBIO']: obj.source += ' Onset.cpp ' obj.uselib += ' AUBIO ' diff --git a/libs/vamp-sdk/wscript b/libs/vamp-sdk/wscript index 7ea25d71b2..aabac61ea1 100644 --- a/libs/vamp-sdk/wscript +++ b/libs/vamp-sdk/wscript @@ -1,5 +1,5 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) @@ -16,10 +16,10 @@ APPNAME = 'libvamp' VERSION = LIBVAMP_VERSION # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -31,7 +31,7 @@ def configure(conf): def build(bld): # Host Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' src/vamp-hostsdk/PluginHostAdapter.cpp src/vamp-hostsdk/PluginBufferingAdapter.cpp @@ -41,7 +41,7 @@ def build(bld): src/vamp-hostsdk/PluginWrapper.cpp src/vamp-hostsdk/RealTime.cpp ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libvamphost' obj.target = 'vamphost' @@ -50,12 +50,12 @@ def build(bld): obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') # Plugin Library - obj = bld.new_task_gen('cxx', 'shlib') + obj = bld(features = 'cxx cxxshlib') obj.source = ''' src/vamp-sdk/PluginAdapter.cpp src/vamp-sdk/RealTime.cpp ''' - obj.export_incdirs = ['.'] + obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libvampplugin' obj.target = 'vampplugin' diff --git a/templates/wscript b/templates/wscript index 62ed37e5a2..4e1bb0fd6b 100644 --- a/templates/wscript +++ b/templates/wscript @@ -1,10 +1,9 @@ #!/usr/bin/python import os -import glob -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' def configure(conf): pass @@ -19,14 +18,13 @@ def build(bld): subst_dict['%JACK_INPUT%'] = 'alsa_pcm:playback_' subst_dict['%JACK_OUTPUT%'] = 'alsa_pcm:capture_' - templates = glob.glob(os.path.join(bld.get_curdir(), '*.template.in')) + templates = bld.path.ant_glob('*.template.in') for t in templates: - b = os.path.basename(t) - obj = bld.new_task_gen('subst') - obj.source = [ b ] - obj.target = [ b.replace('.in', '') ] + obj = bld(features = 'subst') + obj.source = [ t ] + obj.target = [ os.path.basename(t.srcpath()).replace('.in', '') ] obj.dict = subst_dict obj.install_path = os.path.join(bld.env['DATADIR'], 'ardour3', 'templates') -def set_options(opt): +def options(opt): pass diff --git a/tools/sanity_check/wscript b/tools/sanity_check/wscript index 1ada9e4725..fdfd7cfc2c 100644 --- a/tools/sanity_check/wscript +++ b/tools/sanity_check/wscript @@ -1,13 +1,13 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import Options import os # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' -def set_options(opt): +def options(opt): autowaf.set_options(opt) def configure(conf): @@ -15,7 +15,7 @@ def configure(conf): conf.check_tool('compiler_cxx') def build(bld): - obj = bld.new_task_gen(features = 'cxx cprogram') + obj = bld(features = 'cxx cxxprogram') obj.includes = [ '.' ] obj.source = [ 'main.cpp', 'systemtest.cpp' ] obj.target = 'sanityCheck' diff --git a/waf b/waf index ce1e4b3061..c71880baa0 100755 Binary files a/waf and b/waf differ diff --git a/wscript b/wscript index 7e3a68d2be..0b4fd56282 100644 --- a/wscript +++ b/wscript @@ -1,20 +1,19 @@ #!/usr/bin/env python -import autowaf +from waflib.extras import autowaf as autowaf import Options import os import re import string import subprocess import sys -import glob # Variables for 'waf dist' VERSION = '3.0alpha10' APPNAME = 'Ardour' # Mandatory variables -srcdir = '.' -blddir = 'build' +top = '.' +out = 'build' children = [ 'libs/pbd', @@ -139,22 +138,22 @@ def set_compiler_flags (conf,opt): if config[config_arch] == 'apple': # The [.] matches to the dot after the major version, "." would match any character if re.search ("darwin[0-7][.]", config[config_kernel]) != None: - conf.define ('build_target', 'panther') + conf.env['build_target'] = 'panther' elif re.search ("darwin8[.]", config[config_kernel]) != None: - conf.define ('build_target', 'tiger') + conf.env['build_target'] = 'tiger' else: - conf.define ('build_target', 'leopard') + conf.env['build_target'] = 'leopard' else: if re.search ("x86_64", config[config_cpu]) != None: - conf.define ('build_target', 'x86_64') + conf.env['build_target'] = 'x86_64' elif re.search("i[0-5]86", config[config_cpu]) != None: - conf.define ('build_target', 'i386') + conf.env['build_target'] = 'i386' elif re.search("powerpc", config[config_cpu]) != None: - conf.define ('build_target', 'powerpc') + conf.env['build_target'] = 'powerpc' else: - conf.define ('build_target', 'i686') + conf.env['build_target'] = 'i686' else: - conf.define ('build_target', opt.dist_target) + conf.env['build_target'] = opt.dist_target if config[config_cpu] == 'powerpc' and conf.env['build_target'] != 'none': # @@ -246,7 +245,7 @@ def set_compiler_flags (conf,opt): print("\nIt is theoretically possible to build a 32 bit host on a 64 bit system.") print("However, this is tricky and not recommended for beginners.") sys.exit (-1) - + if opt.lxvst: if conf.env['build_target'] == 'x86_64': print("\n\n********************************************************") @@ -264,7 +263,7 @@ def set_compiler_flags (conf,opt): conf.define ('IS_OSX', 1) # force tiger or later, to avoid issues on PPC which defaults # back to 10.1 if we don't tell it otherwise. - conf.env.append_value('CCFLAGS', "-DMAC_OS_X_VERSION_MIN_REQUIRED=1040") + conf.env.append_value('CFLAGS', "-DMAC_OS_X_VERSION_MIN_REQUIRED=1040") else: conf.define ('IS_OSX', 0) @@ -294,11 +293,11 @@ def set_compiler_flags (conf,opt): ] if opt.debug: - conf.env.append_value('CCFLAGS', debug_flags) + conf.env.append_value('CFLAGS', debug_flags) conf.env.append_value('CXXFLAGS', debug_flags) conf.env.append_value('LINKFLAGS', debug_flags) else: - conf.env.append_value('CCFLAGS', optimization_flags) + conf.env.append_value('CFLAGS', optimization_flags) conf.env.append_value('CXXFLAGS', optimization_flags) conf.env.append_value('LINKFLAGS', optimization_flags) @@ -306,12 +305,12 @@ def set_compiler_flags (conf,opt): conf.env.append_value('CXXFLAGS', "-D_GLIBCXX_DEBUG") if conf.env['DEBUG_RT_ALLOC']: - conf.env.append_value('CCFLAGS', '-DDEBUG_RT_ALLOC') + conf.env.append_value('CFLAGS', '-DDEBUG_RT_ALLOC') conf.env.append_value('CXXFLAGS', '-DDEBUG_RT_ALLOC') conf.env.append_value('LINKFLAGS', '-ldl') if opt.universal: - conf.env.append_value('CCFLAGS', "-arch i386 -arch ppc") + conf.env.append_value('CFLAGS', "-arch i386 -arch ppc") conf.env.append_value('CXXFLAGS', "-arch i386 -arch ppc") conf.env.append_value('LINKFLAGS', "-arch i386 -arch ppc") @@ -319,21 +318,21 @@ def set_compiler_flags (conf,opt): # warnings flags # - conf.env.append_value('CCFLAGS', "-Wall") + conf.env.append_value('CFLAGS', "-Wall") conf.env.append_value('CXXFLAGS', [ '-Wall', '-Woverloaded-virtual']) if opt.extra_warn: flags = [ '-Wextra' ] - conf.env.append_value('CCFLAGS', flags ) - conf.env.append_value('CXXFLAGS', flags ) + conf.env.append_value('CFLAGS', flags) + conf.env.append_value('CXXFLAGS', flags) # # more boilerplate # - conf.env.append_value('CCFLAGS', '-D_LARGEFILE64_SOURCE') - conf.env.append_value('CCFLAGS', '-D_FILE_OFFSET_BITS=64') + conf.env.append_value('CFLAGS', '-D_LARGEFILE64_SOURCE') + conf.env.append_value('CFLAGS', '-D_FILE_OFFSET_BITS=64') conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE') conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64') @@ -342,13 +341,15 @@ def set_compiler_flags (conf,opt): if opt.nls: conf.env.append_value('CXXFLAGS', '-DENABLE_NLS') - conf.env.append_value('CCFLAGS', '-DENABLE_NLS') + conf.env.append_value('CFLAGS', '-DENABLE_NLS') #---------------------------------------------------------------- # Waf stages -def set_options(opt): +def options(opt): + opt.load('compiler_c') + opt.load('compiler_cxx') autowaf.set_options(opt) opt.add_option('--program-name', type='string', action='store', default='Ardour', dest='program_name', help='The user-visible name of the program being built') @@ -410,6 +411,8 @@ def sub_config_and_use(conf, name, has_objects = True): autowaf.set_local_lib(conf, name, has_objects) def configure(conf): + conf.load('compiler_c') + conf.load('compiler_cxx') if not Options.options.noconfirm: print ('\n\nThis is an alpha version of Ardour 3.0.\n\n' + 'You are respectfully requested NOT to ask for assistance with build issues\n' + @@ -446,20 +449,20 @@ def configure(conf): # on Darwin to add all applicable flags at once # conf.env.append_value('CXXFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') - conf.env.append_value('CCFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') + conf.env.append_value('CFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') conf.env.append_value('CXXFLAGS_OSX', '-mmacosx-version-min=10.4') - conf.env.append_value('CCFLAGS_OSX', '-mmacosx-version-min=10.4') + conf.env.append_value('CFLAGS_OSX', '-mmacosx-version-min=10.4') #conf.env.append_value('CXXFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") - #conf.env.append_value('CCFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") + #conf.env.append_value('CFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") #conf.env.append_value('LINKFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") #conf.env.append_value('LINKFLAGS_OSX', "-sysroot /Developer/SDKs/MacOSX10.4u.sdk") conf.env.append_value('CXXFLAGS_OSX', "-msse") - conf.env.append_value('CCFLAGS_OSX', "-msse") + conf.env.append_value('CFLAGS_OSX', "-msse") conf.env.append_value('CXXFLAGS_OSX', "-msse2") - conf.env.append_value('CCFLAGS_OSX', "-msse2") + conf.env.append_value('CFLAGS_OSX', "-msse2") # # TODO: The previous sse flags NEED to be based # off processor type. Need to add in a check @@ -486,14 +489,14 @@ def configure(conf): if Options.options.boost_include != '': conf.env.append_value('CPPPATH', Options.options.boost_include) - autowaf.check_header(conf, 'boost/signals2.hpp', mandatory = True) + autowaf.check_header(conf, 'cxx', 'boost/signals2.hpp', mandatory = True) if Options.options.boost_sp_debug: conf.env.append_value('CXXFLAGS', '-DBOOST_SP_ENABLE_DEBUG_HOOKS') - autowaf.check_header(conf, 'jack/session.h', define="JACK_SESSION", mandatory = False) + autowaf.check_header(conf, 'cxx', 'jack/session.h', define="JACK_SESSION", mandatory = False) - conf.check_cc(fragment = "#include \nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n", + conf.check_cxx(fragment = "#include \nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n", execute = "1", mandatory = True, msg = 'Checking for boost library >= 1.39', @@ -512,43 +515,47 @@ def configure(conf): sub_config_and_use(conf, i) # Fix utterly braindead FLAC include path to not smash assert.h - conf.env['CPPPATH_FLAC'] = [] + conf.env['INCLUDES_FLAC'] = [] conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='-ldl', uselib_store='DL') conf.check_cc(function_name='curl_global_init', header_name='curl/curl.h', linkflags='-lcurl', uselib_store='CURL') # Tell everyone that this is a waf build - conf.env.append_value('CCFLAGS', '-DWAF_BUILD') + conf.env.append_value('CFLAGS', '-DWAF_BUILD') conf.env.append_value('CXXFLAGS', '-DWAF_BUILD') - # Set up waf environment + # Set up waf environment and C defines opts = Options.options if opts.debug: opts.phone_home = False; # debug builds should not call home if opts.phone_home: conf.env['PHONE_HOME'] = opts.phone_home if opts.fpu_optimization: - conf.define('FPU_OPTIMIZATION', 1) + conf.env['FPU_OPTIMIZATION'] = True if opts.freesound: conf.define('FREESOUND',1) + conf.env['FREESOUND'] = True if opts.nls: - conf.define ('ENABLE_NLS', 1) + conf.define('ENABLE_NLS', 1) + conf.env['ENABLE_NLS'] = True if opts.build_tests: conf.env['BUILD_TESTS'] = opts.build_tests if opts.tranzport: - conf.define('TRANZPORT', 1) + conf.env['TRANZPORT'] = 1 if opts.vst: conf.define('VST_SUPPORT', 1) + conf.env['VST_SUPPORT'] = True conf.env.append_value('CPPPATH', Options.options.wine_include) - autowaf.check_header(conf, 'windows.h', mandatory = True) + autowaf.check_header(conf, 'cxx', 'windows.h', mandatory = True) if opts.lxvst: conf.define('LXVST_SUPPORT', 1) conf.env['LXVST_SUPPORT'] = True if bool(conf.env['JACK_SESSION']): conf.define ('HAVE_JACK_SESSION', 1) if opts.wiimote: - conf.define('WIIMOTE',1) + conf.define('WIIMOTE', 1) + conf.env['WIIMOTE'] = True conf.define('WINDOWS_KEY', opts.windows_key) conf.env['PROGRAM_NAME'] = opts.program_name if opts.rt_alloc_debug: @@ -601,7 +608,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('Wiimote support', opts.wiimote) write_config_text('Windows key', opts.windows_key) - write_config_text('C compiler flags', conf.env['CCFLAGS']) + write_config_text('C compiler flags', conf.env['CFLAGS']) write_config_text('C++ compiler flags', conf.env['CXXFLAGS']) config_text.write ('";\n}\n') @@ -644,11 +651,11 @@ def build(bld): 'JACK_INPUT' : 'auditioner' } - obj = bld.new_task_gen('subst') + obj = bld(features = 'subst') obj.source = 'ardour.rc.in' obj.target = 'ardour_system.rc' obj.dict = rc_subst_dict - obj.install_path = '${CONFIGDIR}/ardour3' + obj.install_path = '${SYSCONF}/ardour3' def i18n(bld): bld.recurse (i18n_children) -- cgit v1.2.3