diff --git a/tools/wscript b/tools/wscript
new file mode 100644
index 0000000..1f99ef6
--- /dev/null
+++ b/tools/wscript
@@ -0,0 +1,38 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+from waflib import Utils, Context
+
+top = '..'
+
+def build(bld):
+    # List all .cpp files (whole tool should be in one .cpp)
+    for i in bld.path.ant_glob(['*.cpp']):
+        name = str(i)[:-len(".cpp")]
+        bld(features=['cxx', 'cxxprogram'],
+            target="../bin/%s" % name,
+            source=[i] + bld.path.ant_glob(['%s/**/*.cpp' % name]),
+            use='ndn-cxx core-objects LIBRESOLV BOOST'
+            )
+
+    # List all directories files (tool can has multiple .cpp in the directory)
+    for name in bld.path.ant_glob(['*'], dir=True, src=False):
+        srcFiles = bld.path.ant_glob(['%s/**/*.cpp' % name])
+        if len(srcFiles) > 0:
+            bld(features=['cxx', 'cxxprogram'],
+                target="../bin/%s" % name,
+                source=srcFiles,
+                use='ndn-cxx core-objects LIBRESOLV BOOST',
+                includes='%s' % name,
+                )
+
+    bld(features="subst",
+        source=bld.path.ant_glob(['*.sh', '*.py']),
+        target=['../bin/%s' % node.change_ext('')
+                for node in bld.path.ant_glob(['*.sh', '*.py'])],
+        install_path="${BINDIR}",
+        chmod=Utils.O755,
+        VERSION=Context.g_module.VERSION
+       )
+
+    bld.install_files("${DATAROOTDIR}/ndn",
+                      bld.path.ant_glob('nfd-status-http-server-files/*'))
diff --git a/wscript b/wscript
index 34de382..a12985d 100644
--- a/wscript
+++ b/wscript
@@ -198,13 +198,7 @@
         use='rib-objects',
         )
 
-    for app in bld.path.ant_glob('tools/*.cpp'):
-        bld(features=['cxx', 'cxxprogram'],
-            target='bin/%s' % (str(app.change_ext(''))),
-            source=['tools/%s' % (str(app))],
-            use='core-objects LIBRESOLV',
-            )
-
+    bld.recurse("tools")
     bld.recurse("tests")
 
     bld(features="subst",
@@ -223,17 +217,6 @@
             install_path="${MANDIR}/",
             VERSION=VERSION)
 
-    for script in bld.path.ant_glob(['tools/*.sh', 'tools/*.py']):
-        bld(features='subst',
-            source='tools/%s' % (str(script)),
-            target='bin/%s' % (str(script.change_ext(''))),
-            install_path="${BINDIR}",
-            chmod=Utils.O755,
-            VERSION=VERSION)
-
-    bld.install_files("${DATAROOTDIR}/ndn",
-                      bld.path.ant_glob('tools/nfd-status-http-server-files/*'))
-
 def docs(bld):
     from waflib import Options
     Options.commands = ['doxygen', 'sphinx'] + Options.commands
