run_args = "-vv repl"
watch_args = "-c"
OFTLISP_HOME = "~/oftlisp"
all: check doc test build
all-release: check doc test build build-release
install:
cargo install --path oftb
install-force:
cargo install --force --path oftb
publish:
cargo publish
cd oftlisp-anf && cargo publish
cd oftb && cargo publish
watch:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just run_args=\"{{run_args}}\" all"
watch-check:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -x "check --all"
watch-cross:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just run_args=\"{{run_args}}\" cross-all all"
watch-cross-release:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just run_args=\"{{run_args}}\" cross-all-release all-release"
watch-install:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just install-force"
watch-release:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just run_args=\"{{run_args}}\" all-release"
watch-run:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -s "just run_args=\"{{run_args}}\" run"
watch-test:
cargo watch {{watch_args}} -w {{OFTLISP_HOME}}/src -x "test --all"
build:
cargo build --all
build-release:
cargo build --all --release
check:
cargo check --all
clean:
cargo clean
cross TARGET:
cd oftb && cargo build --all --no-default-features --target {{TARGET}}
cross-release TARGET:
cd oftb && cargo build --all --no-default-features --release --target {{TARGET}}
cross-all:
just cross aarch64-linux-android
just cross arm-linux-androideabi
just cross asmjs-unknown-emscripten
# just cross wasm32-unknown-emscripten
just cross x86_64-pc-windows-gnu
just cross x86_64-unknown-linux-gnu
just cross x86_64-unknown-linux-musl
cross-all-release:
just cross-release aarch64-linux-android
just cross-release arm-linux-androideabi
just cross-release asmjs-unknown-emscripten
# just cross-release wasm32-unknown-emscripten
just cross-release x86_64-pc-windows-gnu
just cross-release x86_64-unknown-linux-gnu
just cross-release x86_64-unknown-linux-musl
doc:
cargo doc --all
doc-open: doc
cargo doc --open
test:
cargo test --all
run:
cargo run --manifest-path oftb/Cargo.toml -- {{run_args}}
run-release:
cargo run --manifest-path oftb/Cargo.toml --release -- {{run_args}}
gdb: build
rust-gdb --args target/debug/oftb {{run_args}}
lldb: build
rust-lldb -f target/debug/oftb -- {{run_args}}
nemiver: build
nemiver --gdb-binary=rust-gdb target/debug/oftb {{run_args}}
r2: build
r2 -e dbg.bep=main target/debug/oftb # {{run_args}}
compare-sizes: cross-all cross-all-release
find target/*/{debug,release}/oftb* -not -name '*.d' | xargs exa -lrs size