From: Paul Brossier Date: Sat, 24 Dec 2016 09:35:48 +0000 (+0100) Subject: Merge branch 'waf-build-tweaks' of https://github.com/emuell/aubio X-Git-Tag: 0.4.4~24 X-Git-Url: https://git.aubio.org/?p=aubio.git;a=commitdiff_plain;h=4cbc6e95d1c3d2f6140de254d9381b59ae972c28;hp=93bd9a7347252d5dcf43d1c19aee25c91922f960 Merge branch 'waf-build-tweaks' of https://github.com/emuell/aubio --- diff --git a/wscript b/wscript index ed217a90..02b2db68 100644 --- a/wscript +++ b/wscript @@ -47,6 +47,12 @@ def add_option_enable_disable(ctx, name, default = None, help = help_disable_str ) def options(ctx): + ctx.add_option('--build-type', action = 'store', + default = "release", + choices = ('debug', 'release'), + dest = 'build_type', + help = 'whether to compile with (--build_type=release) or without (--build_type=debug) '\ + ' compiler opimizations [default: release]') add_option_enable_disable(ctx, 'fftw3f', default = False, help_str = 'compile with fftw3f instead of ooura (recommended)', help_disable_str = 'do not compile with fftw3f') @@ -125,12 +131,31 @@ def configure(ctx): target_platform = ctx.options.target_platform ctx.env['DEST_OS'] = target_platform + if ctx.options.build_type == "debug": + ctx.define('DEBUG', 1) + else: + ctx.define('NDEBUG', 1) + if ctx.env.CC_NAME != 'msvc': + # enable debug symbols and configure warnings ctx.env.CFLAGS += ['-g', '-Wall', '-Wextra'] + if ctx.options.build_type == "release": + # set optimization level + ctx.env.CFLAGS += ['-O2'] else: - ctx.env.CFLAGS += ['/W4', '/MD'] - ctx.env.CFLAGS += ['/D_CRT_SECURE_NO_WARNINGS'] - + # enable debug symbols + ctx.env.CFLAGS += ['/Z7', '/FS'] + ctx.env.LINKFLAGS += ['/DEBUG', '/INCREMENTAL:NO'] + # configure warnings + ctx.env.CFLAGS += ['/W4', '/D_CRT_SECURE_NO_WARNINGS'] + # set optimization level and runtime libs + if (ctx.options.build_type == "release"): + ctx.env.CFLAGS += ['/Ox'] + ctx.env.CFLAGS += ['/MD'] + else: + assert(ctx.options.build_type == "debug") + ctx.env.CFLAGS += ['/MDd'] + ctx.check_cc(lib='m', uselib_store='M', mandatory=False) if target_platform not in ['win32', 'win64']: