#!/usr/bin/env python3 import os import common from shell_helpers import LF class Main(common.BuildCliFunction): def __init__(self): super().__init__() self.add_argument( '--user-mode', default=False, help='Build QEMU user mode instead of system.', ) self.add_argument( 'extra_config_args', default=[], metavar='extra-config-args', nargs='*' ) def build(self): build_dir = self.get_build_dir() os.makedirs(build_dir, exist_ok=True) if self.env['verbose']: verbose = ['V=1'] else: verbose = [] if self.env['user_mode']: target_list = '{}-linux-user'.format(self.env['arch']) else: target_list = '{}-softmmu'.format(self.env['arch']) self.sh.run_cmd( [ os.path.join(self.env['qemu_source_dir'], 'configure'), LF, '--enable-debug', LF, '--enable-trace-backends=simple', LF, '--target-list={}'.format(target_list), LF, '--enable-sdl', LF, '--with-sdlabi=2.0', LF, ] + self.sh.add_newlines(self.env['extra_config_args']), extra_paths=[self.env['ccache_dir']], cwd=build_dir ) self.sh.run_cmd( ( [ 'make', LF, '-j', str(self.env['nproc']), LF, ] + verbose ), cwd=build_dir, extra_paths=[self.env['ccache_dir']], ) def get_build_dir(self): return self.env['qemu_build_dir'] if __name__ == '__main__': Main().cli()