mirror of
https://github.com/epi052/feroxbuster
synced 2024-07-08 19:45:45 +00:00
81 lines
2.1 KiB
Makefile
81 lines
2.1 KiB
Makefile
default_prefix = /usr/local
|
|
prefix ?= $(default_prefix)
|
|
exec_prefix = $(prefix)
|
|
bindir = $(exec_prefix)/bin
|
|
datarootdir = $(prefix)/share
|
|
datadir = $(datarootdir)
|
|
example_config = ferox-config.toml.example
|
|
config_file = ferox-config.toml
|
|
completion_dir = shell_completions
|
|
completion_prefix = $(completion_dir)/$(BIN)
|
|
|
|
BIN=feroxbuster
|
|
SHR_SOURCES = $(shell find src -type f -wholename '*src/*.rs') Cargo.toml Cargo.lock
|
|
|
|
RELEASE = debug
|
|
DEBUG ?= 0
|
|
|
|
ifeq (0, $(DEBUG))
|
|
ARGS = --release
|
|
RELEASE = release
|
|
endif
|
|
|
|
VENDORED ?= 0
|
|
ifeq (1,$(VENDORED))
|
|
ARGS += --frozen
|
|
endif
|
|
|
|
TARGET = target/$(RELEASE)
|
|
|
|
.PHONY: all clean install uninstall test update
|
|
|
|
all: cli
|
|
cli: $(TARGET)/$(BIN) $(TARGET)/$(BIN).1.gz $(SHR_SOURCES)
|
|
install: all install-cli
|
|
|
|
verify:
|
|
cargo fmt
|
|
cargo clippy --all-targets --all-features -- -D warnings -A clippy::mutex-atomic
|
|
cargo test
|
|
|
|
clean:
|
|
cargo clean
|
|
|
|
vendor: vendor.tar
|
|
|
|
vendor.tar:
|
|
cargo vendor
|
|
tar pcf vendor.tar vendor
|
|
rm -rf vendor
|
|
|
|
install-cli: cli
|
|
install -Dm 0644 "$(completion_prefix).bash" "$(DESTDIR)/usr/share/bash-completion/completions/$(BIN).bash"
|
|
install -Dm 0644 "$(completion_prefix).fish" "$(DESTDIR)/usr/share/fish/completions/$(BIN).fish"
|
|
install -Dm 0644 "$(completion_dir)/_$(BIN)" "$(DESTDIR)/usr/share/zsh/vendor-completions/_$(BIN)"
|
|
install -sDm 0755 "$(TARGET)/$(BIN)" "$(DESTDIR)$(bindir)/$(BIN)"
|
|
install -Dm 0644 "$(TARGET)/$(BIN).1.gz" "$(DESTDIR)$(datadir)/man/man1/$(BIN).1.gz"
|
|
install -Dm 0644 "$(example_config)" "$(DESTDIR)/etc/$(BIN)/$(config_file)"
|
|
|
|
uninstall:
|
|
rm -f "$(DESTDIR)$(bindir)/$(BIN)"
|
|
rm -f "$(DESTDIR)$(datadir)/man/man1/$(BIN).1.gz"
|
|
rm -rf "$(DESTDIR)/etc/$(BIN)/"
|
|
rm -f "$(DESTDIR)/usr/share/bash-completion/completions/$(BIN).bash"
|
|
rm -f "$(DESTDIR)/usr/share/zsh/vendor-completions/_$(BIN)"
|
|
rm -f "$(DESTDIR)/usr/share/fish/completions/$(BIN).fish"
|
|
|
|
extract:
|
|
ifeq (1, $(VENDORED))
|
|
tar pxf vendor.tar
|
|
endif
|
|
|
|
$(TARGET)/$(BIN): extract
|
|
mkdir -p .cargo debian
|
|
touch debian/cargo.config
|
|
cp debian/cargo.config .cargo/config.toml
|
|
cargo build $(ARGS)
|
|
|
|
$(TARGET)/$(BIN).1.gz: $(TARGET)/$(BIN)
|
|
help2man --no-info $< | gzip -c > $@.partial
|
|
mv $@.partial $@
|