'midi_maps',
'mcp',
'patchfiles',
+ 'headless',
+ # shared helper binaries (plugin-scanner, exec-wrapper)
+ 'libs/fst',
+ 'libs/vfork',
]
i18n_children = [
if opt.gprofile:
debug_flags = [ '-pg' ]
- if opt.backtrace:
- if opt.dist_target == 'auto':
- if platform != 'darwin' and not is_clang:
- debug_flags = [ '-rdynamic' ]
-
# Autodetect
if opt.dist_target == 'auto':
if platform == 'darwin':
if opt.nls:
compiler_flags.append('-DENABLE_NLS')
+ compiler_flags.append ('-DPROGRAM_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('CFLAGS', optimization_flags)
conf.env.append_value('CXXFLAGS', optimization_flags)
+ if opt.backtrace:
+ if platform != 'darwin' and not is_clang and not Options.options.dist_target == 'mingw':
+ linker_flags += [ '-rdynamic' ]
+
conf.env.append_value('CFLAGS', compiler_flags)
conf.env.append_value('CFLAGS', c_flags)
conf.env.append_value('CXXFLAGS', compiler_flags)
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('--backtrace', action='store_true', default=True, dest='backtrace',
opt.add_option('--fpu-optimization', action='store_true', default=True, dest='fpu_optimization',
help='Build runtime checked assembler code (default)')
opt.add_option('--no-fpu-optimization', action='store_false', dest='fpu_optimization')
+ opt.add_option('--exports-hidden', action='store_true', default=False, dest='exports_hidden')
opt.add_option('--freedesktop', action='store_true', default=False, dest='freedesktop',
help='Install MIME type, icons and .desktop file as per freedesktop.org standards')
opt.add_option('--freebie', action='store_true', default=False, dest='freebie',
conf.env.append_value ('CXXFLAGS', '-DNO_PLUGIN_STATE')
conf.define ('NO_PLUGIN_STATE', 1)
+ if Options.options.trx_build:
+ conf.define ('TRX_BUILD', 1)
+
if Options.options.lv2dir:
conf.env['LV2DIR'] = Options.options.lv2dir
else:
if Options.options.boost_sp_debug:
conf.env.append_value('CXXFLAGS', '-DBOOST_SP_ENABLE_DEBUG_HOOKS')
- conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
+ # executing a test program is n/a when cross-compiling
+ if Options.options.dist_target != 'mingw':
+ conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
execute = "1",
mandatory = True,
msg = 'Checking for boost library >= 1.39',
conf.env.append_value('CFLAGS', '-DCOMPILER_MINGW')
conf.env.append_value('CXXFLAGS', '-DPLATFORM_WINDOWS')
conf.env.append_value('CXXFLAGS', '-DCOMPILER_MINGW')
- conf.env.append_value('LIB', 'pthreadGC2')
+ conf.env.append_value('LIB', 'pthread')
# needed for at least libsmf
conf.check_cc(function_name='htonl', header_name='winsock2.h', lib='ws2_32')
conf.env.append_value('LIB', 'ws2_32')
opts = Options.options
- # Adopt Microsoft-like convention that makes all non-explicitly exported
+ # (optionally) Adopt Microsoft-like convention that makes all non-explicitly exported
# symbols invisible (rather than doing this all over the wscripts in the src tree)
#
# This won't apply to MSVC but that hasn't been added as a target yet
#
# We can't do this till all tests are complete, since some fail if this is et.
- if opts.internal_shared_libs:
- conf.env.append_value ('CXXFLAGS', '-fvisibility=hidden')
- conf.env.append_value ('CFLAGS', '-fvisibility=hidden')
+ if opts.exports_hidden:
+ conf.define ('EXPORT_VISIBILITY_HIDDEN', True)
+ if opts.internal_shared_libs:
+ conf.env.append_value ('CXXFLAGS', '-fvisibility=hidden')
+ conf.env.append_value ('CFLAGS', '-fvisibility=hidden')
+ else:
+ conf.define ('EXPORT_VISIBILITY_HIDDEN', False)
# Set up waf environment and C defines
if opts.phone_home:
if opts.windows_vst:
conf.define('WINDOWS_VST_SUPPORT', 1)
conf.env['WINDOWS_VST_SUPPORT'] = True
- conf.env.append_value('CFLAGS', '-I' + Options.options.wine_include)
- conf.env.append_value('CXXFLAGS', '-I' + Options.options.wine_include)
- autowaf.check_header(conf, 'cxx', 'windows.h', mandatory = True)
+ if not Options.options.dist_target == 'mingw':
+ conf.env.append_value('CFLAGS', '-I' + Options.options.wine_include)
+ conf.env.append_value('CXXFLAGS', '-I' + Options.options.wine_include)
+ autowaf.check_header(conf, 'cxx', 'windows.h', mandatory = True)
if opts.lxvst:
if sys.platform == 'darwin':
conf.env['LXVST_SUPPORT'] = False
conf.define('LXVST_SUPPORT', 1)
conf.env['LXVST_SUPPORT'] = True
conf.define('WINDOWS_KEY', opts.windows_key)
- conf.env['PROGRAM_NAME'] = opts.program_name
if opts.rt_alloc_debug:
conf.define('DEBUG_RT_ALLOC', 1)
conf.env['DEBUG_RT_ALLOC'] = True
def write_config_text(title, val):
autowaf.display_msg(conf, title, val)
config_text.write(title + ': ')
- config_text.write(str(val))
+ config_text.write(str(val).replace ('"', '\\"'))
config_text.write("\\n\\\n")
write_config_text('Build documentation', conf.env['DOCS'])
write_config_text('Strict compiler flags', conf.env['STRICT'])
write_config_text('Internal Shared Libraries', conf.is_defined('INTERNAL_SHARED_LIBS'))
write_config_text('Use External Libraries', conf.is_defined('USE_EXTERNAL_LIBS'))
+ write_config_text('Library exports hidden', conf.is_defined('EXPORT_VISIBILITY_HIDDEN'))
write_config_text('Architecture flags', opts.arch)
write_config_text('Aubio', conf.is_defined('HAVE_AUBIO'))
bld.path.find_dir ('libs/ardour/ardour')
bld.path.find_dir ('libs/pbd/pbd')
+ # set up target directories
+ lwrcase_dirname = 'ardour3'
+
+ if bld.is_defined ('TRX_BUILD'):
+ 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
+ bld.env['DATADIR'] = os.path.join(bld.env['DATADIR'], lwrcase_dirname)
+ # shared objects loaded at runtime go here (two aliases)
+ bld.env['DLLDIR'] = os.path.join(bld.env['LIBDIR'], lwrcase_dirname)
+ bld.env['LIBDIR'] = bld.env['DLLDIR']
+
autowaf.set_recursive()
if sys.platform == 'darwin':
for i in children:
bld.recurse(i)
- bld.install_files (os.path.join(bld.env['SYSCONFDIR'], 'ardour3', ), 'ardour_system.rc')
+ bld.install_files (bld.env['SYSCONFDIR'], 'ardour_system.rc')
if bld.env['RUN_TESTS']:
bld.add_post_fun(test)