X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=9222b98d1729c3843487cfcf4da454143952eec5;hb=226b2a526e2f175ea8f36a79ba87ce7a19ea472f;hp=82505dc74d612049fa41342bfab1ea0f31763559;hpb=e297e27b7f41707254f68a9bab8265bd38a9fde8;p=ardour.git diff --git a/wscript b/wscript index 82505dc74d..9222b98d17 100644 --- a/wscript +++ b/wscript @@ -144,7 +144,7 @@ compiler_flags_dictionaries['clang'] = clang_dict; clang_darwin_dict = compiler_flags_dictionaries['clang'].copy(); clang_darwin_dict['cxx-strict'] = [ '-ansi', '-Wnon-virtual-dtor', '-Woverloaded-virtual', ] -clang_darwin_dict['full-optimization'] = [ '-O3', '-ffast-math', '-fstrength-reduce' ] +clang_darwin_dict['full-optimization'] = [ '-O3', '-ffast-math'] compiler_flags_dictionaries['clang-darwin'] = clang_darwin_dict; def fetch_git_revision (): @@ -201,12 +201,13 @@ out = 'build' children = [ # optionally external libraries - 'libs/qm-dsp', - 'libs/vamp-plugins', - 'libs/libltc', 'libs/fluidsynth', + 'libs/hidapi', + 'libs/libltc', 'libs/lua', 'libs/ptformat', + 'libs/qm-dsp', + 'libs/vamp-plugins', # core ardour libraries 'libs/pbd', 'libs/midi++2', @@ -356,6 +357,8 @@ int main() { return 0; }''', conf.env['build_host'] = 'yosemite' elif re.search ("^15[.]", version) != None: conf.env['build_host'] = 'el_capitan' + elif re.search ("^16[.]", version) != None: + conf.env['build_host'] = 'sierra' else: conf.env['build_host'] = 'irrelevant' @@ -379,8 +382,10 @@ int main() { return 0; }''', conf.env['build_target'] = 'mavericks' elif re.search ("^14[.]", version) != None: conf.env['build_target'] = 'yosemite' - else: + elif re.search ("^15[.]", version) != None: conf.env['build_target'] = 'el_capitan' + else: + conf.env['build_target'] = 'sierra' else: match = re.search( "(?Pi[0-6]86|x86_64|powerpc|ppc|ppc64|arm|s390x?)", @@ -401,11 +406,11 @@ int main() { return 0; }''', # compiler_flags.append ('-U__STRICT_ANSI__') - if opt.use_libcpp or conf.env['build_host'] in [ 'el_capitan' ]: + if opt.use_libcpp or conf.env['build_host'] in [ 'el_capitan', 'sierra' ]: cxx_flags.append('--stdlib=libc++') linker_flags.append('--stdlib=libc++') - if conf.options.cxx11 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan' ]: + if conf.options.cxx11 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra' ]: conf.check_cxx(cxxflags=["-std=c++11"]) cxx_flags.append('-std=c++11') if platform == "darwin": @@ -413,7 +418,7 @@ int main() { return 0; }''', # from requiring a full path to requiring just the header name. cxx_flags.append('-DCARBON_FLAT_HEADERS') - if not opt.use_libcpp and not conf.env['build_host'] in [ 'el_capitan' ]: + if not opt.use_libcpp and not conf.env['build_host'] in [ 'el_capitan', 'sierra' ]: cxx_flags.append('--stdlib=libstdc++') linker_flags.append('--stdlib=libstdc++') # Prevents visibility issues in standard headers @@ -422,7 +427,7 @@ int main() { return 0; }''', cxx_flags.append('-DBOOST_NO_AUTO_PTR') - if (is_clang and platform == "darwin") or conf.env['build_host'] in ['mavericks', 'yosemite', 'el_capitan']: + if (is_clang and platform == "darwin") or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra' ]: # Silence warnings about the non-existing osx clang compiler flags # -compatibility_version and -current_version. These are Waf # generated and not needed with clang @@ -538,6 +543,11 @@ int main() { return 0; }''', ("-DMAC_OS_X_VERSION_MAX_ALLOWED=1090", "-mmacosx-version-min=10.8")) + elif conf.env['build_target'] in [ 'sierra' ]: + compiler_flags.extend( + ("-DMAC_OS_X_VERSION_MAX_ALLOWED=1090", + "-mmacosx-version-min=10.9")) + # # save off CPU element in an env # @@ -575,7 +585,7 @@ int main() { return 0; }''', if opt.stl_debug: cxx_flags.append("-D_GLIBCXX_DEBUG") - if re.search ("freebsd", sys.platform) != None: + if re.search ("freebsd", sys.platform) != None or re.search ("openbsd", sys.platform) != None: linker_flags.append('-lexecinfo') if conf.env['DEBUG_RT_ALLOC']: @@ -706,8 +716,12 @@ def options(opt): help='Build internal libs as static libraries') opt.add_option('--use-external-libs', action='store_true', default=False, dest='use_external_libs', help='Use external/system versions of some bundled libraries') + opt.add_option('--keepflags', action='store_true', default=False, dest='keepflags', + help='Do not ignore CFLAGS/CXXFLAGS environment vars') opt.add_option('--luadoc', action='store_true', default=False, dest='luadoc', help='Compile Tool to dump LuaBindings (needs C++11)') + opt.add_option('--canvasui', action='store_true', default=False, dest='canvasui', + help='Compile libcanvas test GUI') opt.add_option('--lv2', action='store_true', default=True, dest='lv2', help='Compile with support for LV2 (if Lilv+Suil is available)') opt.add_option('--no-lv2', action='store_false', dest='lv2', @@ -773,6 +787,10 @@ def options(opt): help='Turn on PT session import option') opt.add_option('--no-threaded-waveviews', action='store_true', default=False, dest='no_threaded_waveviews', help='Disable threaded waveview rendering') + opt.add_option( + '--qm-dsp-include', type='string', action='store', + dest='qm_dsp_include', default='/usr/include/qm-dsp', + help='directory where the header files of qm-dsp can be found') for i in children: opt.recurse(i) @@ -792,7 +810,7 @@ def configure(conf): conf.env['MSVC_TARGETS'] = ['x64'] conf.load('msvc') - if Options.options.debug: + if Options.options.debug and not Options.options.keepflags: # Nuke user CFLAGS/CXXFLAGS if debug is set (they likely contain -O3, NDEBUG, etc) conf.env['CFLAGS'] = [] conf.env['CXXFLAGS'] = [] @@ -876,6 +894,9 @@ def configure(conf): conf.define ('HAVE_COREAUDIO', 1) conf.define ('AUDIOUNIT_SUPPORT', 1) + if not Options.options.ppc: + conf.define('MACVST_SUPPORT', 1) + conf.define ('TOP_MENUBAR',1) # It would be nice to be able to use this to force back-compatibility with 10.4 @@ -924,6 +945,10 @@ def configure(conf): print ('No Carbon support available for this build\n') + if Options.options.canvasui: + conf.env['CANVASTESTUI'] = True + conf.define ('CANVASTESTUI', 1) + if Options.options.luadoc: conf.env['LUABINDINGDOC'] = True conf.define ('LUABINDINGDOC', 1) @@ -933,6 +958,8 @@ def configure(conf): if Options.options.use_external_libs: conf.define('USE_EXTERNAL_LIBS', 1) + conf.env.append_value( + 'CXXFLAGS', '-I' + Options.options.qm_dsp_include) if Options.options.boost_include != '': conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include) @@ -949,7 +976,7 @@ def configure(conf): # executing a test program is n/a when cross-compiling if Options.options.dist_target != 'mingw': - if Options.options.dist_target != 'msvc': + if Options.options.dist_target != 'msvc' and re.search ("openbsd", sys.platform) == None: if re.search ("freebsd", sys.platform) != None: conf.check_cc(function_name='dlopen', header_name='dlfcn.h', uselib_store='DL') else: @@ -964,6 +991,9 @@ def configure(conf): if re.search ("linux", sys.platform) != None and Options.options.dist_target != 'mingw': autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA') + if re.search ("openbsd", sys.platform) != None: + conf.env.append_value('LDFLAGS', '-L/usr/X11R6/lib') + autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.28', mandatory=True) autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.2', mandatory=True) autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.32.0', mandatory=True) @@ -1125,8 +1155,10 @@ int main () { return 0; } if opts.no_threaded_waveviews: conf.define('NO_THREADED_WAVEVIEWS', 1) conf.env['NO_THREADED_WAVEVIEWS'] = True - + backends = opts.with_backends.split(',') + if opts.build_tests and 'dummy' not in backends: + backends += ['dummy'] if not backends: print("Must configure and build at least one backend") @@ -1155,6 +1187,8 @@ int main () { return 0; } if sys.platform == 'darwin': sub_config_and_use(conf, 'libs/appleutility') + elif re.search ("openbsd", sys.platform) != None: + pass elif Options.options.dist_target != 'mingw': sub_config_and_use(conf, 'tools/sanity_check') sub_config_and_use(conf, 'tools/gccabicheck') @@ -1194,6 +1228,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('AudioUnits', conf.is_defined('AUDIOUNIT_SUPPORT')) write_config_text('Free/Demo copy', conf.is_defined('FREEBIE')) write_config_text('Build target', conf.env['build_target']) + write_config_text('Canvas Test UI', conf.is_defined('CANVASTESTUI')) write_config_text('CoreAudio', conf.is_defined('HAVE_COREAUDIO')) write_config_text('CoreAudio 10.5 compat', conf.is_defined('COREAUDIO105')) write_config_text('Debug RT allocations', conf.is_defined('DEBUG_RT_ALLOC')) @@ -1222,6 +1257,7 @@ const char* const ardour_config_info = "\\n\\ write_config_text('Unit tests', conf.env['BUILD_TESTS']) write_config_text('Mac i386 Architecture', opts.generic) write_config_text('Mac ppc Architecture', opts.ppc) + write_config_text('Mac VST support', conf.is_defined('MACVST_SUPPORT')) 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) @@ -1279,6 +1315,8 @@ def build(bld): if sys.platform == 'darwin': bld.recurse('libs/appleutility') + elif re.search ("openbsd", sys.platform) != None: + pass elif bld.env['build_target'] != 'mingw': bld.recurse('tools/sanity_check') bld.recurse('tools/gccabicheck') @@ -1311,3 +1349,7 @@ def tarball(bld): def test(bld): subprocess.call("gtk2_ardour/artest") + +def help2man(bld): + cmd = "help2man -s 1 -N -o ardour.1 -n Ardour --version-string='Ardour %s' gtk2_ardour/ardev" % PROGRAM_VERSION + subprocess.call(cmd, shell=True)