import "../../just/libafl-qemu.just"
import "libafl_asan_fuzz/Justfile"
import "libafl_asan_libc/Justfile"
import "fuzzer_name.just"
ASAN_SOURCE_DIR := source_directory()
[unix]
compile_asan:
#!/bin/sh
. {{ DOTENV }}
cargo \
build \
--package libafl_asan \
--target ${CROSS_TARGET} \
--profile {{ PROFILE }} \
--target-dir {{ TARGET_DIR }}
[unix]
fix_asan:
#!/bin/sh
. {{ DOTENV }}
cargo \
fix \
--package libafl_asan \
--target ${CROSS_TARGET} \
--profile {{ PROFILE }} \
--target-dir {{ TARGET_DIR }} \
--allow-dirty
[unix]
test_asan:
#!/bin/sh
. {{ DOTENV }}
cd {{ ASAN_SOURCE_DIR }}
cargo \
nextest \
run \
--target ${CROSS_TARGET}
[unix]
build_asan: compile_asan
build: build_asan build_libc build_fuzz
test: test_asan
pretty_rust:
#!/bin/sh
MAIN_LLVM_VERSION=$LLVM_VERSION cargo run --manifest-path ../utils/libafl_repo_tools/Cargo.toml --release -- -v
pretty_toml:
#!/bin/sh
taplo fmt
pretty: pretty_rust pretty_toml
fix: fix_asan fix_libc fix_fuzz
clippy:
#!/bin/sh
cargo clippy -F test
doc:
#!/bin/sh
cargo doc
all: fix pretty build test clippy doc
build_arm_dev:
#!/bin/sh
ARCH=arm PROFILE=dev just build
build_aarch64_dev:
#!/bin/sh
ARCH=aarch64 PROFILE=dev just build
build_x86_64_dev:
#!/bin/sh
ARCH=x86_64 PROFILE=dev just build
build_i386_dev:
#!/bin/sh
ARCH=i386 PROFILE=dev just build
build_ppc_dev:
#!/bin/sh
RUSTC_BOOTSTRAP=1 \
RUSTFLAGS="--cfg rustix_use_experimental_asm" \
ARCH=ppc PROFILE=dev just build
build_arm_release:
#!/bin/sh
ARCH=arm PROFILE=release just build
build_aarch64_release:
#!/bin/sh
ARCH=aarch64 PROFILE=release just build
build_x86_64_release:
#!/bin/sh
ARCH=x86_64 PROFILE=release just build
build_i386_release:
#!/bin/sh
ARCH=i386 PROFILE=release just build
build_ppc_release:
#!/bin/sh
RUSTC_BOOTSTRAP=1 \
RUSTFLAGS="--cfg rustix_use_experimental_asm" \
ARCH=ppc PROFILE=release just build
build_everything_dev: \
build_arm_dev \
build_aarch64_dev \
build_x86_64_dev \
build_i386_dev \
build_ppc_dev \
build_everything_release: \
build_arm_release \
build_aarch64_release \
build_x86_64_release \
build_i386_release \
build_ppc_release \
build_everything: build_everything_dev build_everything_release
test_arm:
#!/bin/sh
RUSTC_BOOTSTRAP=1 \
RUSTFLAGS="--cfg rustix_use_experimental_asm" \
ARCH=arm \
PROFILE=dev \
RUSTLOG=debug \
RUST_BACKTRACE=full \
just test
test_aarch64:
#!/bin/sh
ARCH=aarch64 \
PROFILE=dev \
RUSTLOG=debug \
RUST_BACKTRACE=full \
just test
test_x86_64:
#!/bin/sh
ARCH=x86_64 \
PROFILE=dev \
RUSTLOG=debug \
RUST_BACKTRACE=full \
just test
test_i386:
#!/bin/sh
ARCH=i386 \
PROFILE=dev \
RUSTLOG=debug \
RUST_BACKTRACE=full \
just test
test_ppc:
#!/bin/sh
RUSTC_BOOTSTRAP=1 \
RUSTFLAGS="--cfg rustix_use_experimental_asm" \
ARCH=ppc \
PROFILE=dev \
RUSTLOG=debug \
RUST_BACKTRACE=full \
just test
test_everything: \
test_arm \
test_aarch64 \
test_x86_64 \
test_i386 \
test_ppc
everything: build_everything test_everything clippy