Skip to content
Snippets Groups Projects
SConscript 2.1 KiB
Newer Older
import shutil
import os
import tarfile

Import('env')

def createFolder(directory):
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print ('Error: Creating directory. ' +  directory)



createFolder(os.environ['ZEST_RUNTIME']+'/lib32')
createFolder(os.environ['ZEST_RUNTIME']+'/lib64')
createFolder(os.environ['ZEST_RUNTIME']+'/sbin')
createFolder(os.environ['ZEST_RUNTIME']+'/bin')

if not os.path.isfile("manifest.txt.config"):
Jason Hiser's avatar
Jason Hiser committed
	os.system("$PEDI_HOME/pedi --setup -m manifest.txt -l ida -l ida_key -l ps -l zipr -l stars -i $PS_INSTALL")

# build stars and libirdb
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")
Depends(libirdbdeep,libsmpsa)

Jason Hiser's avatar
Jason Hiser committed
print "Zipr install is "+env['ZIPR_INSTALL']
Export('env')
# list of zipr plugins and irdb xforms to build
transformDirs='''
	builtin_xforms/add_lib  	
Jason Hiser's avatar
Jason Hiser committed
	builtin_xforms/move_globals  	
	builtin_xforms/resolve_callbacks
	zipr_push64_reloc_plugin
	zipr
	zipr_unpin_plugin
	'''

# build the xforms and plugins
xforms=list()
for i in Split(transformDirs):
	Export('env')
	xform = SConscript(i+"/SConscript")
	Depends(xform, libirdbdeep)
	xforms = xforms + xform 


#finally, run pedi to do the final install
pedi = Command( target = "./zipr-umb-testoutput-install",
		source = xforms,
		action = os.environ['PEDI_HOME']+"/pedi -m manifest.txt " )

ret=[]+xforms
if Dir('.').abspath == Dir('#.').abspath:

if env.GetOption('clean') and os.path.isfile("manifest.txt.config"):
	with open("manifest.txt.config") as myfile:
	    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 as I'm the pedi root"
		os.system( "pwd; $PEDI_HOME/pedi -c -m manifest.txt " )
		shutil.rmtree(os.environ['PS_INSTALL'])



Default(ret)
Return('ret')