{ lib,
  stdenv,
  cmake,
  abstract-machine,
  arch ? "riscv-nemu"
}:

stdenv.mkDerivation rec {
  pname = "am-kernel";
  version = "2024-07-10";

  src = ./.;

  nativeBuildInputs = [
    cmake
  ];

  buildInputs = [
    abstract-machine
  ];

  cmakeFlags = [
    (lib.cmakeFeature "ARCH" arch)
  ];

  cmakeBuildType = "Debug";
  dontStrip = true;

  meta = with lib; {
    description = "AbstractMachine kernels";
    homepage = "https://github.com/NJU-ProjectN/am-kernels.git";
    license = with licenses; [ ];
    maintainers = with maintainers; [ ];
  };
}