diff --git a/tools/ndnsec/list.cpp b/tools/ndnsec/list.cpp
index 955fb6f..336a574 100644
--- a/tools/ndnsec/list.cpp
+++ b/tools/ndnsec/list.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2017 Regents of the University of California.
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -21,7 +21,8 @@
 
 #include "ndnsec.hpp"
 #include "util.hpp"
-#include "util/indented-stream.hpp"
+
+#include <ndn-cxx/util/indented-stream.hpp>
 
 namespace ndn {
 namespace ndnsec {
diff --git a/tools/ndnsec/main.cpp b/tools/ndnsec/main.cpp
index 351c29b..0db6d54 100644
--- a/tools/ndnsec/main.cpp
+++ b/tools/ndnsec/main.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2013-2017 Regents of the University of California.
+/*
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -21,8 +21,9 @@
 
 #include "ndnsec.hpp"
 #include "util.hpp"
-#include "version.hpp"
-#include "util/logger.hpp"
+
+#include <ndn-cxx/util/logger.hpp>
+#include <ndn-cxx/version.hpp>
 
 #include <boost/exception/get_error_info.hpp>
 
diff --git a/tools/ndnsec/util.cpp b/tools/ndnsec/util.cpp
index 6a34f53..b97e934 100644
--- a/tools/ndnsec/util.cpp
+++ b/tools/ndnsec/util.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2017 Regents of the University of California.
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -21,7 +21,7 @@
 
 #include "util.hpp"
 
-#include "security/detail/openssl.hpp"
+#include <ndn-cxx/security/detail/openssl.hpp>
 
 namespace ndn {
 namespace ndnsec {
diff --git a/tools/ndnsec/util.hpp b/tools/ndnsec/util.hpp
index 61b6b52..65b88e7 100644
--- a/tools/ndnsec/util.hpp
+++ b/tools/ndnsec/util.hpp
@@ -22,11 +22,11 @@
 #ifndef NDN_TOOLS_NDNSEC_UTIL_HPP
 #define NDN_TOOLS_NDNSEC_UTIL_HPP
 
-#include "encoding/buffer-stream.hpp"
-#include "security/transform.hpp"
-#include "security/key-chain.hpp"
-#include "security/v2/additional-description.hpp"
-#include "util/io.hpp"
+#include <ndn-cxx/encoding/buffer-stream.hpp>
+#include <ndn-cxx/security/key-chain.hpp>
+#include <ndn-cxx/security/transform.hpp>
+#include <ndn-cxx/security/v2/additional-description.hpp>
+#include <ndn-cxx/util/io.hpp>
 
 #include <fstream>
 #include <iostream>
diff --git a/tools/wscript b/tools/wscript
index 3e2fd0b..57066f0 100644
--- a/tools/wscript
+++ b/tools/wscript
@@ -11,7 +11,7 @@
     # These tools cannot be unit-tested.
     for tool in bld.path.ant_glob('*.cpp'):
         name = tool.change_ext('').path_from(bld.path.get_bld())
-        bld.program(name=name,
+        bld.program(name='tool-%s' % name,
                     target='../bin/%s' % name,
                     source=[tool],
                     use='ndn-cxx')
@@ -30,14 +30,14 @@
         srcFiles = subdir.ant_glob('**/*.cpp', excl=['main.cpp'])
         srcObjects = ''
         if srcFiles:
-            srcObjects = 'tools-%s-objects' % name
+            srcObjects = 'tool-%s-objects' % name
             bld.objects(target=srcObjects,
                         source=srcFiles,
                         use='ndn-cxx',
                         includes=name)
             testableObjects.append(srcObjects)
 
-        bld.program(name=name,
+        bld.program(name='tool-%s' % name,
                     target='../bin/%s' % name,
                     source=[mainFile],
                     use='ndn-cxx ' + srcObjects,
@@ -50,7 +50,7 @@
 
     # Tool wrappers
     wrapperFiles = bld.path.ant_glob('wrapper/*.sh')
-    bld(name='wrappers',
+    bld(name='tool-wrappers',
         features='subst',
         source=wrapperFiles,
         target=['../bin/%s' % node.change_ext('', '.sh').path_from(bld.path.find_dir('wrapper').get_bld())
