build: initialize building system
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..a9d1509
--- /dev/null
+++ b/wscript
@@ -0,0 +1,88 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+"""
+Copyright (c) 2014-2015,  Regents of the University of California
+
+This file is part of ndn-group-encrypt (Group-based Encryption Protocol for NDN).
+See AUTHORS.md for complete list of ndn-group-encrypt authors and contributors.
+
+ndn-group-encrypt is free software: you can redistribute it and/or modify it under the terms
+of the GNU General Public License as published by the Free Software Foundation,
+either version 3 of the License, or (at your option) any later version.
+
+ndn-group-encrypt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+ndn-group-encrypt, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+"""
+
+VERSION = "0.0.1"
+APPNAME = "libndn-group-encrypt"
+BUGREPORT = "http://redmine.named-data.net/projects/gep"
+URL = "http://named-data.net/doc/ndn-group-encrypt/"
+GIT_TAG_PREFIX = "NDN-GROUP-ENCRYPT"
+
+from waflib import Logs, Utils, Context
+import os
+
+def options(opt):
+    opt.load(['compiler_c', 'compiler_cxx', 'gnu_dirs'])
+    opt.load(['boost', 'default-compiler-flags'],
+             tooldir=['.waf-tools'])
+
+    syncopt = opt.add_option_group ("NDN-GROUP-ENCRYPT Options")
+
+    syncopt.add_option('--debug', action='store_true', default=False, dest='debug',
+                       help='''debugging mode''')
+    syncopt.add_option('--with-tests', action='store_true', default=False, dest='_tests',
+                       help='''build unit tests''')
+
+def configure(conf):
+    conf.load(['compiler_c', 'compiler_cxx', 'gnu_dirs', 'boost', 'default-compiler-flags'])
+
+    conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'],
+                   uselib_store='NDN_CXX', mandatory=True)
+
+    boost_libs = 'system iostreams'
+    if conf.options._tests:
+        conf.env['NDN_GEP_HAVE_TESTS'] = 1
+        conf.define('NDN_GEP_HAVE_TESTS', 1);
+        boost_libs += ' unit_test_framework'
+
+    conf.check_boost(lib=boost_libs)
+
+    conf.write_config_header('config.hpp')
+
+def build(bld):
+    libndn_group_encrypt = bld(
+        target="libndn-group-encrypt",
+        # vnum = "0.0.1",
+        features=['cxx', 'cxxshlib'],
+        source =  bld.path.ant_glob(['src/**/*.cpp']),
+        use = 'BOOST NDN_CXX',
+        includes = ['src', '.'],
+        export_includes=['src', '.'],
+        )
+
+    # Unit tests
+    if bld.env["NDN_GEP_HAVE_TESTS"]:
+        bld.recurse('tests')
+
+    bld.install_files(
+        dest = "%s/ndn-group-encrypt" % bld.env['INCLUDEDIR'],
+        files = bld.path.get_bld().ant_glob(['src/**/*.hpp', 'common.hpp', 'config.hpp']),
+        cwd = bld.path.get_bld().find_dir("src"),
+        relative_trick = False,
+        )
+
+    pc = bld(
+        features = "subst",
+        source='ndn-group-encrypt.pc.in',
+        target='ndn-group-encrypt.pc',
+        install_path = '${LIBDIR}/pkgconfig',
+        PREFIX       = bld.env['PREFIX'],
+        INCLUDEDIR   = "%s/ndn-group-encrypt" % bld.env['INCLUDEDIR'],
+        VERSION      = VERSION,
+        )