diff --git a/osx/menu-delegate.mm b/osx/menu-delegate.mm
index cdb02e7..8660108 100644
--- a/osx/menu-delegate.mm
+++ b/osx/menu-delegate.mm
@@ -6,11 +6,12 @@
  * @author Ilya Moiseenko <iliamo@ucla.edu>
  */
 
+#include "config.h"
 #import "menu-delegate.h"
 
-#define NDND_START_COMMAND @"/opt/local/bin/ndndstart"
-#define NDND_STOP_COMMAND @"/opt/local/bin/ndndstop"
-#define NDND_STATUS_COMMAND @"/opt/local/bin/ndndstatus"
+#define NDND_START_COMMAND @ NDNX_ROOT "/bin/ndndstart"
+#define NDND_STOP_COMMAND @ NDNX_ROOT "/bin/ndndstop"
+#define NDND_STATUS_COMMAND @ NDNX_ROOT "/bin/ndndstatus"
 
 @implementation MenuDelegate
 
diff --git a/wscript b/wscript
index 6bbd913..b1c3f8d 100644
--- a/wscript
+++ b/wscript
@@ -8,6 +8,10 @@
     opt.load('compiler_c compiler_cxx')
     opt.load('sparkle xcode', tooldir='waf-tools')
 
+    grp = opt.add_option_group ('NDNx Control Center options')
+    grp.add_option ('--ndnx', help='''Root path to NDNx installation (default: /usr)''',
+                    dest='ndnx_root', type=str, default='/usr')
+
 def configure(conf):
     conf.load('compiler_c compiler_cxx')
 
@@ -15,6 +19,13 @@
         Logs.error ("Only OSX is supported so far")
         return -1
 
+    conf.start_msg('Checking for NDNx in %s' % conf.options.ndnx_root)
+    if not conf.find_file('ndnd ndndstatus ndndstart ndndstop', path_list='%s/bin' % conf.options.ndnx_root, mandatory=False):
+        conf.end_msg ('not found, but will proceed anyways', 'YELLOW')
+    else:
+        conf.end_msg ('ok')
+    conf.define('NDNX_ROOT', conf.options.ndnx_root)
+    
     if Utils.unversioned_sys_platform () == "darwin":
         conf.find_program('ibtool', var='IBTOOL', mandatory=False)
 
@@ -30,6 +41,8 @@
         
         conf.load('sparkle')
 
+    conf.write_config_header('config.h')
+
 def build (bld):
     if Utils.unversioned_sys_platform () != "darwin":
         Logs.error ("Only OSX is supported so far")
@@ -39,7 +52,7 @@
         bld (
             target = "NDNx Control Center",
             features=['cxxprogram', 'cxx'],
-            includes = "osx",
+            includes = ". osx",
             source = bld.path.ant_glob (['osx/**/*.mm', 'osx/MainMenu.xib']),
             
             mac_app = True,
