Newer
Older
import os
Import('argenv', 'STARS_CCFLAGS')
dirs='''
src/base
src/interfaces
src/interfaces/abstract
src/interfaces/idapro
src/drivers/idapro
'''
dirs=Split(dirs)
cpppath=''' \
$SMPSA_HOME/include \
$SMPSA_HOME/include/base \
$SMPSA_HOME/include/interfaces \
$SMPSA_HOME/include/interfaces/abstract \
$IDASDK/include \
$SMPSA_HOME/include/interfaces/idapro \
'''
-D__LINUX__ \
-Wall \
-Werror \
--short-enums \
-m32 \
-Wno-unused-variable \
-Wno-unused-local-typedefs \
-Wno-unused-but-set-variable \
-DSTARS_IDA_INTERFACE \
-D__PLUGIN__ \
-D__IDP__ \
'''+STARS_CCFLAGS
unused_flags='''
-Wno-attributes \
-Wno-parentheses \
-Wno-strict-aliasing \
-Wno-sign-compare \
-Wmaybe-uninitialized \
-Winit-self \
'''
IDA_LDFLAGS=''' -m32 --shared -L$IDAROOT -lida \
-Wl,--version-script=$SMPSA_HOME/scripts/plugin.script \
'''+STARS_LDFLAGS
files=[]
for dir in dirs:
files=files+Glob(os.path.join(dir,"*.cpp"))
# set suffix properly
if int(idaenv['do_64bit_analysis']) == 1:
SHLIBSUF=".plx64"
else:
SHLIBSUF=".plx"
idaenv=idaenv.Clone(CCFLAGS=IDA_CCFLAGS, SHLINKFLAGS=IDA_LDFLAGS, SHLIBSUFFIX=SHLIBSUF, SHLIBPREFIX="", CPPPATH=Split(cpppath));
lib=idaenv.SharedLibrary('SMPStaticAnalyzer', files, LIBPATH="$IDAROOT", libs="ida")
install=idaenv.Install("$IDAROOT/idc/", "$SMPSA_HOME/scripts/SMP.idc")
install=idaenv.Install("$SMPSA_HOME/install/", "$SMPSA_HOME/scripts/SMP.idc")
Default(install)
install=idaenv.Install("$SMPSA_HOME/install/", lib)
Default(install)
install=idaenv.Install("$IDAROOT/plugins/", lib)
Default(install)
Return('install')