#!/usr/bin/env python3 import os import common class M5Component(common.Component): def get_make_cmd(self, args): allowed_toolchains = ['buildroot'] cc = common.get_toolchain_tool('gcc', allowed_toolchains=allowed_toolchains) ld = common.get_toolchain_tool('ld', allowed_toolchains=allowed_toolchains) if args.arch == 'x86_64': arch = 'x86' else: arch = args.arch return [ 'make', '-j', str(args.nproc), '-f', 'Makefile.{}'.format(arch), 'CC={}'.format(cc), 'LD={}'.format(ld), 'PWD={}'.format(common.gem5_m5_src_dir), ] def do_build(self, args): os.makedirs(common.gem5_m5_build_dir, exist_ok=True) common.run_cmd( self.get_make_cmd(args), cwd=common.gem5_m5_src_dir, ) print(common.out_rootfs_overlay_bin_dir) os.makedirs(common.out_rootfs_overlay_bin_dir, exist_ok=True) common.cp(os.path.join(common.gem5_m5_src_dir, 'm5'), common.out_rootfs_overlay_bin_dir) def clean(self, args): common.run_cmd( self.get_make_cmd(args) + ['clean'], cwd=common.gem5_m5_src_dir, ) if __name__ == '__main__': M5Component().build()