diff --git a/wscript b/wscript
index c5f8b33..6773293 100644
--- a/wscript
+++ b/wscript
@@ -41,15 +41,16 @@
              tooldir=['.waf-tools'])
 
     nfdopt = opt.add_option_group('NFD Options')
-    opt.addUnixOptions(nfdopt)
-    opt.addWebsocketOptions(nfdopt)
 
+    opt.addUnixOptions(nfdopt)
+    opt.addDependencyOptions(nfdopt, 'libresolv')
+    opt.addDependencyOptions(nfdopt, 'librt')
     opt.addDependencyOptions(nfdopt, 'libpcap')
     nfdopt.add_option('--without-libpcap', action='store_true', default=False,
                       help='Disable libpcap (Ethernet face support will be disabled)')
-
-    opt.addDependencyOptions(nfdopt, 'librt')
-    opt.addDependencyOptions(nfdopt, 'libresolv')
+    nfdopt.add_option('--without-systemd', action='store_true', default=False,
+                      help='Disable systemd integration')
+    opt.addWebsocketOptions(nfdopt)
 
     nfdopt.add_option('--with-tests', action='store_true', default=False,
                       help='Build unit tests')
@@ -87,6 +88,13 @@
                'pch', 'boost', 'dependency-checker', 'websocket',
                'doxygen', 'sphinx_build'])
 
+    if conf.options.with_tests:
+        conf.env.WITH_TESTS = True
+        conf.define('WITH_TESTS', 1)
+    if conf.options.with_other_tests:
+        conf.env.WITH_OTHER_TESTS = True
+        conf.define('WITH_OTHER_TESTS', 1)
+
     conf.find_program('bash', var='BASH')
 
     if 'PKG_CONFIG_PATH' not in os.environ:
@@ -94,6 +102,9 @@
     conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'],
                    uselib_store='NDN_CXX', mandatory=True)
 
+    conf.check_cfg(package='libsystemd', args=['--cflags', '--libs'],
+                   uselib_store='SYSTEMD', mandatory=False)
+
     conf.checkDependency(name='librt', lib='rt', mandatory=False)
     conf.checkDependency(name='libresolv', lib='resolv', mandatory=False)
 
@@ -103,14 +114,6 @@
 
     conf.check_cxx(header_name='valgrind/valgrind.h', define_name='HAVE_VALGRIND', mandatory=False)
 
-    if conf.options.with_tests:
-        conf.env.WITH_TESTS = True
-        conf.define('WITH_TESTS', 1)
-
-    if conf.options.with_other_tests:
-        conf.env.WITH_OTHER_TESTS = True
-        conf.define('WITH_OTHER_TESTS', 1)
-
     boost_libs = 'system chrono program_options thread log log_setup'
     if conf.options.with_tests or conf.options.with_other_tests:
         boost_libs += ' unit_test_framework'
@@ -122,13 +125,14 @@
                    ' (https://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)')
 
     conf.load('unix-socket')
-    conf.checkWebsocket(mandatory=True)
 
     if not conf.options.without_libpcap:
         conf.checkDependency(name='libpcap', lib='pcap', mandatory=True,
                              errmsg='not found, but required for Ethernet face support. '
                                     'Specify --without-libpcap to disable Ethernet face support.')
 
+    conf.checkWebsocket(mandatory=True)
+
     conf.check_compiler_flags()
 
     # Loading "late" to prevent tests from being compiled with profiling flags
@@ -201,7 +205,7 @@
     bld.program(name='nfd',
                 target='bin/nfd',
                 source='daemon/main.cpp',
-                use='daemon-objects rib-objects')
+                use='daemon-objects rib-objects SYSTEMD')
 
     bld.recurse('tools')
     bld.recurse('tests')
