Newer
Older
if os.path.exists(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h"):
print('Removing include/targ-config.h')
os.remove(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h")
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/capstone")
os.system("make clean")
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME'])
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/keystone/build")
os.system("rm -rf " + os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/keystone/build")
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME'])
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/capstone")
print("Rebuilding libcapstone.")

Jason Hiser
committed
jobs=env.GetOption('num_jobs')
os.system("make -j "+str(jobs))
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/keystone")
print("Rebuilding libkeystone.")
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/keystone")
os.system("mkdir -p ./build")
os.chdir("build")
os.system('../make-common.sh lib_only; cmake -DBUILD_LIBS_ONLY=$BUILD_LIBS_ONLY -DLLVM_BUILD_32_BITS="$LLVM_BUILD_32_BITS" -DCMAKE_OSX_ARCHITECTURES="$ARCH" -DCMAKE_BUILD_TYPE=$BUILDTYPE -DBUILD_SHARED_LIBS=ON -DLLVM_TARGETS_TO_BUILD="all" -G "Unix Makefiles" ..; make -j' + str(jobs))
os.system("make DESTDIR=$SECURITY_TRANSFORMS_HOME/lib install")
if "PEDI_HOME" in os.environ:
pedi = Command( target = "./testoutput",
source = "./SConscript",
action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )

Jason Hiser
committed
env['BASE_IRDB_LIBS']="irdb-core"

Jason Hiser
committed
libPEBLISS=SConscript("third_party/SConscript.pebliss")
# setup libraries needed for linking
if "PEDI_HOME" in os.environ:
Depends(pedi,libPEBLISS)
Export('env')
# get the libcapstone.so.[version] file regardless of the version extension
libcapstone_path = Glob(os.environ['SECURITY_TRANSFORMS_HOME']+'/third_party/capstone/libcapstone.so.*')
assert len(libcapstone_path) <= 1, "More than one candidate for libcapstone.so.[version]?!"
assert len(libcapstone_path) != 0, "No candidates for libcapstone.so.[version]?!"
libcapstone_path = env.Install("$SECURITY_TRANSFORMS_HOME/lib/", libcapstone_path)
env.Command(os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libcapstone.so", libcapstone_path, "ln -s $SOURCE.abspath $TARGET.abspath")
libcapstone=os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libcapstone.so"
# get the libkeystone.so.[version] file regardless of the version extension
libkeystone_path = Glob(os.environ['SECURITY_TRANSFORMS_HOME']+'/lib/usr/local/lib*/libkeystone.so.*')
assert len(libkeystone_path) <= 1, "More than one candidate for libkeystone.so.[version]?!"
assert len(libkeystone_path) != 0, "No candidates for libkeystone.so.[version]?!"
libkeystone_path = env.Install("$SECURITY_TRANSFORMS_HOME/lib/", libkeystone_path)
env.Command(os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libkeystone.so", libkeystone_path, "ln -s $SOURCE.abspath $TARGET.abspath")
libkeystone=os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libkeystone.so"
libehp=env.SConscript("libehp/SConscript")
libehp=env.Install("$SECURITY_TRANSFORMS_HOME/lib", libehp);
libIRDBcore=env.SConscript("libIRDB-core/src/SConscript")
libIRDBcfg=env.SConscript("libIRDB-cfg/src/SConscript")
libIRDButil=env.SConscript("libIRDB-util/src/SConscript")
libIRDBsyscall=env.SConscript("libIRDB-syscall/src/SConscript")
libElfDep=SConscript("libIRDB-elfdep/src/SConscript")
libtransform=SConscript("libIRDB-transform/src/SConscript")
libEXEIO=SConscript("libEXEIO/SConscript")
libMEDSannotation=SConscript("libMEDSannotation/SConscript")
libStructDiv=SConscript("libStructDiv/SConscript")
thanos=SConscript("thanos/SConscript")
rida=SConscript("rida/SConscript")
meds2pdb=SConscript("meds2pdb/SConscript")
dump_map=SConscript("dump_map/SConscript")
dump_insns=SConscript("dump_insns/SConscript")
ir_builders=SConscript("ir_builders/SConscript")
libs=( libIRDBcore,
libIRDBcfg,
libIRDButil,
libIRDBcore,
libehp,
libtransform,
libEXEIO,
libMEDSannotation,
libStructDiv,
libElfDep,
libcapstone,
thanos,
rida,
meds2pdb,
dump_map,
dump_insns,
ir_builders)
if "PEDI_HOME" in os.environ:
Default(libs)
# if is local build
if Dir('.').abspath == Dir('#.').abspath:
Default( pedi )
ret=[pedi]+ libs
Return('ret')
else:
Return('libs')
Default(libIRDBcore, libIRDBcfg, libIRDButil, libIRDBdeep, libIRDBcore, libehp,libtransform,libEXEIO,libMEDSannotation,libStructDiv,libElfDep, libcapstone, thanos, rida, meds2pdb, dump_map, dump_insns, ir_builders)