import sys
# Variables for 'waf dist'
-VERSION = '3.0beta3'
+VERSION = '3.0beta5'
APPNAME = 'Ardour3'
# Mandatory variables
if "git-svn-id" in line:
line = line.split('@')[1].split(' ')
rev = line[0]
+ break
except:
pass
return rev
platform = u[0].lower()
version = u[2]
+ is_clang = conf.env['CXX'][0].endswith('clang++')
if opt.gprofile:
debug_flags = [ '-pg' ]
else:
- if platform != 'darwin':
+ if platform != 'darwin' and not is_clang:
debug_flags = [ '-rdynamic' ] # waf adds -O0 -g itself. thanks waf!
# Autodetect
elif cpu == "i686":
optimization_flags.append ("-march=i686")
- if ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse:
+ if not is_clang and ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse:
optimization_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
# 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'
+ ])
#
# more boilerplate
#
+ conf.env.append_value('CFLAGS', '-DBOOST_SYSTEM_NO_DEPRECATED')
+ conf.env.append_value('CXXFLAGS', '-DBOOST_SYSTEM_NO_DEPRECATED')
conf.env.append_value('CFLAGS', '-D_LARGEFILE64_SOURCE')
conf.env.append_value('CFLAGS', '-D_FILE_OFFSET_BITS=64')
conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE')
help='Raise a floating point exception if a denormal is detected')
opt.add_option('--test', action='store_true', default=False, dest='build_tests',
help="Build unit tests")
- opt.add_option('--tranzport', action='store_true', default=False, dest='tranzport',
- help='Compile with support for Frontier Designs Tranzport (if libusb is available)')
+ #opt.add_option('--tranzport', action='store_true', default=False, dest='tranzport',
+ # help='Compile with support for Frontier Designs Tranzport (if libusb is available)')
opt.add_option('--universal', action='store_true', default=False, dest='universal',
help='Compile as universal binary (OS X ONLY, requires that external libraries are universal)')
opt.add_option('--generic', action='store_true', default=False, dest='generic',
def configure(conf):
conf.load('compiler_c')
conf.load('compiler_cxx')
- if not Options.options.noconfirm:
- print ('\n\nThis is a beta version of Ardour 3.0.\n\n' +
- 'You are respectfully requested NOT to ask for assistance with build issues\n' +
- 'and not to report issues with Ardour 3.0 on the forums at ardour.org.\n\n' +
- 'Please use IRC, the bug tracker and/or the ardour mailing lists (-dev or -user)\n\n' +
- 'Thanks for your co-operation with our development process.\n\n' +
- 'Press Enter to continue.\n')
- sys.stdin.readline()
conf.env['VERSION'] = VERSION
conf.line_just = 52
autowaf.set_recursive()
# 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':
okmsg = 'ok',
errmsg = 'too old\nPlease install boost version 1.39 or higher.')
- autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
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.14.0')
+ 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')
conf.env['ENABLE_NLS'] = True
if opts.build_tests:
conf.env['BUILD_TESTS'] = opts.build_tests
- if opts.tranzport:
- conf.env['TRANZPORT'] = 1
+ #if opts.tranzport:
+ # conf.env['TRANZPORT'] = 1
if opts.windows_vst:
conf.define('WINDOWS_VST_SUPPORT', 1)
conf.env['WINDOWS_VST_SUPPORT'] = True
if opts.denormal_exception:
conf.define('DEBUG_DENORMAL_EXCEPTION', 1)
conf.env['DEBUG_DENORMAL_EXCEPTION'] = True
- if not conf.is_defined('HAVE_CPPUNIT'):
- conf.env['BUILD_TESTS'] = False
+ 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)
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('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('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 ()
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)