1build: 2 cargo build --release 3 4format: 5 git ls-files | grep '\.rs$$' | xargs -P 0 rustfmt 6 7lint: 8 cargo clippy 9 10test: unit-test end-to-end-test 11 12unit-test: 13 cargo test 14 15end-to-end-test: build 16 ./tests/test_raw_output_matches_git_on_full_repo_history 17 ./tests/test_deprecated_options > /dev/null 18 ./tests/test_navigate_less_history_file 19 20release: 21 @make -f release.Makefile release 22 23version: 24 @grep version Cargo.toml | head -n1 | sed -E 's,.*version = "([^"]+)",\1,' 25 26hash: 27 @version=$$(make version) && \ 28 printf "$$version-tar.gz %s\n" $$(curl -sL https://github.com/dandavison/delta/archive/$$version.tar.gz | sha256sum -) && \ 29 printf "delta-$$version-x86_64-apple-darwin.tar.gz %s\n" $$(curl -sL https://github.com/dandavison/delta/releases/download/$$version/delta-$$version-x86_64-apple-darwin.tar.gz | sha256sum -) && \ 30 printf "delta-$$version-x86_64-unknown-linux-musl.tar.gz %s\n" $$(curl -sL https://github.com/dandavison/delta/releases/download/$$version/delta-$$version-x86_64-unknown-linux-musl.tar.gz | sha256sum -) 31 32BENCHMARK_INPUT_FILE = /tmp/delta-benchmark-input.gitdiff 33BENCHMARK_COMMAND = git log -p 23c292d3f25c67082a2ba315a187268be1a9b0ab 34benchmark: build 35 $(BENCHMARK_COMMAND) > $(BENCHMARK_INPUT_FILE) 36 hyperfine 'target/release/delta --no-gitconfig < $(BENCHMARK_INPUT_FILE) > /dev/null' 37 38# https://github.com/brendangregg/FlameGraph 39flamegraph: build 40 $(BENCHMARK_COMMAND) | target/release/delta > /dev/null & 41 sample delta | stackcollapse-sample | flamegraph > etc/performance/flamegraph.svg 42 43chronologer: 44 chronologer etc/performance/chronologer.yaml 45 46.PHONY: build format lint test unit-test end-to-end-test release version hash benchmark flamegraph chronologer 47