diff --git a/.gitattributes b/.gitattributes
index 275101069e2ff848884a2d60cb36f35308f00350..6e646ca33976fa74acd9efbe15f4af118f1a836c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -726,6 +726,8 @@ tools/transforms/Range.cpp -text
 tools/transforms/Range.hpp -text
 tools/transforms/Rewrite_Utility.cpp -text
 tools/transforms/Rewrite_Utility.hpp -text
+tools/transforms/SConscript -text
+tools/transforms/SConstruct -text
 tools/transforms/ScaledOffsetInference.cpp -text
 tools/transforms/ScaledOffsetInference.hpp -text
 tools/transforms/StackLayout.cpp -text
diff --git a/tools/transforms/SConscript b/tools/transforms/SConscript
new file mode 100644
index 0000000000000000000000000000000000000000..c765aab1bf577beb7b8427dbca2d3492ac3e73f6
--- /dev/null
+++ b/tools/transforms/SConscript
@@ -0,0 +1,47 @@
+import os
+
+Import('env')
+env.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
+
+
+libname="IRDB-util"
+files=  '''
+	insn_preds.cpp
+	'''
+cpppath=''' 
+	$SECURITY_TRANSFORMS_HOME/include/
+	$SECURITY_TRANSFORMS_HOME/libIRDB/include/
+	$SECURITY_TRANSFORMS_HOME/libMEDSannotation/include/
+	$SECURITY_TRANSFORMS_HOME/libtransform/include/
+	$SECURITY_TRANSFORMS_HOME/beaengine/include
+	$SECURITY_TRANSFORMS_HOME/beaengine/beaengineSources/Includes/
+	'''
+
+LIBS="xform IRDB-core IRDB-cfg BeaEngine_s_d pqxx  MEDSannotation transform"
+LIBPATH="$SECURITY_TRANSFORMS_HOME/lib"
+
+integer_files="transformutils.cpp integertransformdriver.cpp"
+
+env['CFLAGS'].append("-Wall")
+
+all_files="PNTransformDriver.cpp PNStackLayout.cpp PNRange.cpp Range.cpp OffsetInference.cpp DirectOffsetInference.cpp ScaledOffsetInference.cpp P1Inference.cpp PNRegularExpressions.cpp PNMain.cpp StackLayout.cpp General_Utility.cpp AnnotationBoundaryGenerator.cpp PrecedenceBoundaryInference.cpp PNIrdbManager.cpp"
+
+
+env=env.Clone(CPPPATH=Split(cpppath))
+ru_obj=env.Object("Rewrite_Utility.cpp");
+ru_lib=env.Library("rewrite", ru_obj);
+install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", ru_lib)
+Default(install)
+
+p1=env.Program("p1transform.exe", Split(all_files), LIBS=Split(LIBS)+ru_lib, LIBPATH=Split(LIBPATH))
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", p1)
+install=env.InstallAs("$SECURITY_TRANSFORMS_HOME/bin/pntransform.exe", p1)
+Default(install)
+install=env.InstallAs("pntransform.exe", p1)
+Default(install)
+
+intdr=env.Program("integertransformdriver.exe", Split(integer_files), LIBS=Split(LIBS)+ru_lib, LIBPATH=Split(LIBPATH))
+install=env.Install("$SECURITY_TRANSFORMS_HOME/bin/", intdr)
+Default(install)
+
+
diff --git a/tools/transforms/SConstruct b/tools/transforms/SConstruct
new file mode 100644
index 0000000000000000000000000000000000000000..c0dd68a00d406b0148a93709cf916ad6d05f282c
--- /dev/null
+++ b/tools/transforms/SConstruct
@@ -0,0 +1,6 @@
+
+
+
+env=Environment()
+Export('env')
+SConscript("SConscript")