Index: examples/wscript_build
===================================================================
--- examples/wscript_build	(revision 20ae690b28378f817256778e0fe826ee55d7775a)
+++ examples/wscript_build	(revision 46378b3b845d266c97ff4d441f394f70e7ea7d36)
@@ -1,14 +1,23 @@
 # build examples
+sndfileio = bld.new_task_gen(features = 'c',
+    includes = '../src',
+    source = ['sndfileio.c'],
+    target = 'sndfileio')
+
+utilsio = bld.new_task_gen(features = 'c',
+      includes = '../src',
+      add_objects = 'sndfileio',
+      source = ['utils.c', 'jackio.c'],
+      uselib = ['LASH', 'JACK', 'SNDFILE'],
+      target = 'utilsio')
 
 # loop over all *.c filenames in examples to build them all
-for target_name in bld.path.ant_glob('*.c').split():
-  # ignore utils.c
-  if target_name in ['utils.c', 'jackio.c', 'sndfileio.c']: continue 
-  bld.new_task_gen(features = 'cc cprogram', 
+for target_name in bld.path.ant_glob('*.c', excl = ['utils.c', 'jackio.c', 'sndfileio.c']):
+  bld.new_task_gen(features = 'c cprogram',
       add_objects = 'utilsio',
       includes = '../src',
       uselib = ['LASH', 'JACK', 'SNDFILE'],
-      uselib_local = ['aubio'],
+      use = ['aubio'],
       source = target_name,
       # program name is filename.c without the .c
-      target = target_name.split('.')[0])
+      target = str(target_name).split('.')[0])
Index: python/aubio/wscript_build
===================================================================
--- python/aubio/wscript_build	(revision 20ae690b28378f817256778e0fe826ee55d7775a)
+++ python/aubio/wscript_build	(revision 46378b3b845d266c97ff4d441f394f70e7ea7d36)
@@ -4,5 +4,5 @@
   add_objects = 'sndfileio',
   target = '_aubiowrapper',
-  uselib_local = ['aubio'],
+  use = ['aubio'],
   uselib = ['SNDFILE'],
   swig_flags = '-python -Wall',
Index: src/wscript_build
===================================================================
--- src/wscript_build	(revision 20ae690b28378f817256778e0fe826ee55d7775a)
+++ src/wscript_build	(revision 46378b3b845d266c97ff4d441f394f70e7ea7d36)
@@ -1,5 +1,5 @@
 # build libaubio
 libaubio = bld.new_task_gen(
-    features = 'cc cshlib',
+    features = 'c cshlib',
     includes = ['.'],
     source = bld.path.ant_glob('*.c **/*.c'),
@@ -9,5 +9,6 @@
 
 # install headers, except _priv.h ones
-for file in bld.path.ant_glob('**/*.h').split():
-  if '_priv.h' in file or file == 'config.h': continue
-  bld.install_as('${PREFIX}/include/aubio/' + file, file)
+bld.install_files('${PREFIX}/include/aubio/',
+	bld.path.ant_glob('**/*.h',
+	exclude = ['_priv.h', 'config.h']),
+	relative_trick=True)
Index: wscript
===================================================================
--- wscript	(revision 20ae690b28378f817256778e0fe826ee55d7775a)
+++ wscript	(revision 46378b3b845d266c97ff4d441f394f70e7ea7d36)
@@ -15,11 +15,11 @@
 VERSION = '0.3.3'
 LIB_VERSION = '2.1.1'
-srcdir = '.'
-blddir = 'build'
+top = '.'
+out = 'build'
 
 def init(opt):
   pass
 
-def set_options(opt):
+def options(opt):
   opt.add_option('--enable-double', action='store_true', default=False,
       help='compile aubio in double precision mode')
@@ -28,16 +28,16 @@
   opt.add_option('--enable-complex', action='store_true', default=False,
       help='compile with C99 complex')
-  opt.add_option('--disable-jack', action='store_true', default=False,
+  opt.add_option('--enable-jack', action='store_true', default=False,
       help='compile without jack support')
-  opt.add_option('--disable-lash', action='store_true', default=False,
+  opt.add_option('--enable-lash', action='store_true', default=False,
       help='compile without lash support')
-  opt.add_option('--disable-libsamplerate', action='store_true', default=False,
+  opt.add_option('--enable-libsamplerate', action='store_true', default=False,
       help='compile without libsamplerate support')
   opt.add_option('--with-target-platform', type='string',
       help='set target platform for cross-compilation', dest='target_platform')
-  opt.tool_options('compiler_cc')
-  opt.tool_options('compiler_cxx')
-  opt.tool_options('gnu_dirs')
-  opt.tool_options('UnitTest')
+  opt.load('compiler_cc')
+  opt.load('compiler_cxx')
+  opt.load('gnu_dirs')
+  opt.load('waf_unit_test')
 
 def configure(conf):
@@ -47,4 +47,5 @@
   conf.check_tool('gnu_dirs') # helpful for autotools transition and .pc generation
   conf.check_tool('misc') # needed for subst
+  conf.load('waf_unit_test')
 
   if Options.options.target_platform:
@@ -68,6 +69,6 @@
   conf.check_cfg(package = 'sndfile', atleast_version = '1.0.4',
     args = '--cflags --libs')
-  if (Options.options.disable_libsamplerate == False):
-      conf.check_cfg(package = 'libsamplerate', atleast_version = '0.0.15',
+  if (Options.options.enable_libsamplerate == True):
+      conf.check_cfg(package = 'samplerate', atleast_version = '0.0.15',
         args = '--cflags --libs')
 
@@ -92,13 +93,13 @@
 
   # optional dependancies
-  if (Options.options.disable_jack == False):
+  if (Options.options.enable_jack == True):
     conf.check_cfg(package = 'jack', atleast_version = '0.15.0',
     args = '--cflags --libs')
-  if (Options.options.disable_lash == False):
+  if (Options.options.enable_lash == True):
     conf.check_cfg(package = 'lash-1.0', atleast_version = '0.5.0',
     args = '--cflags --libs', uselib_store = 'LASH')
 
   # swig
-  if conf.find_program('swig', var='SWIG', mandatory = False):
+  if 0: #conf.find_program('swig', var='SWIG', mandatory = False):
     conf.check_tool('swig', tooldir='swig')
     conf.check_swig_version('1.3.27')
@@ -116,5 +117,5 @@
 '''
   if conf.check_cc(fragment = check_c99_varargs, 
-      type='cstaticlib', 
+      type='cstlib',
       msg = 'Checking for C99 __VA_ARGS__ macro'):
     conf.define('HAVE_C99_VARARGS_MACROS', 1)
@@ -133,6 +134,4 @@
   bld.env['VERSION'] = VERSION 
   bld.env['LIB_VERSION'] = LIB_VERSION 
-
-  build_extras(bld)
 
   # add sub directories
@@ -168,6 +167,4 @@
   # build and run the unit tests
   build_tests(bld)
-  import UnitTest
-  bld.add_post_fun(UnitTest.summary)
 
 def shutdown(bld):
@@ -177,34 +174,16 @@
 # target name is filename.c without the .c
 def build_tests(bld):
-  for target_name in bld.path.ant_glob('tests/src/**/*.c').split():
+  for target_name in bld.path.ant_glob('tests/src/**/*.c'):
     this_target = bld.new_task_gen(
-        features = 'cc cprogram test',
+        features = 'c cprogram test',
         source = target_name,
-        target = target_name.split('.')[0],
+        target = str(target_name).split('.')[0],
         includes = 'src',
         defines = 'AUBIO_UNSTABLE_API=1',
-        uselib_local = 'aubio')
+        use = 'aubio')
     # phasevoc-jack also needs jack 
-    if target_name.endswith('test-phasevoc-jack.c'):
+    if str(target_name).endswith('test-phasevoc-jack.c'):
       this_target.includes = ['src', 'examples']
-      this_target.uselib_local = ['aubio']
+      this_target.use = ['aubio']
       this_target.uselib = ['JACK']
-      this_target.source += ' examples/jackio.c'
-
-def build_extras(bld):
-    # corner cases to build these ones only once
-    sndfileio = bld.new_task_gen(features = 'cc',
-        includes = 'examples src',
-        source = ['examples/sndfileio.c'], 
-        target = 'sndfileio')
-
-    defines = ['AUBIO_PREFIX="' + bld.env['AUBIO_PREFIX'] + '"']
-    defines += ['PACKAGE="' + bld.env['PACKAGE'] + '"']
-
-    utilsio = bld.new_task_gen(features = 'cc',
-          includes = 'examples src',
-          add_objects = 'sndfileio',
-          source = ['examples/utils.c', 'examples/jackio.c'], 
-          uselib = ['LASH', 'JACK', 'SNDFILE'],
-          defines = defines, 
-          target = 'utilsio')
+      this_target.target += ' examples/jackio.c'
