X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=wscript;h=935557bae3d611e9f23fc89c45ca43d642a43ac6;hb=b99131f21e356d307df12230d85b0eccc02d0203;hp=7b8582b4b20c7cc7fc5424755d4c82d1899a427f;hpb=597a65641869b113f02b73f6bcf41a9757164953;p=ardour.git diff --git a/wscript b/wscript index 7b8582b4b2..935557bae3 100644 --- a/wscript +++ b/wscript @@ -8,8 +8,8 @@ import subprocess import sys # Variables for 'waf dist' -VERSION = '3.0beta1a' -APPNAME = 'Ardour' +VERSION = '3.0beta4a' +APPNAME = 'Ardour3' # Mandatory variables top = '.' @@ -34,7 +34,9 @@ children = [ 'gtk2_ardour', 'templates', 'export', - 'midi_maps' + 'midi_maps', + 'mcp', + 'manual' ] i18n_children = [ @@ -121,52 +123,51 @@ def set_compiler_flags (conf,opt): optimization_flags = [] debug_flags = [] - # guess at the platform, used to define compiler flags - - config_guess = os.popen("tools/config.guess").read()[:-1] - - config_cpu = 0 - config_arch = 1 - config_kernel = 2 - config_os = 3 - config = config_guess.split ("-") + u = os.uname () + cpu = u[4] + platform = u[0].lower() + version = u[2] if opt.gprofile: debug_flags = [ '-pg' ] else: - if config[config_arch] != 'apple': + if platform != 'darwin': debug_flags = [ '-rdynamic' ] # waf adds -O0 -g itself. thanks waf! # Autodetect if opt.dist_target == 'auto': - if config[config_arch] == 'apple': + if platform == 'darwin': # The [.] matches to the dot after the major version, "." would match any character - if re.search ("darwin[0-7][.]", config[config_kernel]) != None: + if re.search ("^[0-7][.]", version) != None: conf.env['build_target'] = 'panther' - elif re.search ("darwin8[.]", config[config_kernel]) != None: + elif re.search ("^8[.]", version) != None: conf.env['build_target'] = 'tiger' - else: + elif re.search ("^9[.]", version) != None: conf.env['build_target'] = 'leopard' + elif re.search ("^10[.]", version) != None: + conf.env['build_target'] = 'snowleopard' + else: + conf.env['build_target'] = 'lion' else: - if re.search ("x86_64", config[config_cpu]) != None: + if re.search ("x86_64", cpu) != None: conf.env['build_target'] = 'x86_64' - elif re.search("i[0-5]86", config[config_cpu]) != None: + elif re.search("i[0-5]86", cpu) != None: conf.env['build_target'] = 'i386' - elif re.search("powerpc", config[config_cpu]) != None: + elif re.search("powerpc", cpu) != None: conf.env['build_target'] = 'powerpc' else: conf.env['build_target'] = 'i686' else: conf.env['build_target'] = opt.dist_target - if config[config_cpu] == 'powerpc' and conf.env['build_target'] != 'none': + if cpu == 'powerpc' and conf.env['build_target'] != 'none': # # Apple/PowerPC optimization options # # -mcpu=7450 does not reliably work with gcc 3.* # if opt.dist_target == 'panther' or opt.dist_target == 'tiger': - if config[config_arch] == 'apple': + if platform == 'darwin': # optimization_flags.extend ([ "-mcpu=7450", "-faltivec"]) # to support g3s but still have some optimization for above optimization_flags.extend ([ "-mcpu=G3", "-mtune=7450"]) @@ -177,19 +178,20 @@ def set_compiler_flags (conf,opt): optimization_flags.extend (["-mhard-float", "-mpowerpc-gfxopt"]) optimization_flags.extend (["-Os"]) - elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_64", config[config_cpu]) != None)) and conf.env['build_target'] != 'none': + elif ((re.search ("i[0-9]86", cpu) != None) or (re.search ("x86_64", cpu) != None)) and conf.env['build_target'] != 'none': # # ARCH_X86 means anything in the x86 family from i386 to x86_64 - # USE_X86_64_ASM is used to distingush 32 and 64 bit assembler + # the compile-time presence of the macro _LP64 is used to + # distingush 32 and 64 bit assembler # - if (re.search ("(i[0-9]86|x86_64)", config[config_cpu]) != None): + if (re.search ("(i[0-9]86|x86_64)", cpu) != None): debug_flags.append ("-DARCH_X86") optimization_flags.append ("-DARCH_X86") - if config[config_kernel] == 'linux' : + if platform == 'linux' : # # determine processor flags via /proc/cpuinfo @@ -207,9 +209,9 @@ def set_compiler_flags (conf,opt): if "3dnow" in x86_flags: optimization_flags.append ("-m3dnow") - if config[config_cpu] == "i586": + if cpu == "i586": optimization_flags.append ("-march=i586") - elif config[config_cpu] == "i686": + 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: @@ -220,33 +222,25 @@ def set_compiler_flags (conf,opt): # optimization section if conf.env['FPU_OPTIMIZATION']: - if conf.env['build_target'] == 'tiger' or conf.env['build_target'] == 'leopard': + if sys.platform == 'darwin': optimization_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); debug_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); conf.env.append_value('LINKFLAGS', "-framework Accelerate") elif conf.env['build_target'] == 'i686' or conf.env['build_target'] == 'x86_64': optimization_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") debug_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") - elif conf.env['build_target'] == 'x86_64': - optimization_flags.append ("-DUSE_X86_64_ASM") - debug_flags.append ("-DUSE_X86_64_ASM") if not build_host_supports_sse: print("\nWarning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)") - # check this even if we aren't using FPU optimization - if not conf.is_defined('HAVE_POSIX_MEMALIGN'): - optimization_flags.append("-DNO_POSIX_MEMALIGN") - debug_flags.append("-DNO_POSIX_MEMALIGN") - # end optimization section # # no VST on x86_64 # - if conf.env['build_target'] == 'x86_64' and opt.vst: + if conf.env['build_target'] == 'x86_64' and opt.windows_vst: print("\n\n==================================================") - print("You cannot use VST plugins with a 64 bit host. Please run waf with --vst=0") + print("You cannot use VST plugins with a 64 bit host. Please run waf with --windows-vst=0") print("\nIt is theoretically possible to build a 32 bit host on a 64 bit system.") print("However, this is tricky and not recommended for beginners.") sys.exit (-1) @@ -271,9 +265,9 @@ def set_compiler_flags (conf,opt): conf.define ('IS_OSX', 0) # - # save off guessed arch element in an env + # save off CPU element in an env # - conf.define ('CONFIG_ARCH', config[config_arch]) + conf.define ('CONFIG_ARCH', cpu) # # ARCH="..." overrides all @@ -311,10 +305,28 @@ def set_compiler_flags (conf,opt): conf.env.append_value('CXXFLAGS', '-DDEBUG_RT_ALLOC') conf.env.append_value('LINKFLAGS', '-ldl') + if conf.env['DEBUG_DENORMAL_EXCEPTION']: + conf.env.append_value('CFLAGS', '-DDEBUG_DENORMAL_EXCEPTION') + conf.env.append_value('CXXFLAGS', '-DDEBUG_DENORMAL_EXCEPTION') + if opt.universal: - conf.env.append_value('CFLAGS', "-arch i386 -arch ppc") - conf.env.append_value('CXXFLAGS', "-arch i386 -arch ppc") - conf.env.append_value('LINKFLAGS', "-arch i386 -arch ppc") + if opt.generic: + print ('Specifying Universal and Generic builds at the same time is not supported') + sys.exit (1) + else: + if not Options.options.nocarbon: + conf.env.append_value('CFLAGS', ["-arch", "i386", "-arch", "ppc"]) + conf.env.append_value('CXXFLAGS', ["-arch", "i386", "-arch", "ppc"]) + conf.env.append_value('LINKFLAGS', ["-arch", "i386", "-arch", "ppc"]) + else: + conf.env.append_value('CFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"]) + conf.env.append_value('CXXFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"]) + conf.env.append_value('LINKFLAGS', ["-arch", "x86_64", "-arch", "i386", "-arch", "ppc"]) + else: + if opt.generic: + conf.env.append_value('CFLAGS', ['-arch', 'i386']) + conf.env.append_value('CXXFLAGS', ['-arch', 'i386']) + conf.env.append_value('LINKFLAGS', ['-arch', 'i386']) # # warnings flags @@ -323,11 +335,6 @@ def set_compiler_flags (conf,opt): conf.env.append_value('CFLAGS', "-Wall") conf.env.append_value('CXXFLAGS', [ '-Wall', '-Woverloaded-virtual']) - if opt.extra_warn: - flags = [ '-Wextra' ] - conf.env.append_value('CFLAGS', flags) - conf.env.append_value('CXXFLAGS', flags) - # # more boilerplate @@ -357,12 +364,12 @@ def options(opt): help='The user-visible name of the program being built') opt.add_option('--arch', type='string', action='store', dest='arch', help='Architecture-specific compiler flags') + opt.add_option('--no-carbon', action='store_true', default=False, dest='nocarbon', + help='Compile without support for AU Plugins with only CARBON UI (needed for 64bit)') opt.add_option('--boost-sp-debug', action='store_true', default=False, dest='boost_sp_debug', help='Compile with Boost shared pointer debugging') opt.add_option('--dist-target', type='string', default='auto', dest='dist_target', help='Specify the target for cross-compiling [auto,none,x86,i386,i686,x86_64,powerpc,tiger,leopard]') - opt.add_option('--extra-warn', action='store_true', default=False, dest='extra_warn', - help='Build with even more compiler warning flags') 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') @@ -370,12 +377,14 @@ def options(opt): help='Install MIME type, icons and .desktop file as per freedesktop.org standards') opt.add_option('--freebie', action='store_true', default=False, dest='freebie', help='Build a version suitable for distribution as a zero-cost binary') - opt.add_option('--freesound', action='store_true', default=False, dest='freesound', - help='Include Freesound database lookup') + opt.add_option('--no-freesound', action='store_false', default=True, dest='freesound', + help='Do not build with Freesound database support') opt.add_option('--gprofile', action='store_true', default=False, dest='gprofile', help='Compile for use with gprofile') - opt.add_option('--lv2', action='store_true', default=False, dest='lv2', + 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', + help='Do not compile with support for LV2') opt.add_option('--lxvst', action='store_true', default=lxvst_default, dest='lxvst', help='Compile with support for linuxVST plugins') opt.add_option('--nls', action='store_true', default=True, dest='nls', @@ -386,16 +395,22 @@ def options(opt): help='Build with debugging for the STL') opt.add_option('--rt-alloc-debug', action='store_true', default=False, dest='rt_alloc_debug', help='Build with debugging for memory allocation in the real-time thread') + opt.add_option('--pt-timing', action='store_true', default=False, dest='pt_timing', + help='Build with logging of timing in the process thread(s)') + opt.add_option('--denormal-exception', action='store_true', default=False, dest='denormal_exception', + 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 (requires that external libraries are 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', + help='Compile with -arch i386 (OS X ONLY)') opt.add_option('--versioned', action='store_true', default=False, dest='versioned', help='Add revision information to executable name inside the build directory') - opt.add_option('--vst', action='store_true', default=False, dest='vst', - help='Compile with support for VST') + 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>