Skip to content
Snippets Groups Projects
Commit 1cb3347a authored by Jason Hiser's avatar Jason Hiser :tractor:
Browse files

reworking scons file for pedi insanity

parent a6e87093
No related branches found
No related tags found
No related merge requests found
Pipeline #4286 passed
......@@ -27,3 +27,6 @@ irdb-libs/scons_build/
*.so
*.exe
.*.swp
irdb-libs/libEXEIO/test/exeio_test
irdb-libs/meds2pdb/meds2pdb
......@@ -18,38 +18,26 @@ createFolder(os.environ['ZEST_RUNTIME']+'/lib64')
createFolder(os.environ['ZEST_RUNTIME']+'/sbin')
createFolder(os.environ['ZEST_RUNTIME']+'/bin')
#if [ ! -f manifest.txt.config -o ! -d "$PS_INSTALL" ]; then
if not os.path.isfile("manifest.txt.config"):
os.system("$PEDI_HOME/pedi --setup -m manifest.txt -l ida -l ida_key -l ps -l zipr -l stars -i $PS_INSTALL")
else:
print "Pedi already setup"
# build stars and libirdb
libirdb= SConscript("irdb-libs/SConscript") # , variant_dir='build/irdb-libs')
libsmpsa= SConscript("SMPStaticAnalyzer/SConscript") #
libirdb= SConscript("irdb-libs/SConscript")
libsmpsa= SConscript("SMPStaticAnalyzer/SConscript")
# specify some explicit dependencies to make sure these build in order
Depends(libsmpsa,libirdb)
# now finish building irdb-libs once stars is setup
libirdbdeep=SConscript("irdb-libs/SConscript.deep", variant_dir='build/irdb-libs')
libirdbdeep=SConscript("irdb-libs/SConscript.deep")
Depends(libirdbdeep,libsmpsa)
print "Zipr install is "+env['ZIPR_INSTALL']
Export('env')
#libtrace=env.SConscript(["zipr_trace_plugin/libtrace/SConscript"])
#print "Zipr install is "+env['ZIPR_INSTALL']
#zipr_trace_plugin=SConscript(["zipr_trace_plugin/SConscript"])
#Depends(zipr_trace_plugin,libtrace);
# list of zipr plugins and irdb xforms to build
transformDirs='''
builtin_xforms/add_lib
......@@ -70,27 +58,22 @@ for i in Split(transformDirs):
#finally, run pedi to do the final install
pedi = Command( target = "./testoutput-install",
source = "./SConscript",
pedi = Command( target = "./zipr-umb-testoutput-install",
source = xforms,
action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )
Depends(pedi, xforms)
Default( pedi )
if Dir('.').abspath == Dir('#.').abspath:
Default( pedi )
else:
Default(xforms)
if env.GetOption('clean') and os.path.isfile("manifest.txt.config"):
with open("manifest.txt.config") as myfile:
first_line=myfile.readlines()[0] #put here the interval you want
first_line=first_line.rstrip()
first_line=myfile.readlines()[0].rstrip()
# if [[ $(head -1 manifest.txt.config) == $PS_INSTALL ]] ; then
if str(first_line) == str(os.environ['PS_INSTALL']):
print "Doing pedi clean"
print "Doing pedi clean as I'm the pedi root"
os.system( "pwd; $PEDI_HOME/pedi -c -m manifest.txt " )
shutil.rmtree(os.environ['PS_INSTALL'])
else:
print "Eliding pedi clean as I'm not the root"
print "Root is '"+first_line+"'"
print "I am '"+str(os.environ['PS_INSTALL'])+"'"
Subproject commit 754a400ffb55eb62c22f7ae70750e710e8a44e71
Subproject commit 48edeefcbe4b29a80c354d089f13b950a3162bd8
......@@ -4,8 +4,6 @@ import tarfile
Import('env')
(sysname, nodename, release, version, machine)=os.uname()
if env.GetOption('clean'):
if os.path.exists(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h"):
......@@ -18,12 +16,6 @@ if env.GetOption('clean'):
else:
# check/install targ-config.h
#if not os.path.isfile(os.environ['SECURITY_TRANSFORMS_HOME']+"/include/targ-config.h"):
##print "uname=", sysname, " xx ", nodename, " xx ", release, " xx ", version, " xx ", machine
#shutil.copy( os.path.join(os.environ['SECURITY_TRANSFORMS_HOME'],"include",machine,"config.h"),
#os.path.join(os.environ['SECURITY_TRANSFORMS_HOME'],"include","targ-config.h"))
os.chdir(os.environ['SECURITY_TRANSFORMS_HOME']+"/third_party/capstone")
print "Rebuilding libcapstone."
jobs=env.GetOption('num_jobs')
......@@ -39,16 +31,10 @@ if "PEDI_HOME" in os.environ:
env['BASE_IRDB_LIBS']="irdb-core"
if sysname != "SunOS":
libPEBLISS=SConscript("third_party/SConscript.pebliss", variant_dir='scons_build/libPEBLISS')
# setup libraries needed for linking
if "PEDI_HOME" in os.environ:
Depends(pedi,libPEBLISS)
# pebliss requires iconv, which needs to be explicit on cygwin.
if "CYGWIN" in sysname:
# add tuple of 1 item!
env['BASE_IRDB_LIBS']=env['BASE_IRDB_LIBS']+("iconv",)
libPEBLISS=SConscript("third_party/SConscript.pebliss")
# setup libraries needed for linking
if "PEDI_HOME" in os.environ:
Depends(pedi,libPEBLISS)
Export('env')
......@@ -61,31 +47,26 @@ libcapstone_path = env.Install("$SECURITY_TRANSFORMS_HOME/lib/", libcapstone_pat
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"
libehp=env.SConscript("libehp/SConscript", variant_dir='scons_build/libehp')
libehp=env.SConscript("libehp/SConscript")
libehp=env.Install("$SECURITY_TRANSFORMS_HOME/lib", libehp);
libIRDBcore=env.SConscript("libIRDB-core/src/SConscript", variant_dir='scons_build/libIRDB-core')
libIRDBcore=env.SConscript("libIRDB-core/src/SConscript")
Depends(libIRDBcore,libcapstone)
libIRDBcfg=env.SConscript("libIRDB-cfg/src/SConscript", variant_dir='scons_build/libIRDB-cfg')
libIRDButil=env.SConscript("libIRDB-util/src/SConscript", variant_dir='scons_build/libIRDB-util')
libIRDBsyscall=env.SConscript("libIRDB-syscall/src/SConscript", variant_dir='scons_build/libIRDB-syscall')
libElfDep=SConscript("libIRDB-elfdep/src/SConscript", variant_dir='scons_build/libIRDB-elfdep')
libtransform=SConscript("libIRDB-transform/src/SConscript", variant_dir='scons_build/libIRDB-transform')
libEXEIO=SConscript("libEXEIO/SConscript", variant_dir='scons_build/libEXEIO')
#libbea=SConscript("beaengine/SConscript", variant_dir='scons_build/beaengine')
libMEDSannotation=SConscript("libMEDSannotation/SConscript", variant_dir='scons_build/libMEDSannotation')
# libxform=SConscript("xform/SConscript", variant_dir='scons_build/libxform')
# libIRDB=SConscript("libIRDB/SConscript", variant_dir='scons_build/libIRDB')
# Depends(libIRDB,libcapstone)
libStructDiv=SConscript("libStructDiv/SConscript", variant_dir='scons_build/libStructDiv')
thanos=SConscript("thanos/SConscript", variant_dir='scons_build/thanos')
rida=SConscript("rida/SConscript", variant_dir='scons_build/rida')
meds2pdb=SConscript("meds2pdb/SConscript", variant_dir='scons_build/meds2pdb')
dump_map=SConscript("dump_map/SConscript", variant_dir='scons_build/dump_map')
dump_insns=SConscript("dump_insns/SConscript", variant_dir='scons_build/dump_insns')
ir_builders=SConscript("ir_builders/SConscript", variant_dir='scons_build/ir_builders')
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,
......@@ -107,9 +88,16 @@ libs=( libIRDBcore,
ir_builders)
if "PEDI_HOME" in os.environ:
Depends(pedi, libs)
Default( pedi )
Return('pedi')
Default(libs)
# if is local build
if Dir('.').abspath == Dir('#.').abspath:
Default( pedi )
ret=[pedi]+ libs
Return('ret')
else:
Return('libs')
else:
Default(libIRDBcore, libIRDBcfg, libIRDButil, libIRDBdeep, libIRDBcore, libehp,libtransform,libEXEIO,libMEDSannotation,libStructDiv,libElfDep, libcapstone, thanos, rida, meds2pdb, dump_map, dump_insns, ir_builders)
......
......@@ -2,15 +2,18 @@ import os
Import('env')
pedi = Command( target = "./testoutput",
source = "./SConscript",
action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )
env['BASE_IRDB_LIBS']="irdb-core", "pqxx", "pq"
libIRDBdeep=env.SConscript("libIRDB-deep/src/SConscript", variant_dir='scons_build/libIRDB-deep')
libIRDBdeep=env.SConscript("libIRDB-deep/src/SConscript")
Depends(pedi, libIRDBdeep)
Default( pedi )
pedi = Command( target = "./deep-testoutput",
source = libIRDBdeep,
action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )
ret=libIRDBdeep
if Dir('.').abspath == Dir('#.').abspath:
ret=ret+pedi
Return('pedi')
Default(ret)
Return('ret')
......@@ -71,7 +71,7 @@ if sysname == "SunOS":
Export('env')
if int(env['build_deep']) == 1:
SConscript("SConscript.deep", variant_dir='build')
SConscript("SConscript.deep")
else:
SConscript("SConscript", variant_dir='build')
SConscript("SConscript")
Subproject commit 650791dcba22811466b2e4fec92ebace0bb0eb78
Subproject commit 10400dc73023f4af7dac75819d062e9871ca46ce
Subproject commit 93ecc5f231f57bf0e835d36b614233833f92bc44
Subproject commit 390478f4739c7b76e2b3a08e77e49293fa03b1b6
Subproject commit cf484f94f6b2dd85fa2c458a26ca19095698224c
Subproject commit 5e891f9f6544d4e6dbce99df55cd3b844746009d
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment