orkmode/Makefile

59 lines
1.3 KiB
Makefile

.PHONY: all build release debug install uninstall clean test check help
PREFIX ?= $(HOME)/.local
BINDIR ?= $(PREFIX)/bin
CARGO ?= cargo
CARGO_FLAGS ?=
all: release
build: release
release:
$(CARGO) build --release $(CARGO_FLAGS)
debug:
$(CARGO) build $(CARGO_FLAGS)
install: release
install -d $(BINDIR)
install -m 755 target/release/ork $(BINDIR)/ork
uninstall:
rm -f $(BINDIR)/ork
clean:
$(CARGO) clean
test:
$(CARGO) test $(CARGO_FLAGS)
check:
$(CARGO) check $(CARGO_FLAGS)
$(CARGO) clippy $(CARGO_FLAGS) -- -D warnings
fmt:
$(CARGO) fmt
fmt-check:
$(CARGO) fmt -- --check
help:
@echo "orkmode - org-mode parser and CLI"
@echo ""
@echo "Targets:"
@echo " all, build, release Build release binary"
@echo " debug Build debug binary"
@echo " install Install to $(BINDIR)"
@echo " uninstall Remove from $(BINDIR)"
@echo " clean Remove build artifacts"
@echo " test Run tests"
@echo " check Run cargo check and clippy"
@echo " fmt Format code"
@echo " fmt-check Check formatting"
@echo ""
@echo "Variables:"
@echo " PREFIX Installation prefix (default: ~/.local)"
@echo " CARGO Cargo command (default: cargo)"