From fd7e342365abef94477611386e51055de5b424fe Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Fri, 16 Feb 2018 16:01:35 +0000
Subject: [PATCH] fixed race condition in build

Former-commit-id: 280ea31016e389efbd1c373f5b5b9523a567b6bc
---
 SConscript                                    | 37 +++++++++++++++----
 appfw/SConscript                              |  6 ++-
 appfw/SConstruct                              |  4 +-
 beaengine/SConscript                          |  1 +
 beaengine/SConstruct                          |  2 +
 libEXEIO/SConscript                           |  7 +++-
 libEXEIO/SConstruct                           |  4 +-
 libEXEIO/src/SConscript                       |  1 +
 libEXEIO/src/SConstruct                       |  4 +-
 libEXEIO/test/SConscript                      |  2 +-
 libEXEIO/test/SConstruct                      |  3 +-
 libIRDB/SConscript                            |  8 +++-
 libIRDB/SConstruct                            |  4 +-
 libIRDB/src/SConscript                        |  6 ++-
 libIRDB/src/SConstruct                        |  4 +-
 libIRDB/src/cfg/SConscript                    |  1 +
 libIRDB/src/cfg/SConstruct                    |  3 +-
 libIRDB/src/core/SConscript                   |  1 +
 libIRDB/src/core/SConstruct                   |  5 ++-
 libIRDB/src/decode/SConscript                 | 17 +++++++--
 libIRDB/src/syscall/SConscript                |  1 +
 libIRDB/src/syscall/SConstruct                |  3 +-
 libIRDB/src/util/SConscript                   |  1 +
 libIRDB/src/util/SConstruct                   |  3 +-
 libIRDB/test/SConscript                       | 11 ++++--
 libIRDB/test/SConstruct                       |  2 +
 libMEDSannotation/SConscript                  |  2 +-
 libMEDSannotation/SConstruct                  |  1 +
 libStructDiv/SConscript                       |  7 +++-
 libStructDiv/SConstruct                       |  4 +-
 libStructDiv/src/SConscript                   |  1 +
 libStructDiv/test/SConscript                  |  4 ++
 libtransform/SConscript                       |  4 +-
 libtransform/SConstruct                       |  4 +-
 libtransform/src/SConscript                   |  1 +
 tools/SConscript                              | 10 ++++-
 tools/SConstruct                              |  3 +-
 tools/absolutify/SConscript                   |  2 +
 tools/absolutify/SConstruct                   |  3 +-
 tools/c2e/SConscript                          |  1 +
 tools/c2e/SConstruct                          |  3 +-
 tools/cgc_buffrecv/SConscript                 |  1 +
 tools/cgc_buffrecv/SConstruct                 |  3 +-
 tools/cgc_hlx/SConscript                      |  1 +
 tools/cgc_hlx/SConstruct                      |  3 +-
 tools/cgc_rigrandom/SConscript                |  3 +-
 tools/cgc_rigrandom/SConstruct                |  3 +-
 tools/cgclibc/SConscript                      | 14 ++++---
 tools/cgclibc/SConstruct                      |  3 +-
 tools/cinderella/SConscript                   |  1 +
 tools/cinderella/SConstruct                   |  3 +-
 tools/cookbook/SConscript                     |  1 +
 tools/cookbook/SConstruct                     |  3 +-
 tools/cover/SConscript                        |  2 +-
 tools/cover/SConstruct                        |  3 +-
 tools/dump_map/SConscript                     |  6 +--
 tools/dump_map/SConstruct                     |  3 +-
 tools/fix_canaries/SConscript                 |  1 +
 tools/fix_canaries/SConstruct                 |  3 +-
 tools/fix_rets/SConscript                     |  3 +-
 tools/fix_rets/SConstruct                     |  3 +-
 tools/hook_dynamic_call/SConscript            |  1 +
 tools/hook_dynamic_call/SConstruct            |  3 +-
 tools/hook_start/SConscript                   |  1 +
 tools/hook_start/SConstruct                   |  3 +-
 tools/inferfn/SConscript                      |  1 +
 tools/inferfn/SConstruct                      |  3 +-
 tools/meds2pdb/SConscript                     | 11 ++++--
 tools/meds2pdb/SConstruct                     |  3 +-
 tools/memcover/SConscript                     |  1 +
 tools/memcover/SConstruct                     |  3 +-
 tools/prince/SConscript                       |  1 +
 tools/prince/SConstruct                       |  3 +-
 tools/print_cfi_stats/SConscript              |  4 +-
 tools/print_cfi_stats/SConstruct              |  3 +-
 tools/ret_shadow_stack/SConscript             |  3 +-
 tools/ret_shadow_stack/SConstruct             |  3 +-
 tools/safefn/SConscript                       |  3 +-
 tools/safefn/SConstruct                       |  3 +-
 tools/safefr/SConscript                       |  3 +-
 tools/safefr/SConstruct                       |  3 +-
 tools/selective_cfi/SConscript                |  4 +-
 tools/selective_cfi/SConstruct                |  3 +-
 .../selective_cfi/zest_cfi_runtime/SConscript |  4 +-
 .../zest_cfi_runtime/SConscript32             |  1 +
 .../zest_cfi_runtime/SConscript64             |  1 +
 tools/simple_cdi/SConscript                   |  1 +
 tools/simple_cdi/SConstruct                   |  3 +-
 tools/spasm/SConscript                        |  1 +
 tools/spasm/SConstruct                        |  3 +-
 tools/transforms/SConscript                   | 18 +++++----
 tools/transforms/SConstruct                   |  3 +-
 xform/SConscript                              |  1 +
 xform/SConstruct                              |  1 +
 94 files changed, 252 insertions(+), 105 deletions(-)

diff --git a/SConscript b/SConscript
index 512f856a7..9d20c3c1a 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 e10a2cbd2..de09c4c1a 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 1c9580cf6..6a58002c7 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 8590b6c8f..b2896915d 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 c96332f04..b5b7b78c5 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 604584b90..4b9249745 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 c0dd68a00..b5b7b78c5 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 64db2b457..dea83ae00 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 c0dd68a00..b5b7b78c5 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 4225d8299..8d8e20a48 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 c0dd68a00..b3bd01322 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 9a892bbbe..bd5fcb835 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 c0dd68a00..b5b7b78c5 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 ded23c7cb..b44cd606b 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 c0dd68a00..b5b7b78c5 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 3e12e3200..0cde74ca7 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 c0dd68a00..b3bd01322 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 194340eba..897014677 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 c0dd68a00..b2e8e0ca9 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 b2dab0b2a..84ed04ab9 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 ebf16328e..6d3fef69b 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 c0dd68a00..17f632b8c 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 6bb27dc65..41ea8016d 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 c0dd68a00..17f632b8c 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 0670b8c24..f0179c2fb 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 c96332f04..b5b7b78c5 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 30ccd086c..2e097e32f 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 c96332f04..b3bd01322 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 9a892bbbe..2a0d78666 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 c0dd68a00..4d6381b59 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 8b2ecd47a..d3bdda8cd 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 b9e6a690a..bb0d3ecc9 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 4440b8bb3..f0e0b9fd0 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 c0dd68a00..4d6381b59 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 4dc51e5d6..b03914c52 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 d5e163710..17a3c69cc 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 c0dd68a00..b3bd01322 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 daa71e290..d5b8b4f33 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 c96332f04..17f632b8c 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 c70fa5ae5..630d3365d 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 c96332f04..17f632b8c 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 5c1c4e030..9523749a7 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 c96332f04..17f632b8c 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 7db5c96ed..869e57028 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 c96332f04..17f632b8c 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 da9bdfc65..e3c18a29a 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 c96332f04..17f632b8c 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 c8e26c0ee..5dc6aeb2e 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 c96332f04..44d3bd9e8 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 ee2ae3093..311ac77f7 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 c96332f04..17f632b8c 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 eaac1c6d8..4f8ac9a49 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 c96332f04..17f632b8c 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 7e2cd6d8f..1e7631410 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 c96332f04..17f632b8c 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 f0ff16c1e..d5aef00f1 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 c96332f04..17f632b8c 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 df3000ce5..08bd42059 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 c96332f04..17f632b8c 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 dad34fb62..ee40ed515 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 c96332f04..17f632b8c 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 b00b30d89..aee9b1d2a 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 c96332f04..17f632b8c 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 2dd7e7a6c..0af42c3ba 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 c96332f04..17f632b8c 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 70849d175..35523eae7 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 c96332f04..17f632b8c 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 37465046e..e0798fbc0 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 c96332f04..17f632b8c 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 c9d788227..41db0300f 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 c96332f04..17f632b8c 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 d6785deb8..53e42da04 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 c96332f04..17f632b8c 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 6d842fe10..8ee84510d 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 c96332f04..17f632b8c 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 dcc946d1e..121e60251 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 c96332f04..17f632b8c 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 97e47c83b..ead7daf0d 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 c96332f04..17f632b8c 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 b363ae13a..5770d5e30 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 c96332f04..17f632b8c 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 8c95d4e0c..0a41aeab6 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 c96332f04..44d3bd9e8 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 04e9a5c3a..ca6e7f242 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 705492944..b33ca0df1 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 d3295821a..9b14c4ec7 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 8168764d9..7859959fe 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 c96332f04..17f632b8c 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 cf0fa441e..052e06ac9 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 c96332f04..17f632b8c 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 43d0c3f9c..7e3afd772 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 c0dd68a00..b3bd01322 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 a6558a57d..4288b0ac3 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 c96332f04..e542bcbc1 100644
--- a/xform/SConstruct
+++ b/xform/SConstruct
@@ -4,3 +4,4 @@
 env=Environment()
 Export('env')
 lib=SConscript("SConscript")
+Return(lib)
-- 
GitLab