import os Import('argenv', 'STARS_CCFLAGS') dirs=''' src/base src/interfaces src/interfaces/abstract src/interfaces/idapro src/drivers/idapro ''' dirs=Split(dirs) IDA_CCFLAGS=''' -std=c++0x \ -I$SMPSA_HOME/include \ -I$SMPSA_HOME/include/base \ -I$SMPSA_HOME/include/interfaces \ -I$SMPSA_HOME/include/interfaces/abstract \ -I$IDASDK/include \ -I$SMPSA_HOME/include/interfaces/idapro \ -D__LINUX__ -w --short-enums -m32 \ -DSTARS_IDA_INTERFACE \ -D__PLUGIN__ \ -D__IDP__ \ '''+STARS_CCFLAGS IDA_LDFLAGS="-m32 --shared -L$IDAROOT -lida \ -Wl,--version-script=$SMPSA_HOME/scripts/plugin.script" # find files print 'dirs: ',dirs files=[] for dir in dirs: files=files+Glob(os.path.join(dir,"*.cpp")) # set suffix properly if int(argenv['do_64bit_analysis']) == 1: SHLIBSUF=".plx64" else: SHLIBSUF=".plx" idaenv=argenv.Clone(CCFLAGS=IDA_CCFLAGS, SHLINKFLAGS=IDA_LDFLAGS, SHLIBSUFFIX=SHLIBSUF, SHLIBPREFIX=""); lib=idaenv.SharedLibrary('SMPStaticAnalyzer', files, LIBPATH="$IDAROOT", libs="ida") argenv.Install("$IDAROOT/plugins/", lib) argenv.Alias("install", "$IDAROOT/plugins/")