+ if re.search ("^[1-9][0-9]\.", os.uname()[2]) == None and not Options.options.nocarbon:
+ conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DWITH_CARBON")
+ conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Carbon'])
+ else:
+ print ('No Carbon support available for this build\n')
+
+
+ if Options.options.internal_shared_libs:
+ conf.define('INTERNAL_SHARED_LIBS', 1)
+
+ if Options.options.boost_include != '':
+ conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
+
+ if Options.options.also_include != '':
+ conf.env.append_value('CXXFLAGS', '-I' + Options.options.also_include)
+ conf.env.append_value('CFLAGS', '-I' + Options.options.also_include)
+
+ if Options.options.also_libdir != '':
+ conf.env.append_value('LDFLAGS', '-L' + Options.options.also_libdir)
+
+ if Options.options.boost_sp_debug:
+ conf.env.append_value('CXXFLAGS', '-DBOOST_SP_ENABLE_DEBUG_HOOKS')
+
+ autowaf.check_header(conf, 'cxx', 'jack/session.h', define="JACK_SESSION", mandatory = False)
+
+ 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',
+ okmsg = 'ok',
+ errmsg = 'too old\nPlease install boost version 1.39 or higher.')
+
+ autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2')
+ autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.2')
+ autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.32.0')
+ autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18')
+ autowaf.check_pkg(conf, 'giomm-2.4', uselib_store='GIOMM', atleast_version='2.2')
+ autowaf.check_pkg(conf, 'libcurl', uselib_store='CURL', atleast_version='7.0.0')
+ autowaf.check_pkg(conf, 'liblo', uselib_store='LO', atleast_version='0.26')
+
+ conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
+
+ # Tell everyone that this is a waf build
+
+ conf.env.append_value('CFLAGS', '-DWAF_BUILD')
+ conf.env.append_value('CXXFLAGS', '-DWAF_BUILD')
+
+ # Set up waf environment and C defines
+ opts = Options.options
+ if opts.phone_home:
+ conf.define('PHONE_HOME', 1)
+ conf.env['PHONE_HOME'] = True
+ if opts.fpu_optimization:
+ 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.env['ENABLE_NLS'] = True
+ if opts.build_tests:
+ conf.env['BUILD_TESTS'] = opts.build_tests
+ if opts.single_tests:
+ conf.env['SINGLE_TESTS'] = opts.single_tests
+ #if opts.tranzport:
+ # conf.env['TRANZPORT'] = 1
+ 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 opts.lxvst:
+ conf.define('LXVST_SUPPORT', 1)
+ conf.env['LXVST_SUPPORT'] = True
+ if bool(conf.env['JACK_SESSION']):
+ conf.define('HAVE_JACK_SESSION', 1)
+ 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
+ if opts.pt_timing:
+ conf.define('PT_TIMING', 1)
+ conf.env['PT_TIMING'] = True
+ if opts.denormal_exception:
+ conf.define('DEBUG_DENORMAL_EXCEPTION', 1)
+ conf.env['DEBUG_DENORMAL_EXCEPTION'] = True
+ if opts.build_tests:
+ autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=True)
+
+ set_compiler_flags (conf, Options.options)
+
+ for i in children:
+ sub_config_and_use(conf, i)
+
+ # Fix utterly braindead FLAC include path to not smash assert.h
+ conf.env['INCLUDES_FLAC'] = []
+
+ config_text = open('libs/ardour/config_text.cc', "w")
+ config_text.write('''#include "ardour/ardour.h"
+namespace ARDOUR {
+const char* const ardour_config_info = "\\n\\
+''')
+
+ def write_config_text(title, val):
+ autowaf.display_msg(conf, title, val)
+ config_text.write(title + ': ')
+ config_text.write(str(val))
+ config_text.write("\\n\\\n")
+
+ write_config_text('Build documentation', conf.env['DOCS'])
+ write_config_text('Debuggable build', conf.env['DEBUG'])
+ write_config_text('Export all symbols (backtrace)', opts.backtrace)
+ write_config_text('Install prefix', conf.env['PREFIX'])
+ write_config_text('Strict compiler flags', conf.env['STRICT'])
+ write_config_text('Internal Shared Libraries', conf.is_defined('INTERNAL_SHARED_LIBS'))
+
+ write_config_text('Architecture flags', opts.arch)
+ write_config_text('Aubio', conf.is_defined('HAVE_AUBIO'))
+ write_config_text('AudioUnits', conf.is_defined('AUDIOUNIT_SUPPORT'))
+ write_config_text('No plugin state', conf.is_defined('NO_PLUGIN_STATE'))
+ write_config_text('Build target', conf.env['build_target'])
+ write_config_text('CoreAudio', conf.is_defined('HAVE_COREAUDIO'))
+ write_config_text('Debug RT allocations', conf.is_defined('DEBUG_RT_ALLOC'))
+ write_config_text('Process thread timing', conf.is_defined('PT_TIMING'))
+ write_config_text('Denormal exceptions', conf.is_defined('DEBUG_DENORMAL_EXCEPTION'))
+ write_config_text('FLAC', conf.is_defined('HAVE_FLAC'))
+ write_config_text('FPU optimization', opts.fpu_optimization)
+ write_config_text('Freedesktop files', opts.freedesktop)
+ write_config_text('Freesound', opts.freesound)
+ write_config_text('JACK session support', conf.is_defined('JACK_SESSION'))
+ 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'))
+ write_config_text('OGG', conf.is_defined('HAVE_OGG'))
+ write_config_text('Phone home', conf.is_defined('PHONE_HOME'))
+ write_config_text('Program name', opts.program_name)
+ write_config_text('Rubberband', conf.is_defined('HAVE_RUBBERBAND'))
+ write_config_text('Samplerate', conf.is_defined('HAVE_SAMPLERATE'))
+# write_config_text('Soundtouch', conf.is_defined('HAVE_SOUNDTOUCH'))
+ write_config_text('Translation', opts.nls)
+# write_config_text('Tranzport', opts.tranzport)
+ write_config_text('Unit tests', conf.env['BUILD_TESTS'])
+ write_config_text('Universal binary', opts.universal)
+ write_config_text('Generic x86 CPU', opts.generic)
+ write_config_text('Windows VST support', opts.windows_vst)
+ write_config_text('Wiimote support', conf.is_defined('BUILD_WIIMOTE'))
+ write_config_text('Windows key', opts.windows_key)
+
+ write_config_text('C compiler flags', conf.env['CFLAGS'])
+ write_config_text('C++ compiler flags', conf.env['CXXFLAGS'])
+ write_config_text('Linker flags', conf.env['LINKFLAGS'])
+
+ config_text.write ('";\n}\n')
+ config_text.close ()
+ print('')