shithub: aubio

Download patch

ref: 4cbc6e95d1c3d2f6140de254d9381b59ae972c28
parent: 93bd9a7347252d5dcf43d1c19aee25c91922f960
parent: b4ce693833a2f34b53d30f116cb9285a1bce343b
author: Paul Brossier <[email protected]>
date: Sat Dec 24 05:35:48 EST 2016

Merge branch 'waf-build-tweaks' of https://github.com/emuell/aubio

--- a/wscript
+++ b/wscript
@@ -47,6 +47,12 @@
             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 @@
         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']: