From 7c5a4af1e6598990535e0d09b720504d3c067654 Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Sat, 6 Oct 2018 01:31:44 +0000
Subject: [PATCH] another way to do it

---
 SConscript      | 31 +++++++++++++++++++------------
 SConscript.ida  |  1 +
 SConscript.ida7 |  3 +--
 3 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/SConscript b/SConscript
index b97d0910..d4a6069d 100644
--- a/SConscript
+++ b/SConscript
@@ -117,9 +117,6 @@ Export('argenv', 'STARS_CCFLAGS', 'STARS_LDFLAGS', 'STARS_LDPREFIX')
 
 installers=[]
 
-libehp=argenv.SConscript("libehp/SConscript", variant_dir='scons_build/libehp');
-libehp=argenv.Install("$SMPSA_HOME/libehp/lib", libehp);
-Default(libehp)
 
 if int(argenv['build_ida']) == 1 or int(argenv['build_ida7']) == 1:
 	if argenv['IDASDK'] is None:
@@ -140,17 +137,17 @@ if int(argenv['build_ida']) == 1 or int(argenv['build_ida7']) == 1:
 
 	if int(argenv['build_ida']) == 1:
 		print "Build IDA Plugin"
-		lib=SConscript('SConscript.ida', variant_dir='build_ida')
+		idalib=SConscript('SConscript.ida', variant_dir='build_ida')
 	elif int(argenv['build_ida7']) == 1:
 		print "Build IDA 7.0+ Plugin"
-		lib=SConscript('SConscript.ida7', variant_dir='build_ida')
-	argenv.Depends(lib, libehp)
+		idalib=SConscript('SConscript.ida7', variant_dir='build_ida')
 	print "Done build IDA Plugin"
-	test=argenv.Command(target="./test.log", source=lib, action="IDAROOT=$IDAROOT SMPSA_HOME=$SMPSA_HOME $SMPSA_HOME/tests/scripts/make_baseline.sh 2>&1 |tee ./test.log")
-	argenv.Depends(test,lib)
+	test=argenv.Command(target="./test.log", source=idalib, action="IDAROOT=$IDAROOT SMPSA_HOME=$SMPSA_HOME $SMPSA_HOME/tests/scripts/make_baseline.sh 2>&1 |tee ./test.log")
+	argenv.Depends(test,idalib)
 	ab=argenv.AlwaysBuild(test)
 	argenv.Default(ab)
 	installers=installers+ab
+	Default(idalib)
 	
 
 if int(argenv['build_irdb']) == 1 or int(argenv['build_irdb_driver']) == 1:
@@ -158,13 +155,23 @@ if int(argenv['build_irdb']) == 1 or int(argenv['build_irdb_driver']) == 1:
 	    print 'Cannot build libstars.a without SECURITY_TRANSFORMS_HOME set.  Did you forget the env. var.?  Or try setting build_irdb=0. '
 	    exit(1)
 	print "Build IDA/IRDB library"
-	lib=SConscript('SConscript.irdb_lib', variant_dir='build_irdb_lib')
-	installers=installers+lib
-	argenv.Depends(lib, libehp)
+	irdblib=SConscript('SConscript.irdb_lib', variant_dir='build_irdb_lib')
+	installers=installers+irdblib
+	Default(irdblib)
 
 
 
-Default(lib)
+libehp=argenv.SConscript("libehp/SConscript", variant_dir='scons_build/libehp');
+libehp=argenv.Install("$SMPSA_HOME/libehp/lib", libehp);
+try:
+	argenv.Depends(idalib, libehp)
+except: 
+	print "Skipping build of ida lib"
+
+try:
+	argenv.Depends(irdblib, libehp)
+except: 
+	print "Skipping build of irdb lib"
 
 if 'PEDI_HOME' in os.environ:
 	pedi = Command( target = "./testoutput",
diff --git a/SConscript.ida b/SConscript.ida
index a9514f79..c55a1b31 100644
--- a/SConscript.ida
+++ b/SConscript.ida
@@ -67,6 +67,7 @@ else:
 
 idaenv=idaenv.Clone(CCFLAGS=IDA_CCFLAGS, SHLINKFLAGS=IDA_LDFLAGS, SHLIBSUFFIX=SHLIBSUF, SHLIBPREFIX="", CPPPATH=Split(cpppath));
 lib=idaenv.SharedLibrary('SMPStaticAnalyzer', files, LIBPATH="$IDAROOT", libs="ida")
+Depends(lib,"$SMPSA_HOME/libehp/lib/libehp.a")
 
 
 install=idaenv.Install("$IDAROOT/idc/", "$SMPSA_HOME/scripts/SMP.idc")
diff --git a/SConscript.ida7 b/SConscript.ida7
index 7aa57f47..2e2d64c3 100644
--- a/SConscript.ida7
+++ b/SConscript.ida7
@@ -78,7 +78,6 @@ if int(idaenv['do_64bit_analysis']) == 1:
 else:
    lib=idaenv.SharedLibrary('SMPStaticAnalyzer', files, LIBPATH="$IDAROOT", libs="ida")
 
-
 install=idaenv.Install("$IDAROOT/idc/", "$SMPSA_HOME/scripts/SMP.idc")
 Default(install)
 
@@ -102,7 +101,7 @@ Default(install)
 
 install=idaenv.Install("$IDAROOT/plugins/", lib)
 Default(install)
-Return('install')
+Return('lib')
 
 
 
-- 
GitLab