"tools/zax/zax_driver.cpp" did not exist on "f3875e00e562b8aa83e4c23c5e02a5b4d3d5b0ad"
Newer
Older
import sys
argenv=Environment()
# command line options
argenv.Replace(debug=ARGUMENTS.get("debug",0))
argenv.Replace(debugopt=ARGUMENTS.get("debugopt",0))
argenv.Replace(debugopt2=ARGUMENTS.get("debugopt2",0))
argenv.Replace(debugmem=ARGUMENTS.get("debugmem",0))
argenv.Replace(do_64bit_analysis=ARGUMENTS.get("do_64bit_analysis",1))
argenv.Replace(build_ida=ARGUMENTS.get("build_ida",-1))
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida7",-1))
argenv.Replace(build_irdb=ARGUMENTS.get("build_irdb",1))
argenv.Replace(build_irdb_driver=ARGUMENTS.get("build_irdb_driver",0))
argenv.Replace(install=ARGUMENTS.get("install",1))
argenv.Replace(numeric_error_annots=ARGUMENTS.get("numeric_error_annots",1))
argenv.Replace(do_sccp=ARGUMENTS.get("do_sccp",1))
# environment options
argenv.Replace(SMPSA_HOME=os.environ['SMPSA_HOME'])
argenv.Replace(IDASDK=os.environ['IDASDK'])
argenv.Replace(IDAROOT=os.environ['IDAROOT'])
argenv.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
if argenv['SMPSA_HOME'] is None:
print 'Cannot proceed without SMPSA_HOME set.'
exit(1)
if int(argenv['debug']) == 1:
print "Setting debug mode"
elif int(argenv['debugopt']) == 1:
print "Setting debugopt mode"
STARS_CCFLAGS=" -g -O1 "
elif int(argenv['debugopt2']) == 1:
STARS_CCFLAGS=" -g -O2 "
elif int(argenv['debugmem']) == 1:
print "Setting debugmem mode"
STARS_CCFLAGS=" -g -fsanitize=address -fno-omit-frame-pointer "
STARS_LDFLAGS=" -lasan "
STARS_LDPREFIX="LD_PRELOAD='/usr/lib/gcc/x86_64-linux-gnu/5/libasan.so'"
elif int(argenv['profile']) == 1:
print "Setting perf profiling mode"
STARS_CCFLAGS=" -O3 -fno-omit-frame-pointer -pg "
STARS_LDFLAGS=""
STARS_LDPREFIX=""
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# sanity check default values for build_ida and build_ida7
# -1 means "default" 0 means off, 1 means on.
# defaults are build_ida7=1, build_ida=0.
# build_ida=1 causes default build_ida7=0
# cannot both be on.
# can both be off.
# check both on for error`
if int(argenv['build_ida7']) == 1 and int(argenv['build_ida']) == 1:
print "Cannot set both build_ida7 and build_ida at the same time."
sys.exit(0)
#check both default
elif int(argenv['build_ida7']) == -1 and int(argenv['build_ida']) == -1:
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida",0))
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida7",1))
#check one off, one default
elif int(argenv['build_ida7']) == -1 and int(argenv['build_ida']) == 0:
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida7",1))
elif int(argenv['build_ida7']) == 0 and int(argenv['build_ida']) == -1:
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida",0))
# check one on, one default
elif int(argenv['build_ida7']) == -1 and int(argenv['build_ida']) == 1:
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida7",0))
elif int(argenv['build_ida7']) == 1 and int(argenv['build_ida']) == -1:
argenv.Replace(build_ida7=ARGUMENTS.get("build_ida",0))
# check one on, one explicitly off
elif int(argenv['build_ida7']) == 0 and int(argenv['build_ida']) == 1:
''' okay, nothing to do.'''
elif int(argenv['build_ida7']) == 1 and int(argenv['build_ida']) == 0:
''' okay, nothing to do.'''
# check both explicitly off
elif int(argenv['build_ida7']) == 0 and int(argenv['build_ida']) == 0:
''' okay, nothing to do.'''
# how can it be none of these?
else:
print "build_ida/build_ida7 set wildly. values are 0, 1 or left unset. (or, possibly internal error in build?)"
sys.exit(0)
# STARS_LDFLAGS=" -lasan LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/5/libasan.so"
if int(argenv['do_64bit_analysis']) == 1:
if int(argenv['do_sccp']) == 1:
STARS_CCFLAGS+=" -DSTARS_DO_SCCP "
if int(argenv['numeric_error_annots']) == 1:
STARS_CCFLAGS+=" -DSTARS_EMIT_NUMERIC_ERROR_ANNOTS "
Export('argenv', 'STARS_CCFLAGS', 'STARS_LDFLAGS', 'STARS_LDPREFIX')
installers=[]
libehpEnv=argenv.Clone()
libehpEnv.Append(CXXFLAGS=" -m64 ")
libehpEnv.Append(CFLAGS=" -m64 ")
libehpEnv.Append(LDFLAGS=" -m64 ")
env=libehpEnv
Export('env')
libehp=libehpEnv.SConscript("libehp/SConscript", variant_dir='scons_build/libehp');
libehp=libehpEnv.Install("$SMPSA_HOME/libehp/lib", libehp);
if int(argenv['build_ida']) == 1 or int(argenv['build_ida7']) == 1:
if argenv['IDASDK'] is None:
print 'Cannot proceed without IDASDK set.'
exit(1)
if argenv['IDAROOT'] is None:
print 'Cannot proceed without IDAROOT set.'
exit(1)
if argenv['IDASDK'] is None:
print 'Cannot proceed without IDASDK set.'
exit(1)
if argenv['IDAROOT'] is None:
print 'Cannot proceed without IDAROOT set.'
exit(1)
if int(argenv['build_ida']) == 1:
print "Build IDA Plugin"
idalib=SConscript('SConscript.ida', variant_dir='build_ida')
elif int(argenv['build_ida7']) == 1:
print "Build IDA 7.0+ Plugin"
idalib=SConscript('SConscript.ida7', variant_dir='build_ida')
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)
installers=installers+ab
argenv.Depends(idalib, libehp)
if int(argenv['build_irdb']) == 1 or int(argenv['build_irdb_driver']) == 1:
if argenv['SECURITY_TRANSFORMS_HOME'] is None:
print 'Cannot build libstars.a without SECURITY_TRANSFORMS_HOME set. Did you forget the env. var.? Or try setting build_irdb=0. '
exit(1)
irdblib=SConscript('SConscript.irdb_lib', variant_dir='build_irdb_lib')
installers=installers+irdblib
Default(irdblib)
argenv.Depends(irdblib, libehp)
jdh8d
committed
if 'PEDI_HOME' in os.environ:
pedi = Command( target = "./testoutput",
source = "./SConscript",
action = "if [ -f manifest.txt.config ]; then "+os.environ['PEDI_HOME']+"/pedi -m manifest.txt ; else echo Skipping PEDI; fi" )
Depends(pedi,installers)
Default( pedi )