From 365ee1c8506fe22b70f3b5d5888b1f7d0b587dc9 Mon Sep 17 00:00:00 2001
From: "Marco C." <46560192+Marcondiro@users.noreply.github.com>
Date: Wed, 18 Dec 2024 16:52:34 +0100
Subject: [PATCH] Add Makefile.toml to intel_pt_baby_fuzzer (#2779)

* Add intel_pt_babyfuzzer Makefile

* ad cargo make to readme
---
 .../intel_pt_baby_fuzzer/Makefile.toml        | 26 +++++++++++++++++++
 .../intel_pt_baby_fuzzer/README.md            |  2 ++
 2 files changed, 28 insertions(+)
 create mode 100644 fuzzers/binary_only/intel_pt_baby_fuzzer/Makefile.toml

diff --git a/fuzzers/binary_only/intel_pt_baby_fuzzer/Makefile.toml b/fuzzers/binary_only/intel_pt_baby_fuzzer/Makefile.toml
new file mode 100644
index 0000000000..f3aba8ebe4
--- /dev/null
+++ b/fuzzers/binary_only/intel_pt_baby_fuzzer/Makefile.toml
@@ -0,0 +1,26 @@
+[env]
+RUST_BACKTRACE = "0"
+TARGET_DIR = "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}"
+
+[env.development]
+PROFILE_DIR = "debug"
+CARGO_BUILD_ARG = ""
+
+[env.release]
+PROFILE_DIR = "release"
+CARGO_BUILD_ARG = "--release"
+
+[tasks.build]
+command = "cargo"
+args = ["build", "--profile", "${CARGO_MAKE_CARGO_PROFILE}"]
+
+[tasks.setcap]
+script = "sudo setcap cap_ipc_lock,cap_sys_ptrace,cap_sys_admin,cap_syslog=ep ${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/${PROFILE_DIR}/${CARGO_MAKE_CRATE_NAME}"
+dependencies = ["build"]
+
+[tasks.run]
+command = "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/${PROFILE_DIR}/${CARGO_MAKE_CRATE_NAME}"
+dependencies = ["build", "setcap"]
+
+[tasks.default]
+alias = "run"
diff --git a/fuzzers/binary_only/intel_pt_baby_fuzzer/README.md b/fuzzers/binary_only/intel_pt_baby_fuzzer/README.md
index 79fc1ced19..2ca0054b3a 100644
--- a/fuzzers/binary_only/intel_pt_baby_fuzzer/README.md
+++ b/fuzzers/binary_only/intel_pt_baby_fuzzer/README.md
@@ -12,4 +12,6 @@ After building this example with `cargo build`, you need to give to the executab
 You can run this example using `cargo run`, and you can enable the TUI feature by building and running with 
 `--features tui`.
 
+As an alternative, simply run `cargo make` to build and run the fuzzer (requires `cargo-make`).
+
 This fuzzer is compatible with Linux hosts only having an Intel PT compatible CPU.