X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=92b6383fefbacf9ceb0f0ededa9410016b5444d4;hb=fe980b5c995648c73ecbe1b4b9a71595c6a3327b;hp=eb0f100edfd3b41d380b3cd65eea67c64a5c319b;hpb=3b566446b2bdc751e276ae4a9cf6eead95dbcd62;p=ardour.git diff --git a/wscript b/wscript index eb0f100edf..92b6383fef 100644 --- a/wscript +++ b/wscript @@ -8,7 +8,7 @@ import subprocess import sys # Variables for 'waf dist' -VERSION = '3.0beta5' +VERSION = '3.0rc1' APPNAME = 'Ardour3' # Mandatory variables @@ -23,6 +23,7 @@ children = [ 'libs/qm-dsp', 'libs/vamp-plugins', 'libs/taglib', + 'libs/libltc', 'libs/rubberband', 'libs/surfaces', 'libs/panners', @@ -45,18 +46,20 @@ i18n_children = [ 'libs/gtkmm2ext', ] -if sys.platform != 'darwin': +if sys.platform == 'linux2': children += [ 'tools/sanity_check' ] lxvst_default = True -else: +elif sys.platform == 'darwin': children += [ 'libs/appleutility' ] lxvst_default = False +else: + lxvst_default = False # Version stuff def fetch_svn_revision (path): - cmd = "LANG= svn info " + path + " | awk '/^Revision:/ { print $2}'" - return subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + cmd = "svnversion | cut -d: -f1" + return subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].rstrip(os.linesep) def fetch_gcc_version (CC): cmd = "LANG= %s --version" % CC @@ -107,7 +110,7 @@ def create_stored_revision(): try: text = '#include "ardour/svn_revision.h"\n' text += 'namespace ARDOUR { const char* svn_revision = \"%s\"; }\n' % rev - print('Writing svn revision info to libs/ardour/svn_revision.cc') + print('Writing svn revision info to libs/ardour/svn_revision.cc using ', rev) o = open('libs/ardour/svn_revision.cc', 'w') o.write(text) o.close() @@ -162,6 +165,14 @@ def set_compiler_flags (conf,opt): else: conf.env['build_target'] = opt.dist_target + if conf.env['build_target'] == 'snowleopard': + # + # stupid OS X 10.6 has a bug in math.h that prevents llrint and friends + # from being visible. + # + debug_flags.append ('-U__STRICT_ANSI__') + optimization_flags.append ('-U__STRICT_ANSI__') + if cpu == 'powerpc' and conf.env['build_target'] != 'none': # # Apple/PowerPC optimization options @@ -334,8 +345,20 @@ def set_compiler_flags (conf,opt): # warnings flags # - conf.env.append_value('CFLAGS', "-Wall") - conf.env.append_value('CXXFLAGS', [ '-Wall', '-Woverloaded-virtual']) + conf.env.append_value('CFLAGS', [ '-Wall', + '-Wpointer-arith', + '-Wcast-qual', + '-Wcast-align', + '-Wstrict-prototypes', + '-Wmissing-prototypes' + ]) + + conf.env.append_value('CXXFLAGS', [ '-Wall', + '-Wpointer-arith', + '-Wcast-qual', + '-Wcast-align', + '-Woverloaded-virtual' + ]) # @@ -415,8 +438,6 @@ def options(opt): help='Add revision information to executable name inside the build directory') opt.add_option('--windows-vst', action='store_true', default=False, dest='windows_vst', help='Compile with support for Windows VST') - opt.add_option('--wiimote', action='store_true', default=False, dest='wiimote', - help='Build the wiimote control surface') opt.add_option('--windows-key', type='string', action='store', dest='windows_key', default='Mod4><\'') @@ -458,13 +479,31 @@ def configure(conf): # the library itself is part of glibc, or on a bare-bones build system # where we need to pick it up from the GTK dependency stack. # - if not os.path.isfile ('/usr/include/libintl.h'): + user_gtk_root = os.path.expanduser ('~/gtk/inst') + pkg_config_path = os.getenv('PKG_CONFIG_PATH') + if not os.path.isfile ('/usr/include/libintl.h') or (pkg_config_path is not None and pkg_config_path.find (user_gtk_root) >= 0): + # XXXX hack hack hack + prefinclude = ''.join ([ '-I', user_gtk_root + '/include']) + preflib = ''.join ([ '-L', user_gtk_root + '/lib']) + conf.env.append_value('CFLAGS', [ prefinclude ]) + conf.env.append_value('CXXFLAGS', [prefinclude ]) + conf.env.append_value('LINKFLAGS', [ preflib ]) + conf.define ('NEED_INTL', 1) + autowaf.display_msg(conf, 'Will use explicit linkage against libintl in ' + user_gtk_root, 'yes') + else: + autowaf.display_msg(conf, 'Will use explicit linkage against libintl in ', 'no') + + user_ardour_root = os.path.expanduser ('~/a3/inst') + if pkg_config_path is not None and os.getenv('PKG_CONFIG_PATH').find (user_ardour_root) >= 0: # XXXX hack hack hack - prefinclude = ''.join ([ '-I', os.path.expanduser ('~/gtk/inst/include') ]) - preflib = ''.join ([ '-L', os.path.expanduser ('~/gtk/inst/lib') ]) + prefinclude = ''.join ([ '-I', user_ardour_root + '/include']) + preflib = ''.join ([ '-L', user_ardour_root + '/lib']) conf.env.append_value('CFLAGS', [ prefinclude ]) conf.env.append_value('CXXFLAGS', [prefinclude ]) conf.env.append_value('LINKFLAGS', [ preflib ]) + autowaf.display_msg(conf, 'Will build against private Ardour dependency stack in ' + user_ardour_root, 'yes') + else: + autowaf.display_msg(conf, 'Will build against private Ardour dependency stack', 'no') if sys.platform == 'darwin': @@ -561,7 +600,7 @@ def configure(conf): 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') - conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='-ldl', uselib_store='DL') + conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL') # Tell everyone that this is a waf build @@ -597,9 +636,6 @@ def configure(conf): 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.env['WIIMOTE'] = True conf.define('WINDOWS_KEY', opts.windows_key) conf.env['PROGRAM_NAME'] = opts.program_name if opts.rt_alloc_debug: @@ -668,11 +704,12 @@ const char* const ardour_config_info = "\\n\\ 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', opts.wiimote) + 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 () @@ -687,6 +724,7 @@ def build(bld): bld.path.find_dir ('libs/vamp-sdk/vamp-sdk') bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol') bld.path.find_dir ('libs/timecode/timecode') + bld.path.find_dir ('libs/libltc/ltc') bld.path.find_dir ('libs/rubberband/rubberband') bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext') bld.path.find_dir ('libs/ardour/ardour') @@ -698,28 +736,7 @@ def build(bld): for i in children: bld.recurse(i) - # ideally, we'd like to use the OS-provided MIDI API - # for default ports. that doesn't work on at least - # Fedora (Nov 9th, 2009) so use JACK MIDI on linux. - - if sys.platform == 'darwin': - rc_subst_dict = { - 'MIDITAG' : 'control', - 'MIDITYPE' : 'coremidi', - 'JACK_INPUT' : 'auditioner' - } - else: - rc_subst_dict = { - 'MIDITAG' : 'control', - 'MIDITYPE' : 'jack', - 'JACK_INPUT' : 'auditioner' - } - - obj = bld(features = 'subst') - obj.source = 'ardour.rc.in' - obj.target = 'ardour_system.rc' - obj.dict = rc_subst_dict - obj.install_path = '${SYSCONFDIR}/ardour3' + bld.install_files (os.path.join(bld.env['SYSCONFDIR'], 'ardour3', ), 'ardour_system.rc') def i18n(bld): bld.recurse (i18n_children)