def _invoke_make(self, img_build_dir, rule_names, num_cores, iso_dir=''):
env = os.environ.copy()
env['S2E_INSTALL_ROOT'] = self.install_path()
env['S2E_LINUX_KERNELS_ROOT'] = \
self.source_path(CONSTANTS['repos']['images']['linux'])
env['OUTDIR'] = self.image_path()
if iso_dir:
env['ISODIR'] = iso_dir
logger.debug('Invoking makefile with:')
logger.debug('export S2E_INSTALL_ROOT=%s', env['S2E_INSTALL_ROOT'])
logger.debug('export S2E_LINUX_KERNELS_ROOT=%s', env['S2E_LINUX_KERNELS_ROOT'])
logger.debug('export OUTDIR=%s', env['OUTDIR'])
logger.debug('export ISODIR=%s', env.get('ISODIR', ''))
if not self._headless:
env['GRAPHICS'] = ''
else:
logger.warn('Image creation will run in headless mode. '
'Use --gui to see graphic output for debugging.')
try:
make = sh.Command('make').bake(file=os.path.join(img_build_dir,
'Makefile'),
directory=self.image_path(),
_out=sys.stdout, _err=sys.stderr,
_env=env, _fg=True)
make_image = make.bake(j=num_cores)
make_image(rule_names)
except ErrorReturnCode as e:
raise CommandError(e)
评论列表
文章目录