Finalizing packet serialization. Set boost requirement (module will not be compiled without boost)

diff --git a/wscript b/wscript
index e169e72..8f210c6 100644
--- a/wscript
+++ b/wscript
@@ -3,18 +3,38 @@
 import os
 import Logs
 import Utils
+import Options
+
+def set_options(opt):
+    opt.tool_options('boost')
+
+def configure(conf):
+    conf.check_tool('boost')
+    conf.env['BOOST'] = conf.check_boost(lib = '', # need only base
+                                         min_version='1.40.0' )
+    if not conf.env['BOOST']:
+        conf.report_optional_feature("ndn-abstract", "NDN abstraction", False,
+                                     "Required boost libraries not found")
+        conf.env['ENABLE_NDN_ABSTRACT']=False;
+        return
+    
+    conf.env['ENABLE_NDN_ABSTRACT']=True;
+
 
 def build(bld):
     module = bld.create_ns3_module ('NDNabstraction', ['applications', 'core', 'network', 'point-to-point'])
-    module.find_sources_in_dirs (['model', 'apps', 'helper'],[],['.cc']);
-
     tests = bld.create_ns3_module_test_library('NDNabstraction')
-    tests.find_sources_in_dirs( ['test'], [], ['.cc'] );
-
     headers = bld.new_task_gen('ns3header')
     headers.module = 'NDNabstraction'
+
+    if not bld.env['ENABLE_NDN_ABSTRACT']:
+        return
+   
+    module.find_sources_in_dirs (['model', 'apps', 'helper'],[],['.cc']);
+    tests.find_sources_in_dirs( ['test'], [], ['.cc'] );
     headers.find_sources_in_dirs( ['model', 'apps', 'helper'], [], ['.h'] );
 
+
     for path in ["examples"]:
         anode = bld.path.find_dir (path)
         if not anode or not anode.is_child_of(bld.srcnode):