#!/usr/bin/env bash arch=arm while getopts 'a:' OPT; do case "$OPT" in a) arch="$OPTARG" ;; esac done shift "$(($OPTIND - 1))" outdir="$(pwd)/buildroot/output.${arch}-gem5~" gem5_dir="$(pwd)/gem5/gem5" if [ "$arch" = x86_64 ]; then cmd="\ M5_PATH='$(pwd)/gem5/gem5-system' \ '${gem5_dir}/build/X86/gem5.opt' \ '${gem5_dir}/configs/example/fs.py' \ --disk-image='${outdir}/images/rootfs.ext2' \ --kernel='${outdir}/build/linux-custom/vmlinux' \ --root-device=/dev/sda \ " elif [ "$arch" = arm ]; then cmd="\ M5_PATH='$(pwd)/gem5/gem5-system' \ '${gem5_dir}/build/ARM/gem5.opt' \ '${gem5_dir}/configs/example/fs.py' \ --disk-image='${outdir}/images/rootfs.ext2' \ --dtb-file='${gem5_dir}/system/arm/dt/armv7_gem5_v1_1cpu.dtb' \ --kernel='${outdir}/build/linux-custom/vmlinux' \ --machine-type=VExpress_GEM5_V1 \ --root-device=/dev/sda \ " fi cmd="$cmd \"\$@\"" echo "$cmd" eval "$cmd"