From fcb1a907e4c21f63f50f1a73d32824290c9e8f85 Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Thu, 4 Jun 2015 17:43:38 +0000
Subject: [PATCH] First support for scons build system

Former-commit-id: 442c0132f6c137815b9baa5c0aa7143eeb81c45c
---
 .gitattributes                    | 44 ++++++++++++++++++++++++++++++-
 SConscript                        | 35 ++++++++++++++++++++++++
 SConstruct                        |  9 -------
 libIRDB/SConscript                |  2 ++
 libIRDB/test/SConscript           | 14 ++++++++--
 libMEDSannotation/SConscript      |  1 +
 libtransform/SConscript           |  5 ++++
 libtransform/SConstruct           |  6 +++++
 libtransform/src/SConscript       | 31 ++++++++++++++++++++++
 libtransform/src/SConstruct       |  6 +++++
 tools/SConscript                  | 28 ++++++++++++++++++++
 tools/SConstruct                  |  6 +++++
 tools/c2e/SConscript              | 32 ++++++++++++++++++++++
 tools/c2e/SConstruct              |  6 +++++
 tools/c2e/c2e_instr.cpp           |  5 ++++
 tools/cgc_hlx/SConscript          | 32 ++++++++++++++++++++++
 tools/cgc_hlx/SConstruct          |  6 +++++
 tools/cgc_rigrandom/SConscript    | 32 ++++++++++++++++++++++
 tools/cgc_rigrandom/SConstruct    |  6 +++++
 tools/cgclibc/SConscript          | 43 ++++++++++++++++++++++++++++++
 tools/cgclibc/SConstruct          |  6 +++++
 tools/cinderella/SConscript       | 32 ++++++++++++++++++++++
 tools/cinderella/SConstruct       |  6 +++++
 tools/cover/SConscript            | 32 ++++++++++++++++++++++
 tools/cover/SConstruct            |  6 +++++
 tools/fix_rets/SConscript         | 32 ++++++++++++++++++++++
 tools/fix_rets/SConstruct         |  6 +++++
 tools/fptr_shadow/SConscript      | 32 ++++++++++++++++++++++
 tools/fptr_shadow/SConstruct      |  6 +++++
 tools/inferfn/SConscript          | 32 ++++++++++++++++++++++
 tools/inferfn/SConstruct          |  6 +++++
 tools/meds2pdb/SConscript         | 33 +++++++++++++++++++++++
 tools/meds2pdb/SConstruct         |  6 +++++
 tools/memcover/SConscript         | 32 ++++++++++++++++++++++
 tools/memcover/SConstruct         |  6 +++++
 tools/prince/SConscript           | 34 ++++++++++++++++++++++++
 tools/prince/SConstruct           |  6 +++++
 tools/ret_shadow_stack/SConscript | 32 ++++++++++++++++++++++
 tools/ret_shadow_stack/SConstruct |  6 +++++
 tools/safefr/SConscript           | 32 ++++++++++++++++++++++
 tools/safefr/SConstruct           |  6 +++++
 tools/selective_cfi/SConscript    | 32 ++++++++++++++++++++++
 tools/selective_cfi/SConstruct    |  6 +++++
 tools/simple_cdi/SConscript       | 32 ++++++++++++++++++++++
 tools/simple_cdi/SConstruct       |  6 +++++
 tools/spasm/SConscript            | 32 ++++++++++++++++++++++
 tools/spasm/SConstruct            |  6 +++++
 tools/watch_syscall/SConscript    | 32 ++++++++++++++++++++++
 tools/watch_syscall/SConstruct    |  6 +++++
 xform/SConscript                  |  4 +--
 50 files changed, 880 insertions(+), 14 deletions(-)
 create mode 100644 SConscript
 delete mode 100644 SConstruct
 create mode 100644 libtransform/SConscript
 create mode 100644 libtransform/SConstruct
 create mode 100644 libtransform/src/SConscript
 create mode 100644 libtransform/src/SConstruct
 create mode 100644 tools/SConscript
 create mode 100644 tools/SConstruct
 create mode 100644 tools/c2e/SConscript
 create mode 100644 tools/c2e/SConstruct
 create mode 100644 tools/cgc_hlx/SConscript
 create mode 100644 tools/cgc_hlx/SConstruct
 create mode 100644 tools/cgc_rigrandom/SConscript
 create mode 100644 tools/cgc_rigrandom/SConstruct
 create mode 100644 tools/cgclibc/SConscript
 create mode 100644 tools/cgclibc/SConstruct
 create mode 100644 tools/cinderella/SConscript
 create mode 100644 tools/cinderella/SConstruct
 create mode 100644 tools/cover/SConscript
 create mode 100644 tools/cover/SConstruct
 create mode 100644 tools/fix_rets/SConscript
 create mode 100644 tools/fix_rets/SConstruct
 create mode 100644 tools/fptr_shadow/SConscript
 create mode 100644 tools/fptr_shadow/SConstruct
 create mode 100644 tools/inferfn/SConscript
 create mode 100644 tools/inferfn/SConstruct
 create mode 100644 tools/meds2pdb/SConscript
 create mode 100644 tools/meds2pdb/SConstruct
 create mode 100644 tools/memcover/SConscript
 create mode 100644 tools/memcover/SConstruct
 create mode 100644 tools/prince/SConscript
 create mode 100644 tools/prince/SConstruct
 create mode 100644 tools/ret_shadow_stack/SConscript
 create mode 100644 tools/ret_shadow_stack/SConstruct
 create mode 100644 tools/safefr/SConscript
 create mode 100644 tools/safefr/SConstruct
 create mode 100644 tools/selective_cfi/SConscript
 create mode 100644 tools/selective_cfi/SConstruct
 create mode 100644 tools/simple_cdi/SConscript
 create mode 100644 tools/simple_cdi/SConstruct
 create mode 100644 tools/spasm/SConscript
 create mode 100644 tools/spasm/SConstruct
 create mode 100644 tools/watch_syscall/SConscript
 create mode 100644 tools/watch_syscall/SConstruct

diff --git a/.gitattributes b/.gitattributes
index 25927cbf5..fac6f00b4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,7 +3,7 @@
 /Makefile -text
 /README -text
 /README.p1 -text
-/SConstruct -text
+/SConscript -text
 appfw/Makefile.in -text
 appfw/TODO -text
 appfw/configure -text
@@ -304,6 +304,8 @@ libMEDSannotation/src/MEDS_SafeFuncAnnotation.cpp -text
 libMEDSannotation/src/Makefile.in -text
 libMEDSannotation/src/VirtualOffset.cpp -text
 libtransform/Makefile -text
+libtransform/SConscript -text
+libtransform/SConstruct -text
 libtransform/include/Rewrite_Utility.hpp -text
 libtransform/include/integertransform.hpp -text
 libtransform/include/integertransform32.hpp -text
@@ -313,6 +315,8 @@ libtransform/include/pointercheck64.hpp -text
 libtransform/include/transform.hpp -text
 libtransform/src/Makefile.in -text
 libtransform/src/Rewrite_Utility.cpp -text
+libtransform/src/SConscript -text
+libtransform/src/SConstruct -text
 libtransform/src/integertransform.cpp -text
 libtransform/src/integertransform32.cpp -text
 libtransform/src/integertransform64.cpp -text
@@ -570,11 +574,17 @@ third_party/elfio-2.2.tar.gz -text
 third_party/elfio.hpp -text
 third_party/sqlite-autoconf-3071300.tar.gz -text
 tools/Makefile.in -text
+tools/SConscript -text
+tools/SConstruct -text
 tools/c2e/Makefile.in -text
+tools/c2e/SConscript -text
+tools/c2e/SConstruct -text
 tools/c2e/c2e_driver.cpp -text
 tools/c2e/c2e_instr.cpp -text
 tools/c2e/c2e_instr.hpp -text
 tools/cgc_hlx/Makefile.in -text
+tools/cgc_hlx/SConscript -text
+tools/cgc_hlx/SConstruct -text
 tools/cgc_hlx/cgc_hlx.cpp -text
 tools/cgc_hlx/cgc_hlx.hpp -text
 tools/cgc_hlx/cgc_hlx_driver.cpp -text
@@ -582,30 +592,42 @@ tools/cgc_protect/cgc_protect_one.sh -text
 tools/cgc_protect/is_new_pov.sh -text
 tools/cgc_protect/pov_to_cso.sh -text
 tools/cgc_rigrandom/Makefile.in -text
+tools/cgc_rigrandom/SConscript -text
+tools/cgc_rigrandom/SConstruct -text
 tools/cgc_rigrandom/rigrandom_driver.cpp -text
 tools/cgc_rigrandom/rigrandom_instr.cpp -text
 tools/cgc_rigrandom/rigrandom_instr.hpp -text
 tools/cgclibc/Makefile -text
 tools/cgclibc/README -text
+tools/cgclibc/SConscript -text
+tools/cgclibc/SConstruct -text
 tools/cgclibc/cgclibc.cpp -text
 tools/cgclibc/cgclibc.hpp -text
 tools/cgclibc/cgclibc_driver.cpp -text
 tools/cgclibc/display_functions.cpp -text
 tools/cgclibc/infer_syscall_wrappers.cpp -text
 tools/cinderella/Makefile -text
+tools/cinderella/SConscript -text
+tools/cinderella/SConstruct -text
 tools/cinderella/cinderella_prep.cpp -text
 tools/cinderella/cinderella_prep.hpp -text
 tools/cinderella/cinderella_prep_driver.cpp -text
 tools/cover/Makefile.in -text
+tools/cover/SConscript -text
+tools/cover/SConstruct -text
 tools/cover/cover.cpp -text
 tools/cover/coverage.cpp -text
 tools/cover/coverage.h -text
 tools/fix_rets/Makefile.in -text
+tools/fix_rets/SConscript -text
+tools/fix_rets/SConstruct -text
 tools/fix_rets/fix_rets.cpp -text
 tools/fix_rets/fix_rets.hpp -text
 tools/fix_rets/fix_rets_driver.cpp -text
 tools/fptr_shadow/LICENSE.txt -text
 tools/fptr_shadow/Makefile.in -text
+tools/fptr_shadow/SConscript -text
+tools/fptr_shadow/SConstruct -text
 tools/fptr_shadow/fptr_shadow_driver.cpp -text
 tools/fptr_shadow/fptr_shadow_instrument64.cpp -text
 tools/fptr_shadow/fptr_shadow_instrument64.hpp -text
@@ -617,36 +639,54 @@ tools/fptr_shadow/test/sample.fptrannot -text
 tools/fptr_shadow/test/sample_loop.c -text
 tools/fptr_shadow/test/sample_loop.fptrannot -text
 tools/inferfn/Makefile -text
+tools/inferfn/SConscript -text
+tools/inferfn/SConstruct -text
 tools/inferfn/inferfn.cpp -text
 tools/inferfn/inferfn.hpp -text
 tools/inferfn/inferfn_driver.cpp -text
 tools/meds2pdb/Makefile.in -text
+tools/meds2pdb/SConscript -text
+tools/meds2pdb/SConstruct -text
 tools/meds2pdb/meds2pdb.cpp -text
 tools/memcover/General_Utility.cpp -text
 tools/memcover/General_Utility.hpp -text
 tools/memcover/Makefile -text
+tools/memcover/SConscript -text
+tools/memcover/SConstruct -text
 tools/memcover/memcover.cpp -text
 tools/prince/Makefile -text
+tools/prince/SConscript -text
+tools/prince/SConstruct -text
 tools/prince/prince.cpp -text
 tools/prince/prince.sh -text
 tools/prince/prince_driver.cpp -text
 tools/ret_shadow_stack/LICENSE.txt -text
 tools/ret_shadow_stack/Makefile.in -text
+tools/ret_shadow_stack/SConscript -text
+tools/ret_shadow_stack/SConstruct -text
 tools/ret_shadow_stack/rss_driver.cpp -text
 tools/ret_shadow_stack/rss_instrument.cpp -text
 tools/ret_shadow_stack/rss_instrument.hpp -text
 tools/safefr/LICENSE.txt -text
 tools/safefr/Makefile.in -text
+tools/safefr/SConscript -text
+tools/safefr/SConstruct -text
 tools/safefr/fill_in_safefr.cpp -text
 tools/selective_cfi/Makefile.in -text
+tools/selective_cfi/SConscript -text
+tools/selective_cfi/SConstruct -text
 tools/selective_cfi/scfi_driver.cpp -text
 tools/selective_cfi/scfi_instr.cpp -text
 tools/selective_cfi/scfi_instr.hpp -text
 tools/simple_cdi/Makefile.in -text
+tools/simple_cdi/SConscript -text
+tools/simple_cdi/SConstruct -text
 tools/simple_cdi/scdi_driver.cpp -text
 tools/simple_cdi/scdi_instr.cpp -text
 tools/simple_cdi/scdi_instr.hpp -text
 tools/spasm/Makefile.in -text
+tools/spasm/SConscript -text
+tools/spasm/SConstruct -text
 tools/spasm/ben_lib.cpp -text
 tools/spasm/ben_lib.h -text
 tools/spasm/do_nasm.sh -text
@@ -697,6 +737,8 @@ tools/transforms/transformutils.cpp -text
 tools/transforms/transformutils.h -text
 tools/watch_syscall/LICENSE.txt -text
 tools/watch_syscall/Makefile.in -text
+tools/watch_syscall/SConscript -text
+tools/watch_syscall/SConstruct -text
 tools/watch_syscall/csowarn.hpp -text
 tools/watch_syscall/wsc_driver.cpp -text
 tools/watch_syscall/wsc_instrument.cpp -text
diff --git a/SConscript b/SConscript
new file mode 100644
index 000000000..1086d3d7b
--- /dev/null
+++ b/SConscript
@@ -0,0 +1,35 @@
+import shutil
+import os
+import tarfile
+
+
+
+env=Environment()
+Export('env')
+
+
+if env.GetOption('clean'):
+    if os.path.exists("third_party/ELFIO"):
+    	shutil.rmtree("third_party/ELFIO")
+    if os.path.exists("include/elfio"):
+    	shutil.rmtree("include/elfio")
+else:
+    ELFIO_DIR="third_party/ELFIO/"
+    if not os.path.exists(ELFIO_DIR):
+        os.makedirs(ELFIO_DIR)     # make directory 
+        tgz=tarfile.open("third_party/elfio-2.2.tar.gz", "r:gz")
+	print 'Extracting elfio tarball'
+	tgz.list(verbose=False)
+        tgz.extractall(ELFIO_DIR)
+    	shutil.copytree(ELFIO_DIR+"elfio-2.2/elfio", "include/elfio")
+	shutil.copy("third_party/elfio.hpp", "include/elfio/elfio.hpp")
+    else:
+        assert os.path.isdir(ELFIO_DIR)
+
+
+libbea=SConscript("beaengine/SConscript", variant_dir='scons_build/beaengine')
+libMEDSannotation=SConscript("libMEDSannotation/SConscript", variant_dir='scons_build/libMEDSannotation')
+libxform=SConscript("xform/SConscript", variant_dir='scons_build/libxform')
+libtransform=SConscript("libtransform/SConscript", variant_dir='scons_build/libtransform')
+libIRDB=SConscript("libIRDB/SConscript", variant_dir='scons_build/libIRDB')
+SConscript("tools/SConscript", variant_dir='scons_build/tools')
diff --git a/SConstruct b/SConstruct
deleted file mode 100644
index a32498aac..000000000
--- a/SConstruct
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-env=Environment()
-Export('env')
-
-libbea=SConscript("beaengine/SConscript")
-libMEDSannotation=SConscript("libMEDSannotation/SConscript")
-libxform=SConscript("xform/SConscript")
diff --git a/libIRDB/SConscript b/libIRDB/SConscript
index 604584b90..0a61561b9 100644
--- a/libIRDB/SConscript
+++ b/libIRDB/SConscript
@@ -2,5 +2,7 @@ import os
 
 Import('env')
 
+print "In libIRDB/SConscript"
+
 SConscript("src/SConscript")
 SConscript("test/SConscript")
diff --git a/libIRDB/test/SConscript b/libIRDB/test/SConscript
index 450e26f19..72d8d4b62 100644
--- a/libIRDB/test/SConscript
+++ b/libIRDB/test/SConscript
@@ -1,5 +1,6 @@
 import os
 
+print "In libIRDB/tests/SConscript"
 
 
 Import('env')
@@ -18,7 +19,10 @@ LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
 LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d ")
 
 env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
-env.Program("fill_in_indtargs.exe",  Split("read_ehframe.cpp fill_in_indtargs.cpp check_thunks.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
+pgm=env.Program("fill_in_indtargs.exe",  Split("read_ehframe.cpp fill_in_indtargs.cpp check_thunks.cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
 
 
 pgms='''print_variant list_programs create_variant create_variantir read_variantir clone ilr 
@@ -26,5 +30,11 @@ pgms='''print_variant list_programs create_variant create_variantir read_variant
         find_strings build_callgraph build_preds rename_function pin_address
 	'''
 for i in Split(pgms):
-	env.Program(i+".exe",  i+".cpp", LIBPATH=LIBPATH, LIBS=LIBS)
+	print "Registering pgm: "+ i
+	pgm=env.Program(target=i+".exe",  source=Split(i+".cpp"), LIBPATH=LIBPATH, LIBS=LIBS)
+	install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+	env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+	Default(install)
+
+	
 	
diff --git a/libMEDSannotation/SConscript b/libMEDSannotation/SConscript
index 537b916f0..988c0c653 100644
--- a/libMEDSannotation/SConscript
+++ b/libMEDSannotation/SConscript
@@ -15,6 +15,7 @@ files=  '''
 	src/MEDS_ProblemFuncAnnotation.cpp
 	src/MEDS_Register.cpp
 	src/MEDS_SafeFuncAnnotation.cpp
+	src/VirtualOffset.cpp
 	'''
 cpppath=''' 
 	./include/
diff --git a/libtransform/SConscript b/libtransform/SConscript
new file mode 100644
index 000000000..4440b8bb3
--- /dev/null
+++ b/libtransform/SConscript
@@ -0,0 +1,5 @@
+import os
+
+Import('env')
+
+SConscript("src/SConscript")
diff --git a/libtransform/SConstruct b/libtransform/SConstruct
new file mode 100644
index 000000000..c0dd68a00
--- /dev/null
+++ b/libtransform/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+SConscript("SConscript")
diff --git a/libtransform/src/SConscript b/libtransform/src/SConscript
new file mode 100644
index 000000000..29405ab27
--- /dev/null
+++ b/libtransform/src/SConscript
@@ -0,0 +1,31 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+files="integertransform32.cpp  integertransform64.cpp  integertransform.cpp  leapattern.cpp  pointercheck64.cpp  Rewrite_Utility.cpp  transform.cpp"
+
+cpppath='''
+         $SECURITY_TRANSFORMS_HOME/include
+         $SECURITY_TRANSFORMS_HOME/libIRDB/include
+         $SECURITY_TRANSFORMS_HOME/beaengine/include
+         $SECURITY_TRANSFORMS_HOME/libtransform/include
+         $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include/
+        '''
+
+
+CFLAGS="-fPIC  "
+
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d ")
+
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+lib=env.Library("transform",  Split(files), LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/lib/")
+Default(install)
+
diff --git a/libtransform/src/SConstruct b/libtransform/src/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/libtransform/src/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/SConscript b/tools/SConscript
new file mode 100644
index 000000000..072a5f9f7
--- /dev/null
+++ b/tools/SConscript
@@ -0,0 +1,28 @@
+import os
+
+Import('env')
+
+dirs='''
+	transforms
+	c2e
+	cgc_hlx
+	cgclibc
+	cgc_rigrandom
+	cinderella
+	cover
+	fix_rets
+	fptr_shadow
+	inferfn
+	meds2pdb
+	memcover
+	prince
+	ret_shadow_stack
+	safefr
+	selective_cfi
+	simple_cdi
+	spasm
+	watch_syscall
+	'''
+
+for i in Split(dirs):
+	SConscript(os.path.join(i,"SConscript"))
diff --git a/tools/SConstruct b/tools/SConstruct
new file mode 100644
index 000000000..c0dd68a00
--- /dev/null
+++ b/tools/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+SConscript("SConscript")
diff --git a/tools/c2e/SConscript b/tools/c2e/SConscript
new file mode 100644
index 000000000..a7ba7905c
--- /dev/null
+++ b/tools/c2e/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="c2e.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite")
+
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/c2e/SConstruct b/tools/c2e/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/c2e/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/c2e/c2e_instr.cpp b/tools/c2e/c2e_instr.cpp
index a252935b3..86cc7e228 100644
--- a/tools/c2e/c2e_instr.cpp
+++ b/tools/c2e/c2e_instr.cpp
@@ -7,6 +7,7 @@
 
 // for mmap param
 #include <sys/mman.h>
+#include <bits/syscall.h>
 
 
 
@@ -271,7 +272,11 @@ Instruction_t* Cgc2Elf_Instrument::insertAllocate(Instruction_t* after)
 	after=insertAssemblyAfter(firp, after, "push esi");	 	// save reg
 	after=insertAssemblyAfter(firp, after, "push edi");	 	// save reg
 
+#ifdef SYS_mmap2
 	sprintf(buf, "mov eax, %d", SYS_mmap2);
+#else
+	assert(0);	// mmap2 required
+#endif
 	after=insertAssemblyAfter(firp, after, buf);			// set eax to syscall #
 
 
diff --git a/tools/cgc_hlx/SConscript b/tools/cgc_hlx/SConscript
new file mode 100644
index 000000000..0aede7ca6
--- /dev/null
+++ b/tools/cgc_hlx/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="cgc_hlx.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/cgc_hlx/SConstruct b/tools/cgc_hlx/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/cgc_hlx/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/cgc_rigrandom/SConscript b/tools/cgc_rigrandom/SConscript
new file mode 100644
index 000000000..56bc0071d
--- /dev/null
+++ b/tools/cgc_rigrandom/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="rigrandom.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite")
+
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/cgc_rigrandom/SConstruct b/tools/cgc_rigrandom/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/cgc_rigrandom/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/cgclibc/SConscript b/tools/cgclibc/SConscript
new file mode 100644
index 000000000..da0c9045f
--- /dev/null
+++ b/tools/cgclibc/SConscript
@@ -0,0 +1,43 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CCFLAGS="-fPIC  -DCGC"
+
+env=env.Clone(CPPPATH=Split(cpppath), CCFLAGS=CCFLAGS)
+cgclibc=env.Object("cgclibc.cpp")
+files1=Split("cgclibc_driver.cpp")+cgclibc
+files2=Split("display_functions.cpp")+cgclibc 
+files3=Split("infer_syscall_wrappers.cpp")+cgclibc 
+
+
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-syscall IRDB-util pqxx BeaEngine_s_d rewrite")
+
+pgm=env.Program("cgclibc.exe",  files1,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install)
+
+pgm=env.Program("display_functions.exe",  files2,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install)
+
+pgm=env.Program("infer_syscall_wrappers.exe",  files3,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+Default(install)
+
+
diff --git a/tools/cgclibc/SConstruct b/tools/cgclibc/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/cgclibc/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/cinderella/SConscript b/tools/cinderella/SConscript
new file mode 100644
index 000000000..1b6d9af8f
--- /dev/null
+++ b/tools/cinderella/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="cinderella_prep.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/cinderella/SConstruct b/tools/cinderella/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/cinderella/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/cover/SConscript b/tools/cover/SConscript
new file mode 100644
index 000000000..3a81a3227
--- /dev/null
+++ b/tools/cover/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="cover"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite")
+
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/cover/SConstruct b/tools/cover/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/cover/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/fix_rets/SConscript b/tools/fix_rets/SConscript
new file mode 100644
index 000000000..99e4a012d
--- /dev/null
+++ b/tools/fix_rets/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="fix_rets.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/fix_rets/SConstruct b/tools/fix_rets/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/fix_rets/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/fptr_shadow/SConscript b/tools/fptr_shadow/SConscript
new file mode 100644
index 000000000..49893d041
--- /dev/null
+++ b/tools/fptr_shadow/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="fptr_shadow64.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/fptr_shadow/SConstruct b/tools/fptr_shadow/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/fptr_shadow/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/inferfn/SConscript b/tools/inferfn/SConscript
new file mode 100644
index 000000000..e353ba61b
--- /dev/null
+++ b/tools/inferfn/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="inferfn.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/inferfn/SConstruct b/tools/inferfn/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/inferfn/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/meds2pdb/SConscript b/tools/meds2pdb/SConscript
new file mode 100644
index 000000000..00b4d7197
--- /dev/null
+++ b/tools/meds2pdb/SConscript
@@ -0,0 +1,33 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/xform
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="meds2pdb"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx xform BeaEngine_s_d rewrite MEDSannotation ") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/meds2pdb/SConstruct b/tools/meds2pdb/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/meds2pdb/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/memcover/SConscript b/tools/memcover/SConscript
new file mode 100644
index 000000000..f129b0596
--- /dev/null
+++ b/tools/memcover/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="memcover.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/memcover/SConstruct b/tools/memcover/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/memcover/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/prince/SConscript b/tools/prince/SConscript
new file mode 100644
index 000000000..68ff522c5
--- /dev/null
+++ b/tools/prince/SConscript
@@ -0,0 +1,34 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+env.Replace(ZIPR_CALLBACKS=os.environ['ZIPR_CALLBACKS'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	 $ZIPR_CALLBACKS/inferfn
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="prince_driver.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/prince/SConstruct b/tools/prince/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/prince/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/ret_shadow_stack/SConscript b/tools/ret_shadow_stack/SConscript
new file mode 100644
index 000000000..46a94e0b6
--- /dev/null
+++ b/tools/ret_shadow_stack/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="ret_shadow_stack.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/ret_shadow_stack/SConstruct b/tools/ret_shadow_stack/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/ret_shadow_stack/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/safefr/SConscript b/tools/safefr/SConscript
new file mode 100644
index 000000000..918affd83
--- /dev/null
+++ b/tools/safefr/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="fill_in_safefr.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/safefr/SConstruct b/tools/safefr/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/safefr/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/selective_cfi/SConscript b/tools/selective_cfi/SConscript
new file mode 100644
index 000000000..feabdf33c
--- /dev/null
+++ b/tools/selective_cfi/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="selective_cfi.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/selective_cfi/SConstruct b/tools/selective_cfi/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/selective_cfi/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/simple_cdi/SConscript b/tools/simple_cdi/SConscript
new file mode 100644
index 000000000..53cd9e4dd
--- /dev/null
+++ b/tools/simple_cdi/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="simple_cdi.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/simple_cdi/SConstruct b/tools/simple_cdi/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/simple_cdi/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/spasm/SConscript b/tools/spasm/SConscript
new file mode 100644
index 000000000..8a5ff8f0e
--- /dev/null
+++ b/tools/spasm/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CFLAGS="-fPIC  "
+
+files=Glob("*.cpp")
+
+pgm="spasm"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CFLAGS=CFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+	
+	
diff --git a/tools/spasm/SConstruct b/tools/spasm/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/spasm/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/tools/watch_syscall/SConscript b/tools/watch_syscall/SConscript
new file mode 100644
index 000000000..602a3e368
--- /dev/null
+++ b/tools/watch_syscall/SConscript
@@ -0,0 +1,32 @@
+import os
+
+print "In libIRDB/tests/SConscript"
+
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+cpppath=''' 
+	 $SECURITY_TRANSFORMS_HOME/include 
+	 $SECURITY_TRANSFORMS_HOME/libIRDB/include 
+	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+	 $SECURITY_TRANSFORMS_HOME/beaengine/include 
+	 $SECURITY_TRANSFORMS_HOME/tools/transforms 
+	'''
+
+CCFLAGS="-fPIC  -DCGC"
+
+files=Glob("*.cpp")
+
+pgm="watch_syscall.exe"
+
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+LIBS=Split("IRDB-core IRDB-cfg IRDB-syscall IRDB-util pqxx BeaEngine_s_d transform rewrite MEDSannotation") 
+env=env.Clone(CPPPATH=Split(cpppath), CCFLAGS=CCFLAGS)
+pgm=env.Program(pgm,  files,  LIBPATH=LIBPATH, LIBS=LIBS)
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm)
+env.Alias("install", "$SECURITY_TRANSFORMS_HOME/bin/")
+Default(install)
+
+
+
diff --git a/tools/watch_syscall/SConstruct b/tools/watch_syscall/SConstruct
new file mode 100644
index 000000000..c96332f04
--- /dev/null
+++ b/tools/watch_syscall/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+lib=SConscript("SConscript")
diff --git a/xform/SConscript b/xform/SConscript
index 51cc0a4fb..742697b23 100644
--- a/xform/SConscript
+++ b/xform/SConscript
@@ -20,8 +20,8 @@ files=  '''
 	stackref_hash.c
 	'''
 cpppath=''' 
-	../beaengine/include/
-	../include/
+	$SECURITY_TRANSFORMS_HOME/beaengine/include/
+	$SECURITY_TRANSFORMS_HOME/include/
 	'''
 
 CFLAGS="-fPIC  -DUBUNTU"
-- 
GitLab