diff --git a/SConscript b/SConscript
index 512f856a7db30aef62ad4c71b7a12f19a452b401..9d20c3c1ac6181d00781975dfcad727e7a4e45e2 100644
--- a/SConscript
+++ b/SConscript
@@ -20,6 +20,13 @@ if env.GetOption('clean'):
     if os.path.exists(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h"):
         print 'Removing include/targ-config.h'
     	os.remove(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h")
+    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone")
+    os.system("make clean")
+    if os.path.exists(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/zipr_unpack"):
+    	shutil.rmtree(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/zipr_unpack")
+    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME'])
+
+
 else:
     ELFIO_DIR=os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/ELFIO/"
     if not os.path.exists(ELFIO_DIR):
@@ -56,9 +63,17 @@ else:
 	shutil.copy( os.path.join(os.environ['SECURITY_TRANSFORMS_HOME'],"include",machine,"config.h"), 
 		     os.path.join(os.environ['SECURITY_TRANSFORMS_HOME'],"include","targ-config.h"))
 
+    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone")
+    os.system("./make.sh ")
+    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone")
+    if not os.path.exists(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/zipr_unpack"):
+	    os.mkdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/zipr_unpack")
+	    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/zipr_unpack")
+	    os.system("ar x "+os.environ['SECURITY_TRANSFORMS_HOME']+"/libcapstone/libcapstone.a")
+    os.chdir(os.environ['SECURITY_TRANSFORMS_HOME'])
 
 
-env['BASE_IRDB_LIBS']="IRDB-core", "pqxx", "pq", "BeaEngine_s_d", "EXEIO"
+env['BASE_IRDB_LIBS']="IRDB-core", "pqxx", "pq", "BeaEngine_s_d", "capstone", "EXEIO"
 
 if sysname != "SunOS":
 	libPEBLISS=SConscript("pebliss/trunk/pe_lib/SConscript", variant_dir='scons_build/libPEBLISS')
@@ -81,17 +96,25 @@ libtransform=SConscript("libtransform/SConscript", variant_dir='scons_build/libt
 libIRDB=SConscript("libIRDB/SConscript", variant_dir='scons_build/libIRDB')
 libStructDiv=SConscript("libStructDiv/SConscript", variant_dir='scons_build/libStructDiv')
 
+pedi = Command( target = "./testoutput",
+		source = "./SConscript",
+                action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )
+Depends(pedi, (libEXEIO, libbea, libMEDSannotation,libxform,libtransform,libIRDB,libStructDiv))
+
+tools=None
 if 'build_tools' not in env or env['build_tools'] is None or int(env['build_tools']) == 1:
-	SConscript("tools/SConscript", variant_dir='scons_build/tools')
+	tools=SConscript("tools/SConscript", variant_dir='scons_build/tools')
+	Depends(pedi,tools)
 
 # appfw
+appfw64=None
+appfw32=None
 if 'build_appfw' in env:
     if int(env['build_appfw']) == 1:		 
-        SConscript("appfw/src/SConscript.64", variant_dir='scons_build/appfw.64')
-        SConscript("appfw/src/SConscript.32", variant_dir='scons_build/appfw.32')
+        appfw64=SConscript("appfw/src/SConscript.64", variant_dir='scons_build/appfw.64')
+        appfw32=SConscript("appfw/src/SConscript.32", variant_dir='scons_build/appfw.32')
+	Depends(pedi,(appfw64,appfw32))
+
 
-pedi = Command( target = "./testoutput",
-		source = "./SConscript",
-                action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )
 Default( pedi )
 
diff --git a/appfw/SConscript b/appfw/SConscript
index e10a2cbd2cc26ae916c8a33fc87afad8397351d4..de09c4c1a9e1fad00d36c36358cf51096ab93081 100644
--- a/appfw/SConscript
+++ b/appfw/SConscript
@@ -3,5 +3,7 @@ import shutil
 
 Import('env')
 
-SConscript("src/SConscript.64", variant_dir='build64')
-SConscript("src/SConscript.32", variant_dir='build32')
+lib1=SConscript("src/SConscript.64", variant_dir='build64')
+lib2=SConscript("src/SConscript.32", variant_dir='build32')
+
+Return(lib1+lib2)
diff --git a/appfw/SConstruct b/appfw/SConstruct
index 1c9580cf6f6454f89ee0250adebfb474ae727652..6a58002c76536a02456b46afa6b8c93e4c0e513c 100644
--- a/appfw/SConstruct
+++ b/appfw/SConstruct
@@ -1,3 +1,5 @@
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return(lib)
diff --git a/beaengine/SConscript b/beaengine/SConscript
index 8590b6c8f2db54a085c3dfe82e91bc63692721af..b2896915daeb0c91a214edf33656531861286be9 100644
--- a/beaengine/SConscript
+++ b/beaengine/SConscript
@@ -22,3 +22,4 @@ lib=myenv.Library("BeaEngine_s_d", Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/beaengine/SConstruct b/beaengine/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/beaengine/SConstruct
+++ b/beaengine/SConstruct
@@ -4,3 +4,5 @@
 env=Environment()
 Export('env')
 lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libEXEIO/SConscript b/libEXEIO/SConscript
index 604584b909c66881ab125837a6412526befc0890..4b924974526de19e32967a8f64104b68348ed8b1 100644
--- a/libEXEIO/SConscript
+++ b/libEXEIO/SConscript
@@ -2,5 +2,8 @@ import os
 
 Import('env')
 
-SConscript("src/SConscript")
-SConscript("test/SConscript")
+lib1=SConscript("src/SConscript")
+lib2=SConscript("test/SConscript")
+
+ret=[lib1, lib2]
+Return ('ret')
diff --git a/libEXEIO/SConstruct b/libEXEIO/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/libEXEIO/SConstruct
+++ b/libEXEIO/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libEXEIO/src/SConscript b/libEXEIO/src/SConscript
index 64db2b4573b85d2369c20b1a0efa7dcd799e23a7..dea83ae00003b18590677d489fe82f0da4cda819 100644
--- a/libEXEIO/src/SConscript
+++ b/libEXEIO/src/SConscript
@@ -26,3 +26,4 @@ lib=myenv.Library(libname, Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/libEXEIO/src/SConstruct b/libEXEIO/src/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/libEXEIO/src/SConstruct
+++ b/libEXEIO/src/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libEXEIO/test/SConscript b/libEXEIO/test/SConscript
index 4225d82990915ffff795ab6f503972b1a0c0da34..8d8e20a485a414d0166b203521a1b9b5b3713230 100644
--- a/libEXEIO/test/SConscript
+++ b/libEXEIO/test/SConscript
@@ -37,4 +37,4 @@ pgm=myenv.Program(libname, Split(files))
 
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
-
+Return('install')
diff --git a/libEXEIO/test/SConstruct b/libEXEIO/test/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b3bd01322f2b78089fd86e0e9b0ae01897c9c8a5 100644
--- a/libEXEIO/test/SConstruct
+++ b/libEXEIO/test/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+Return('lib')
diff --git a/libIRDB/SConscript b/libIRDB/SConscript
index 9a892bbbe37ce72b3e30aa45009940def655d08a..bd5fcb835edeed5b0f0df7cd9e51407c3efd0919 100644
--- a/libIRDB/SConscript
+++ b/libIRDB/SConscript
@@ -3,5 +3,9 @@ import os
 Import('env')
 
 
-SConscript("src/SConscript")
-SConscript("test/SConscript")
+lib1=SConscript("src/SConscript")
+lib2=SConscript("test/SConscript")
+
+
+ret=lib1+lib2
+Return('ret')
diff --git a/libIRDB/SConstruct b/libIRDB/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/libIRDB/SConstruct
+++ b/libIRDB/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libIRDB/src/SConscript b/libIRDB/src/SConscript
index ded23c7cbdeceeac80913ffd8fbb01919c0968c9..b44cd606bc0bafa855f950954a180a2f51433374 100644
--- a/libIRDB/src/SConscript
+++ b/libIRDB/src/SConscript
@@ -2,6 +2,8 @@ import os
 
 Import('env')
 
+tools=[]
+
 dirs='''
 	cfg  
 	core  
@@ -11,4 +13,6 @@ dirs='''
 	'''
 
 for i in Split(dirs):
-	SConscript(os.path.join(i,"SConscript"))
+	tools=tools + SConscript(os.path.join(i,"SConscript"))
+
+Return('tools')
diff --git a/libIRDB/src/SConstruct b/libIRDB/src/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/libIRDB/src/SConstruct
+++ b/libIRDB/src/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libIRDB/src/cfg/SConscript b/libIRDB/src/cfg/SConscript
index 3e12e320079ebd37429d0fde243d63aebeb09cbc..0cde74ca7ab0f68e6cb9e97c48968f1a33622fc1 100644
--- a/libIRDB/src/cfg/SConscript
+++ b/libIRDB/src/cfg/SConscript
@@ -26,3 +26,4 @@ lib=myenv.Library(libname, Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/libIRDB/src/cfg/SConstruct b/libIRDB/src/cfg/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b3bd01322f2b78089fd86e0e9b0ae01897c9c8a5 100644
--- a/libIRDB/src/cfg/SConstruct
+++ b/libIRDB/src/cfg/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+Return('lib')
diff --git a/libIRDB/src/core/SConscript b/libIRDB/src/core/SConscript
index 194340ebac96a109a816fe360ed9f1c721b89da5..8970146776ccc95446b3559b9289c9e9925260d1 100644
--- a/libIRDB/src/core/SConscript
+++ b/libIRDB/src/core/SConscript
@@ -40,3 +40,4 @@ mylib=myenv.Library(libname, Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", mylib)
 Default(install)
 
+Return('install')
diff --git a/libIRDB/src/core/SConstruct b/libIRDB/src/core/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b2e8e0ca9b3cfeb2a49f186cdc49b783f79c5adb 100644
--- a/libIRDB/src/core/SConstruct
+++ b/libIRDB/src/core/SConstruct
@@ -3,4 +3,7 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return('lib')
+
diff --git a/libIRDB/src/decode/SConscript b/libIRDB/src/decode/SConscript
index b2dab0b2ad8bbecc4bdac4bd39135d1ac6af1c14..84ed04ab98a48d25448eed083f2542e248250001 100644
--- a/libIRDB/src/decode/SConscript
+++ b/libIRDB/src/decode/SConscript
@@ -1,28 +1,37 @@
 import os
+import glob
 
 Import('env')
 myenv=env
 myenv.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
 
 
+libnamesimple="IRDB-decode-simple"
 libname="IRDB-decode"
 files=  '''
-	decode.cpp
-	operand.cpp
+	decode_cs.cpp
+	operand_cs.cpp
+	decode_bea.cpp
+	operand_bea.cpp
+	decode_meta.cpp
+	operand_meta.cpp
 	'''
 cpppath=''' 
 	$SECURITY_TRANSFORMS_HOME/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB/include/
 	$SECURITY_TRANSFORMS_HOME/beaengine/include
 	$SECURITY_TRANSFORMS_HOME/beaengine/beaengineSources/Includes/
+	$SECURITY_TRANSFORMS_HOME/libcapstone/include/
 	'''
 
 #myenv.Append(CCFLAGS=" -Wall -W -Wextra -Wconversion ")
 
 myenv=myenv.Clone(CPPPATH=Split(cpppath))
 myenv.Append(CXXFLAGS = " -std=c++11 ")
-lib=myenv.Library(libname, Split(files))
-
+globs=glob.glob(os.environ['SECURITY_TRANSFORMS_HOME']+'/libcapstone/zipr_unpack/*.o')
+lib=myenv.Library(libname, Split(files)  + globs ); 
 install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+
+Return('install')
diff --git a/libIRDB/src/syscall/SConscript b/libIRDB/src/syscall/SConscript
index ebf16328edbcd500f055bcf7ea51829f67a77ced..6d3fef69b8258b05a33fe0add5f0c11d4493d1a8 100644
--- a/libIRDB/src/syscall/SConscript
+++ b/libIRDB/src/syscall/SConscript
@@ -24,3 +24,4 @@ lib=myenv.Library(libname, Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/libIRDB/src/syscall/SConstruct b/libIRDB/src/syscall/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/libIRDB/src/syscall/SConstruct
+++ b/libIRDB/src/syscall/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/libIRDB/src/util/SConscript b/libIRDB/src/util/SConscript
index 6bb27dc65e63018410821ac1fbd47602ed8dabf2..41ea8016de64c8037e22fcbf060f2dea24df46cf 100644
--- a/libIRDB/src/util/SConscript
+++ b/libIRDB/src/util/SConscript
@@ -26,3 +26,4 @@ lib=myenv.Library(libname, Split(files))
 install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/libIRDB/src/util/SConstruct b/libIRDB/src/util/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/libIRDB/src/util/SConstruct
+++ b/libIRDB/src/util/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/libIRDB/test/SConscript b/libIRDB/test/SConscript
index 0670b8c24170d765b9e52a34bde4d84348a9ddb0..f0179c2fbb6d15753d6a4e70f8c586df08e50cef 100644
--- a/libIRDB/test/SConscript
+++ b/libIRDB/test/SConscript
@@ -6,6 +6,7 @@ Import('env')
 myenv=env.Clone()
 myenv.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
 
+installed=[]
 
 if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['build_tools']) == 1:
 
@@ -27,12 +28,13 @@ if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['buil
 
 	myenv.Append(CCFLAGS=" -std=c++11 ")
 	ehframe=myenv.Object("read_ehframe.cpp");
+	split_eh_frame=myenv.Object("split_eh_frame.cpp");
 
-	pgm=myenv.Program("fill_in_indtargs.exe",  ehframe+Split("split_eh_frame.cpp fill_in_indtargs.cpp check_thunks.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
+	pgm=myenv.Program("fill_in_indtargs.exe",  ehframe+split_eh_frame+Split("fill_in_indtargs.cpp check_thunks.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 	install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 	Default(install)
 
-	pgm=myenv.Program("fill_in_cfg.exe",  Split("split_eh_frame.cpp fill_in_cfg.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
+	pgm=myenv.Program("fill_in_cfg.exe",  split_eh_frame+Split("fill_in_cfg.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 	install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 	Default(install)
 
@@ -46,7 +48,7 @@ if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['buil
 		find_strings build_callgraph build_preds rename_function pin_address mark_functions_safe
 		'''
 	for i in Split(pgms):
-		print "Registering pgm: "+ i
+		# print "Registering pgm: "+ i
 		pgm=myenv.Program(target=i+".exe",  source=Split(i+".cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 		install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 		Default(install)
@@ -56,4 +58,7 @@ if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['buil
 	pgm=myenv.Program(target="ilr.exe",  source=Split("ilr.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 	install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 	Default(install)
+	installed=installed+install
+
+Return('installed')
 
diff --git a/libIRDB/test/SConstruct b/libIRDB/test/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..b5b7b78c5f88640c7e8877a9df76dc9191af7498 100644
--- a/libIRDB/test/SConstruct
+++ b/libIRDB/test/SConstruct
@@ -4,3 +4,5 @@
 env=Environment()
 Export('env')
 lib=SConscript("SConscript")
+
+Return('lib')
diff --git a/libMEDSannotation/SConscript b/libMEDSannotation/SConscript
index 30ccd086cf20732c3d1c568fdf33f486abb43194..2e097e32fc108ea964bffb401cf7c7c5871faa45 100644
--- a/libMEDSannotation/SConscript
+++ b/libMEDSannotation/SConscript
@@ -30,4 +30,4 @@ lib=myenv.Library(lib, Split(files))
 
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
-
+Return('install')
diff --git a/libMEDSannotation/SConstruct b/libMEDSannotation/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..b3bd01322f2b78089fd86e0e9b0ae01897c9c8a5 100644
--- a/libMEDSannotation/SConstruct
+++ b/libMEDSannotation/SConstruct
@@ -4,3 +4,4 @@
 env=Environment()
 Export('env')
 lib=SConscript("SConscript")
+Return('lib')
diff --git a/libStructDiv/SConscript b/libStructDiv/SConscript
index 9a892bbbe37ce72b3e30aa45009940def655d08a..2a0d786661a3ba6f1201a5e72b6e1fb2649da336 100644
--- a/libStructDiv/SConscript
+++ b/libStructDiv/SConscript
@@ -3,5 +3,8 @@ import os
 Import('env')
 
 
-SConscript("src/SConscript")
-SConscript("test/SConscript")
+lib1=SConscript("src/SConscript")
+lib2=SConscript("test/SConscript")
+
+rets = [ lib1, lib2]
+Return('rets')
diff --git a/libStructDiv/SConstruct b/libStructDiv/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..4d6381b5999d3e6d4e4687fc95f444ea2c4c5747 100644
--- a/libStructDiv/SConstruct
+++ b/libStructDiv/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return(lib)
diff --git a/libStructDiv/src/SConscript b/libStructDiv/src/SConscript
index 8b2ecd47a9fbaaa02583a43d8926fe258e8b2fad..d3bdda8cda03d9dca9dee315cae1ed2131c9f294 100644
--- a/libStructDiv/src/SConscript
+++ b/libStructDiv/src/SConscript
@@ -20,3 +20,4 @@ lib=myenv.Library("StructDiv",  Split(files))
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
 
+Return('install')
diff --git a/libStructDiv/test/SConscript b/libStructDiv/test/SConscript
index b9e6a690afbfc1bf1fff1cc8d877a373cb26f97f..bb0d3ecc9d7f465928e0125101d5e792f9ec5279 100644
--- a/libStructDiv/test/SConscript
+++ b/libStructDiv/test/SConscript
@@ -5,6 +5,7 @@ Import('env')
 myenv=env.Clone()
 myenv.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
 
+installed=[] 
 if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['build_tools']) == 1:
 
 	cpppath=''' 
@@ -20,10 +21,13 @@ if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['buil
 
 	pgms="simple_sd_driver"
 	for i in Split(pgms):
+		print "building "+str(i)
 		pgm=myenv.Program(target=i+".exe",  source=Split(i+".cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 		install=myenv.Install("$SECURITY_TRANSFORMS_HOME/libStructDiv/test/", pgm)
 		Default(install)
+		installed=installed+[install]
 
 
 		
 		
+Return('installed')
diff --git a/libtransform/SConscript b/libtransform/SConscript
index 4440b8bb34cf1d2b31e414b30a40dec6b26155b4..f0e0b9fd099936cb34955e3edbf6031acbe0dace 100644
--- a/libtransform/SConscript
+++ b/libtransform/SConscript
@@ -2,4 +2,6 @@ import os
 
 Import('env')
 
-SConscript("src/SConscript")
+lib=SConscript("src/SConscript")
+
+Return('lib')
diff --git a/libtransform/SConstruct b/libtransform/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..4d6381b5999d3e6d4e4687fc95f444ea2c4c5747 100644
--- a/libtransform/SConstruct
+++ b/libtransform/SConstruct
@@ -3,4 +3,6 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+
+Return(lib)
diff --git a/libtransform/src/SConscript b/libtransform/src/SConscript
index 4dc51e5d605dfa49ce957c385ed3edc52691d98e..b03914c5294b03de387a56d071f06d126ad5ccfe 100644
--- a/libtransform/src/SConscript
+++ b/libtransform/src/SConscript
@@ -24,4 +24,5 @@ myenv=myenv.Clone(CPPPATH=Split(cpppath))
 lib=myenv.Library("transform",  Split(files), LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 Default(install)
+Return('install')
 
diff --git a/tools/SConscript b/tools/SConscript
index d5e1637107b5c1bd48debab35c23b9b6dbe23c4b..17a3c69cccbe455ca90bddcf1a4ad5f225159acf 100644
--- a/tools/SConscript
+++ b/tools/SConscript
@@ -2,6 +2,8 @@ import os
 
 Import('env')
 
+tools=[]
+
 dirs='''
 	transforms
 	cover
@@ -30,9 +32,13 @@ cgc_dirs='''
 
 
 for i in Split(dirs):
-	SConscript(os.path.join(i,"SConscript"))
+	newtool=SConscript(os.path.join(i,"SConscript"))
+	tools=tools + newtool
 
 
 if 'build_cgc' in env and int(env['build_cgc']) == 1:
 	for i in Split(cgc_dirs):
-		SConscript(os.path.join(i,"SConscript"))
+		newtool=SConscript(os.path.join(i,"SConscript"))
+		tools=tools+newtool
+
+Return('tools')
diff --git a/tools/SConstruct b/tools/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b3bd01322f2b78089fd86e0e9b0ae01897c9c8a5 100644
--- a/tools/SConstruct
+++ b/tools/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+Return('lib')
diff --git a/tools/absolutify/SConscript b/tools/absolutify/SConscript
index daa71e290a06c49f4eb8f603c34503bee7310196..d5b8b4f33acfeaf1952a42137880360e9532faba 100644
--- a/tools/absolutify/SConscript
+++ b/tools/absolutify/SConscript
@@ -26,3 +26,5 @@ myenv.Append(CPPFLAGS=CPPFLAGS)
 pgm=myenv.Program(target="absolutify.exe", source=Split("absolutify.cpp absolutify_driver.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
+
+Return('install')
diff --git a/tools/absolutify/SConstruct b/tools/absolutify/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/absolutify/SConstruct
+++ b/tools/absolutify/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/c2e/SConscript b/tools/c2e/SConscript
index c70fa5ae509a10a78117df9d229e874c5d108ef5..630d3365df2cf5f66865f79a059dca333b7f30b8 100644
--- a/tools/c2e/SConscript
+++ b/tools/c2e/SConscript
@@ -34,3 +34,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/c2e/SConstruct b/tools/c2e/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/c2e/SConstruct
+++ b/tools/c2e/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cgc_buffrecv/SConscript b/tools/cgc_buffrecv/SConscript
index 5c1c4e03072c5438adb185c7b43dea11df4c0987..9523749a76124e67bdf1963e870de473a33e6293 100644
--- a/tools/cgc_buffrecv/SConscript
+++ b/tools/cgc_buffrecv/SConscript
@@ -31,3 +31,4 @@ Default(install)
 
 
 
+Return('install')
diff --git a/tools/cgc_buffrecv/SConstruct b/tools/cgc_buffrecv/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cgc_buffrecv/SConstruct
+++ b/tools/cgc_buffrecv/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cgc_hlx/SConscript b/tools/cgc_hlx/SConscript
index 7db5c96ed5c5835bed5386d968467d79c001691d..869e57028777a1575f404a698fc8a3595699239b 100644
--- a/tools/cgc_hlx/SConscript
+++ b/tools/cgc_hlx/SConscript
@@ -28,3 +28,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/cgc_hlx/SConstruct b/tools/cgc_hlx/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cgc_hlx/SConstruct
+++ b/tools/cgc_hlx/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cgc_rigrandom/SConscript b/tools/cgc_rigrandom/SConscript
index da9bdfc654e827a5ba0efac22ad70e61dd70413b..e3c18a29aaa3ab3fb5355f388dc045265b37715f 100644
--- a/tools/cgc_rigrandom/SConscript
+++ b/tools/cgc_rigrandom/SConscript
@@ -30,5 +30,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
 
-	
-	
+Return('install')
diff --git a/tools/cgc_rigrandom/SConstruct b/tools/cgc_rigrandom/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cgc_rigrandom/SConstruct
+++ b/tools/cgc_rigrandom/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cgclibc/SConscript b/tools/cgclibc/SConscript
index c8e26c0ee6d15f8051bcc59b063c23d573c67840..5dc6aeb2e2167a2628726abbedfd3a1f218a78d1 100644
--- a/tools/cgclibc/SConscript
+++ b/tools/cgclibc/SConscript
@@ -29,15 +29,17 @@ LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
 LIBS=Split(env.subst('$BASE_IRDB_LIBS')+ " IRDB-cfg IRDB-syscall IRDB-util rewrite ")
 
 pgm=myenv.Program("cgclibc.exe",  files1,  LIBPATH=LIBPATH, LIBS=LIBS)
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
-Default(install)
+install1=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install1)
 
 pgm=myenv.Program("display_functions.exe",  files2,  LIBPATH=LIBPATH, LIBS=LIBS)
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
-Default(install)
+install2=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install2)
 
 pgm=myenv.Program("infer_syscall_wrappers.exe",  files3,  LIBPATH=LIBPATH, LIBS=LIBS)
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
-Default(install)
+install3=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install3)
 
+ret=[] + lib1 + lib2 + lib3;
 
+Return('ret')
diff --git a/tools/cgclibc/SConstruct b/tools/cgclibc/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..44d3bd9e81dfb9812806072103183b71c0810436 100644
--- a/tools/cgclibc/SConstruct
+++ b/tools/cgclibc/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+ret=SConscript("SConscript")
+Return('ret')
diff --git a/tools/cinderella/SConscript b/tools/cinderella/SConscript
index ee2ae3093ab0acbee4fc7ed98a5e39e8ff00c8ca..311ac77f7962c5e31086dd18dba937550fed7255 100644
--- a/tools/cinderella/SConscript
+++ b/tools/cinderella/SConscript
@@ -30,3 +30,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/cinderella/SConstruct b/tools/cinderella/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cinderella/SConstruct
+++ b/tools/cinderella/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cookbook/SConscript b/tools/cookbook/SConscript
index eaac1c6d8dda0ddacf28a72c32079b95241839ab..4f8ac9a498a00b9c6a32370ca4f7f9b11ab43b53 100644
--- a/tools/cookbook/SConscript
+++ b/tools/cookbook/SConscript
@@ -48,3 +48,4 @@ for pgm in pgms.keys():
 
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", ppgms)
 Default(install)
+Return('install')
diff --git a/tools/cookbook/SConstruct b/tools/cookbook/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cookbook/SConstruct
+++ b/tools/cookbook/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/cover/SConscript b/tools/cover/SConscript
index 7e2cd6d8f79444d67fe0e3676c0ca10bc4f96a15..1e76314109859e9a6beb7a8bf62cafbcd6b67d17 100644
--- a/tools/cover/SConscript
+++ b/tools/cover/SConscript
@@ -27,4 +27,4 @@ install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
 
 	
-	
+Return('install')
diff --git a/tools/cover/SConstruct b/tools/cover/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/cover/SConstruct
+++ b/tools/cover/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/dump_map/SConscript b/tools/dump_map/SConscript
index f0ff16c1ea50fefae7cfd264983e921c1e4839a6..d5aef00f1bfafb59fbe3d09bc8aa0aa5e8550eee 100644
--- a/tools/dump_map/SConscript
+++ b/tools/dump_map/SConscript
@@ -23,12 +23,10 @@ myenv.Append(CPPFLAGS="-std=c++11")
 pgm="dump_map.exe"
 
 LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
-LIBS=Split( env.subst('$BASE_IRDB_LIBS')+ "  IRDB-cfg IRDB-util transform rewrite MEDSannotation ") 
+LIBS=Split( env.subst('$BASE_IRDB_LIBS')+ "  IRDB-cfg IRDB-decode IRDB-util transform rewrite MEDSannotation ") 
 myenv=myenv.Clone(CPPPATH=Split(cpppath))
 pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 #install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
-
-	
-	
+Return('install')
diff --git a/tools/dump_map/SConstruct b/tools/dump_map/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/dump_map/SConstruct
+++ b/tools/dump_map/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/fix_canaries/SConscript b/tools/fix_canaries/SConscript
index df3000ce513aad31b753ce9710db83b112c46169..08bd42059a90850220b2f853e78b47baa2ed3b2f 100644
--- a/tools/fix_canaries/SConscript
+++ b/tools/fix_canaries/SConscript
@@ -26,3 +26,4 @@ myenv.Append(CPPFLAGS=CPPFLAGS)
 pgm=myenv.Program(target="fix_canaries.exe", source=Split("fix_canaries.cpp fix_canaries_driver.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
+Return('install')
diff --git a/tools/fix_canaries/SConstruct b/tools/fix_canaries/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/fix_canaries/SConstruct
+++ b/tools/fix_canaries/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/fix_rets/SConscript b/tools/fix_rets/SConscript
index dad34fb62d9281e1fb2fbc01e38b71979ba0df3a..ee40ed515b46d9c0d028518b47850e9cd38712f3 100644
--- a/tools/fix_rets/SConscript
+++ b/tools/fix_rets/SConscript
@@ -28,5 +28,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
 
-	
-	
+Return('install')
diff --git a/tools/fix_rets/SConstruct b/tools/fix_rets/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/fix_rets/SConstruct
+++ b/tools/fix_rets/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/hook_dynamic_call/SConscript b/tools/hook_dynamic_call/SConscript
index b00b30d89da8acccf6029e51ace291ad7b60f302..aee9b1d2a894a52b1fe3e23f3a8be5da99fc8b21 100644
--- a/tools/hook_dynamic_call/SConscript
+++ b/tools/hook_dynamic_call/SConscript
@@ -33,3 +33,4 @@ myenv.Append(CPPFLAGS=CPPFLAGS)
 pgm=myenv.Program(target="hook_dynamic_calls.exe", source=Split("hook_dynamic_calls.cpp hook_dynamic_calls_driver.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
+Return('install')
diff --git a/tools/hook_dynamic_call/SConstruct b/tools/hook_dynamic_call/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/hook_dynamic_call/SConstruct
+++ b/tools/hook_dynamic_call/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/hook_start/SConscript b/tools/hook_start/SConscript
index 2dd7e7a6ce65e1795074a78151ca08a47fb662b8..0af42c3ba9898fcded24e1ae06e4604cdb65b04a 100644
--- a/tools/hook_start/SConscript
+++ b/tools/hook_start/SConscript
@@ -26,3 +26,4 @@ myenv.Append(CPPFLAGS=CPPFLAGS)
 pgm=myenv.Program(target="hook_start.exe", source=Split("hook_start.cpp hook_start_driver.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
+Return('install')
diff --git a/tools/hook_start/SConstruct b/tools/hook_start/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/hook_start/SConstruct
+++ b/tools/hook_start/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/inferfn/SConscript b/tools/inferfn/SConscript
index 70849d175649f517b1f3f3404462baae081a6885..35523eae79c62cdac9e6cd9461d5c41e355bf89a 100644
--- a/tools/inferfn/SConscript
+++ b/tools/inferfn/SConscript
@@ -28,3 +28,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/inferfn/SConstruct b/tools/inferfn/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/inferfn/SConstruct
+++ b/tools/inferfn/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/meds2pdb/SConscript b/tools/meds2pdb/SConscript
index 37465046eeb85a363d7ec110f22ea58be12183c9..e0798fbc067960f63645b1cf65708f1435908ebf 100644
--- a/tools/meds2pdb/SConscript
+++ b/tools/meds2pdb/SConscript
@@ -26,8 +26,11 @@ LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
 LIBS=Split(" IRDB-cfg IRDB-util xform rewrite MEDSannotation "+env.subst('$BASE_IRDB_LIBS')) 
 myenv=myenv.Clone(CPPPATH=Split(cpppath))
 pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
-Default(myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm))
-Default(myenv.Install("$SECURITY_TRANSFORMS_HOME/tools/meds2pdb/", pgm))
+install1=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+install2=myenv.Install("$SECURITY_TRANSFORMS_HOME/tools/meds2pdb/", pgm)
 
-	
-	
+Default(install1)
+Default(install2)
+
+install=[]+install1+install2
+Return('install')
diff --git a/tools/meds2pdb/SConstruct b/tools/meds2pdb/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/meds2pdb/SConstruct
+++ b/tools/meds2pdb/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/memcover/SConscript b/tools/memcover/SConscript
index c9d788227f850a7627a75a50c28c6c593a9194a3..41db0300f3dd10febba1468635256250e4bff3a5 100644
--- a/tools/memcover/SConscript
+++ b/tools/memcover/SConscript
@@ -30,3 +30,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/memcover/SConstruct b/tools/memcover/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/memcover/SConstruct
+++ b/tools/memcover/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/prince/SConscript b/tools/prince/SConscript
index d6785deb8c13ed0a94339cd6b209dadc870617d7..53e42da040f00a415f252bc032f1eb6390895995 100644
--- a/tools/prince/SConscript
+++ b/tools/prince/SConscript
@@ -29,3 +29,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/prince/SConstruct b/tools/prince/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/prince/SConstruct
+++ b/tools/prince/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/print_cfi_stats/SConscript b/tools/print_cfi_stats/SConscript
index 6d842fe1021add2398003d3bf4380168aa94eb71..8ee84510d86decced082b76ce2a773fe4b6e68f0 100644
--- a/tools/print_cfi_stats/SConscript
+++ b/tools/print_cfi_stats/SConscript
@@ -27,6 +27,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 #install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
-
-	
-	
+Return('install')
diff --git a/tools/print_cfi_stats/SConstruct b/tools/print_cfi_stats/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/print_cfi_stats/SConstruct
+++ b/tools/print_cfi_stats/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/ret_shadow_stack/SConscript b/tools/ret_shadow_stack/SConscript
index dcc946d1ee7fdf56afb0ffd5fc480deb81982ffb..121e60251fc89adf73ab30ac5a07aa7dedb5a3be 100644
--- a/tools/ret_shadow_stack/SConscript
+++ b/tools/ret_shadow_stack/SConscript
@@ -26,5 +26,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
 
-	
-	
+Return('install')
diff --git a/tools/ret_shadow_stack/SConstruct b/tools/ret_shadow_stack/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/ret_shadow_stack/SConstruct
+++ b/tools/ret_shadow_stack/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/safefn/SConscript b/tools/safefn/SConscript
index 97e47c83bfb65b446c1841f6db23bf2199b40eb9..ead7daf0d6457d2d32f67a310c16d2b381d44d6f 100644
--- a/tools/safefn/SConscript
+++ b/tools/safefn/SConscript
@@ -27,5 +27,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
 
-	
-	
+Return('install')
diff --git a/tools/safefn/SConstruct b/tools/safefn/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/safefn/SConstruct
+++ b/tools/safefn/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/safefr/SConscript b/tools/safefr/SConscript
index b363ae13af4106e2fa33fd84a79debdc5e3a9405..5770d5e30c8a418486b9a6e1f48b16546908e838 100644
--- a/tools/safefr/SConscript
+++ b/tools/safefr/SConscript
@@ -27,5 +27,4 @@ pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
 Default(install)
 
-	
-	
+Return('install')
diff --git a/tools/safefr/SConstruct b/tools/safefr/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/safefr/SConstruct
+++ b/tools/safefr/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/selective_cfi/SConscript b/tools/selective_cfi/SConscript
index 8c95d4e0cbb3e9dda55ce48881416e9e6355bf13..0a41aeab6e2c1bde381ab7c7d3ed3e9ef4aee11d 100644
--- a/tools/selective_cfi/SConscript
+++ b/tools/selective_cfi/SConscript
@@ -32,5 +32,7 @@ Default(install)
 	
 	
 #lib32=SConscript("zest_cfi_runtime/SConscript", variant_dir="build32")
-SConscript("zest_cfi_runtime/SConscript") # , variant_dir="build64")
+zestcfi_lib=SConscript("zest_cfi_runtime/SConscript") # , variant_dir="build64")
 
+ret=[]+install+zestcfi_lib
+Return('ret')
diff --git a/tools/selective_cfi/SConstruct b/tools/selective_cfi/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..44d3bd9e81dfb9812806072103183b71c0810436 100644
--- a/tools/selective_cfi/SConstruct
+++ b/tools/selective_cfi/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+ret=SConscript("SConscript")
+Return('ret')
diff --git a/tools/selective_cfi/zest_cfi_runtime/SConscript b/tools/selective_cfi/zest_cfi_runtime/SConscript
index 04e9a5c3aaca5b2143b6153e57ab2ece802b0823..ca6e7f242d166dbfa4457f7d20a839bdc0137ee0 100644
--- a/tools/selective_cfi/zest_cfi_runtime/SConscript
+++ b/tools/selective_cfi/zest_cfi_runtime/SConscript
@@ -1,3 +1,5 @@
 
 Import('env')
-env.SConscript("SConscript64")
+res=env.SConscript("SConscript64")
+
+Return('res')
diff --git a/tools/selective_cfi/zest_cfi_runtime/SConscript32 b/tools/selective_cfi/zest_cfi_runtime/SConscript32
index 705492944df6261935587bf6011be99ae809c409..b33ca0df1ce495fc50cf79d7218b3d516c1609bd 100644
--- a/tools/selective_cfi/zest_cfi_runtime/SConscript32
+++ b/tools/selective_cfi/zest_cfi_runtime/SConscript32
@@ -30,5 +30,6 @@ myenv.Append(LINKFLAGS = LDFLAGS+" -m32 ")
 so32=myenv.SharedLibrary("libzestcfi32.so",  cfiles+nasmfiles32)
 install32=myenv.Install("$ZEST_RUNTIME/lib32/", so32)
 Default(install32)
+Return('install32'
 
 	
diff --git a/tools/selective_cfi/zest_cfi_runtime/SConscript64 b/tools/selective_cfi/zest_cfi_runtime/SConscript64
index d3295821a056f9de029a8e5bfc4c8ddaa9677740..9b14c4ec798020a8934afbc7e71eb0b46c8125b6 100644
--- a/tools/selective_cfi/zest_cfi_runtime/SConscript64
+++ b/tools/selective_cfi/zest_cfi_runtime/SConscript64
@@ -30,6 +30,7 @@ myenv.Append(LINKFLAGS = LDFLAGS +" -m64 ")
 so64=myenv.SharedLibrary("libzestcfi.so",  cfiles+nasmfiles64)
 install64=myenv.Install("$ZEST_RUNTIME/lib64/", so64)
 Default(install64)
+Return('install64')
 
 	
 	
diff --git a/tools/simple_cdi/SConscript b/tools/simple_cdi/SConscript
index 8168764d9949b70e3b4d3db763dffe291dbf88ac..7859959fe3fe947bfb7839924320725a3919ea1c 100644
--- a/tools/simple_cdi/SConscript
+++ b/tools/simple_cdi/SConscript
@@ -25,3 +25,4 @@ myenv=myenv.Clone(CPPPATH=Split(cpppath))
 pgm=myenv.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
 install=myenv.Install("$SECURITY_TRANSFORMS_HOME/plugins_install/", pgm)
 Default(install)
+Return('install')
diff --git a/tools/simple_cdi/SConstruct b/tools/simple_cdi/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/simple_cdi/SConstruct
+++ b/tools/simple_cdi/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/spasm/SConscript b/tools/spasm/SConscript
index cf0fa441e0240dc3242d72cc79b9645e3c4c362e..052e06ac926e3178497dc1ba0cb301ee37d473e6 100644
--- a/tools/spasm/SConscript
+++ b/tools/spasm/SConscript
@@ -29,3 +29,4 @@ Default(install)
 
 	
 	
+Return('install')
diff --git a/tools/spasm/SConstruct b/tools/spasm/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..17f632b8c29cd420163897b1eb044ca3486df362 100644
--- a/tools/spasm/SConstruct
+++ b/tools/spasm/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-lib=SConscript("SConscript")
+install=SConscript("SConscript")
+Return('install')
diff --git a/tools/transforms/SConscript b/tools/transforms/SConscript
index 43d0c3f9caa7b1c98a572902edb1ca6c47fc6396..7e3afd7727c33fe2c6aead6cd97a542586802d44 100644
--- a/tools/transforms/SConscript
+++ b/tools/transforms/SConscript
@@ -33,19 +33,21 @@ all_files="PNTransformDriver.cpp PNStackLayout.cpp PNRange.cpp Range.cpp OffsetI
 myenv=myenv.Clone(CPPPATH=Split(cpppath))
 ru_obj=myenv.Object("Rewrite_Utility.cpp");
 ru_lib=myenv.Library("rewrite", ru_obj);
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", ru_lib)
-Default(install)
+install1=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", ru_lib)
+Default(install1)
 
 p1=myenv.Program("p1transform.exe", Split(all_files), LIBS=Split(LIBS)+ru_lib, LIBPATH=Split(LIBPATH))
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", p1)
-Default(install)
-install=myenv.InstallAs("$SECURITY_TRANSFORMS_HOME/bin/pntransform.exe", p1)
-Default(install)
+install2=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", p1)
+Default(install2)
+install3=myenv.InstallAs("$SECURITY_TRANSFORMS_HOME/bin/pntransform.exe", p1)
+Default(install3)
 #install=myenv.InstallAs("p1transform.exe", p1)
 #Default(install)
 
 intdr=myenv.Program("integertransformdriver.exe", Split(integer_files), LIBS=Split(LIBS)+ru_lib, LIBPATH=Split(LIBPATH))
-install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", intdr)
-Default(install)
+install4=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", intdr)
+Default(install4)
 
 
+install=[]+install1 + install2 + install3 + install4
+Return('install')
diff --git a/tools/transforms/SConstruct b/tools/transforms/SConstruct
index c0dd68a00d406b0148a93709cf916ad6d05f282c..b3bd01322f2b78089fd86e0e9b0ae01897c9c8a5 100644
--- a/tools/transforms/SConstruct
+++ b/tools/transforms/SConstruct
@@ -3,4 +3,5 @@
 
 env=Environment()
 Export('env')
-SConscript("SConscript")
+lib=SConscript("SConscript")
+Return('lib')
diff --git a/xform/SConscript b/xform/SConscript
index a6558a57d31b436376d4bf82a68adff4ce2b63ac..4288b0ac35bf96ddb8764b4bb8573947e5b035d2 100644
--- a/xform/SConscript
+++ b/xform/SConscript
@@ -35,3 +35,4 @@ install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
 
 Default(install)
 
+Return('lib')
diff --git a/xform/SConstruct b/xform/SConstruct
index c96332f0422ad5df0853931209219d9a2e20bc17..e542bcbc14c04dc8cdf8e3535b9585b4ef0cf232 100644
--- a/xform/SConstruct
+++ b/xform/SConstruct
@@ -4,3 +4,4 @@
 env=Environment()
 Export('env')
 lib=SConscript("SConscript")
+Return(lib)