import sys
import platform as PLATFORM
from waflib.Tools import winres
-
+from waflib.Build import Context
from waflib.Build import BuildContext
+
class i18n(BuildContext):
cmd = 'i18n'
fun = 'i18n'
cmd = 'i18n_mo'
fun = 'i18n_mo'
+def is_tracks_build(self, *k, **kw):
+ return self.env['PROGRAM_NAME'] == 'Tracks Live'
+
+Context.Context.is_tracks_build = is_tracks_build
compiler_flags_dictionaries= {
'gcc' : {
'ultra-strict' : ['-Wredundant-decls', '-Wstrict-prototypes', '-Wmissing-prototypes'],
# Flag to turn on C99 compliance by itself
'c99': '-std=c99',
- # Flag to enable AT&T assembler syntax
- 'attasm': 'asm=att',
+ # Flag to enable AT&T assembler syntax
+ 'attasm': '-masm=att',
},
'msvc' : {
'debuggable' : ['/DDEBUG', '/Od', '/Zi', '/MDd', '/Gd', '/EHsc'],
if sys.platform == 'darwin':
compiler_flags.append("-DBUILD_VECLIB_OPTIMIZATIONS");
conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'Accelerate'])
- elif conf.env['build_target'] == 'i686' or conf.env['build_target'] == 'x86_64' or (conf.env['build_target'] == 'mingw' and build_host_supports_sse):
- compiler_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
+ elif conf.env['build_target'] == 'i686' or conf.env['build_target'] == 'x86_64':
+ compiler_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
+ elif conf.env['build_target'] == 'mingw':
+ # usability of the 64 bit windows assembler depends on the compiler target,
+ # not the build host, which in turn can only be inferred from the name
+ # of the compiler.
+ if re.search ('/^x86_64/', str(conf.env['CC'])):
+ compiler_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
if not build_host_supports_sse:
print("\nWarning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)")
compiler_flags.append ('-DPROGRAM_NAME="' + Options.options.program_name + '"')
compiler_flags.append ('-DPROGRAM_VERSION="' + PROGRAM_VERSION + '"')
+ conf.env['PROGRAM_NAME'] = Options.options.program_name
+
if opt.debug:
conf.env.append_value('CFLAGS', debug_flags)
conf.env.append_value('CXXFLAGS', debug_flags)
conf.env.append_value('CXXFLAGS', cxx_flags)
conf.env.append_value('LINKFLAGS', linker_flags)
+def is_tracks_build (conf):
+ return conf.env['PROGRAM_NAME'] == 'Tracks Live'
+
#----------------------------------------------------------------
# Waf stages
autowaf.set_options(opt, debug_by_default=True)
opt.add_option('--program-name', type='string', action='store', default='Ardour', dest='program_name',
help='The user-visible name of the program being built')
- opt.add_option ('--trx', action='store_true', default=False, dest='trx_build',
- help='Whether to build for TRX')
opt.add_option('--arch', type='string', action='store', dest='arch',
help='Architecture-specific compiler FLAGS')
opt.add_option('--with-backends', type='string', action='store', default='jack', dest='with_backends',
help='Compile for use with gprofile')
opt.add_option('--libjack', type='string', default="auto", dest='libjack_link',
help='libjack link mode [auto|link|weak]')
- opt.add_option('--no-jack-metadata', action='store_false', default=True, dest='libjack_meta',
- help='disable support for jack metadata')
opt.add_option('--internal-shared-libs', action='store_true', default=True, dest='internal_shared_libs',
help='Build internal libs as shared libraries')
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
conf.env['VERSION'] = VERSION
conf.env['MAJOR'] = MAJOR
conf.env['MINOR'] = MINOR
+ conf.env['MICRO'] = MICRO
conf.line_just = 52
autowaf.set_recursive()
autowaf.configure(conf)
conf.env.append_value ('CXXFLAGS', '-DSILENCE_AFTER')
conf.define ('FREEBIE', 1)
- if Options.options.trx_build:
- conf.define ('TRX_BUILD', 1)
-
if Options.options.lv2dir:
conf.env['LV2DIR'] = Options.options.lv2dir
else:
lib='regex', uselib_store="REGEX", define_name='HAVE_REGEX_H')
# TODO put this only where it is needed
conf.env.append_value('LIB', 'regex')
-
+ # TODO this should only be necessary for a debug build
+ conf.env.append_value('LIB', 'dbghelp')
+
# work around GdkDrawable BitBlt performance issue on windows
# see http://gareus.org/wiki/ardour_windows_gdk_and_cairo
conf.env.append_value('CFLAGS', '-DUSE_CAIRO_IMAGE_SURFACE')
autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=True)
backends = opts.with_backends.split(',')
+
if not backends:
print("Must configure and build at least one backend")
sys.exit(1)
+ if conf.is_tracks_build():
+ # For Tracks, override backends on OS X or Windows
+ if sys.platform == 'darwin' or sys.platform == 'mingw' or sys.platform == 'msvc':
+ backends = [ 'wavesaudio' ]
+
conf.env['BACKENDS'] = backends
conf.env['BUILD_JACKBACKEND'] = any('jack' in b for b in backends)
conf.env['BUILD_ALSABACKEND'] = any('alsa' in b for b in backends)
print("ALSA Backend is only available on Linux")
sys.exit(1)
-
set_compiler_flags (conf, Options.options)
if sys.platform == 'darwin':
write_config_text('Freedesktop files', opts.freedesktop)
write_config_text('JACK Backend', conf.env['BUILD_JACKBACKEND'])
write_config_text('Libjack linking', conf.env['libjack_link'])
- write_config_text('Libjack metadata', not conf.is_defined('NO_JACK_METADATA'))
+ write_config_text('Libjack metadata', conf.is_defined ('HAVE_JACK_METADATA'))
write_config_text('LV2 UI embedding', conf.is_defined('HAVE_SUIL'))
write_config_text('LV2 support', conf.is_defined('LV2_SUPPORT'))
write_config_text('LXVST support', conf.is_defined('LXVST_SUPPORT'))
# set up target directories
lwrcase_dirname = 'ardour' + bld.env['MAJOR']
- if bld.is_defined ('TRX_BUILD'):
- lwrcase_dirname = 'trx'
-
+ if bld.is_tracks_build():
+ bld.env.append_value ('CXXFLAGS', '-DUSE_TRACKS_CODE_FEATURES')
+ bld.env.append_value ('CFLAGS', '-DUSE_TRACKS_CODE_FEATURES')
+ lwrcase_dirname = 'trx'
+
# configuration files go here
bld.env['CONFDIR'] = os.path.join(bld.env['SYSCONFDIR'], lwrcase_dirname)
# data files loaded at run time go here