44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
# Main Justfile for LibAFL
|
|
# Provides multiple useful variables.
|
|
#
|
|
# Must be set:
|
|
# - `FUZZER_NAME`: Name of the executable.
|
|
#
|
|
# Provides:
|
|
# - `PROFILE`: Profile (either `dev` or `release`). Default is `release`.
|
|
# - `PROFILE_DIR`: Profile directory (either `debug` or `release`).
|
|
# - `TARGET_DIR`: target directry. Defaults to `target`.
|
|
# - `BUILD_DIR`: Root directory in which the program is compiled.
|
|
# - `FUZZER`: Executable path.
|
|
|
|
PROFILE := env("PROFILE", "release")
|
|
FUZZER_EXTENSION := if os_family() == "windows" { ".exe" } else { "" }
|
|
FUZZER := BUILD_DIR / FUZZER_NAME + FUZZER_EXTENSION
|
|
|
|
PROJECT_DIR := absolute_path(".")
|
|
PROFILE_DIR := if PROFILE == "dev" { "debug" } else { "release" }
|
|
TARGET_DIR := absolute_path(env("TARGET_DIR", "target"))
|
|
BUILD_DIR := TARGET_DIR / PROFILE_DIR
|
|
|
|
JUSTHASHES := ".justhashes"
|
|
|
|
buildfile fpath:
|
|
#!/bin/bash
|
|
|
|
# Init hash files if does not exit
|
|
if [ ! -f {{ JUSTHASHES }} ]; then
|
|
touch {{ JUSTHASHES }}
|
|
fi
|
|
|
|
if [ -d {{ fpath }}]
|
|
echo "{{ fpath }} already exists as dir."
|
|
exit 1
|
|
fi
|
|
|
|
# Run the file recipe if it changed or was not built before
|
|
if [ ! -f {{ fpath }} ] || [ ! "$(md5sum {{ fpath }} | head -c 32)" == "$(grep " {{ fpath }}" {{ JUSTHASHES }} | head -c 32)" ]; then
|
|
just {{ fpath }}
|
|
echo "$(grep -v "{{ fpath }}" {{ JUSTHASHES }})" > {{ JUSTHASHES }}
|
|
md5sum {{ fpath }} >> {{ JUSTHASHES }}
|
|
fi
|