PassAGE/Makefile
fraggle c6e3c35a80 Change default install directory to /usr/bin
- Update Makefile PREFIX default from /usr/local to /usr
- Update INSTALL.md uninstall instructions to reflect /usr/bin
2026-01-11 19:07:34 -04:00

64 lines
1.8 KiB
Makefile

.PHONY: build install clean test release man install-man
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
PREFIX ?= /usr
MANPREFIX ?= $(PREFIX)/share/man
build:
go build -o passage .
build-release:
go build -trimpath -ldflags "-s -w -X main.version=$(VERSION)" -o passage .
install: build
@mkdir -p $(DESTDIR)$(PREFIX)/bin
cp passage $(DESTDIR)$(PREFIX)/bin/passage
@echo "Installed passage to $(DESTDIR)$(PREFIX)/bin/passage"
install-user: build
@mkdir -p ~/.local/bin
cp passage ~/.local/bin/passage
@echo "Installed passage to ~/.local/bin/passage"
man: passage.1
passage.1: passage.1.md
@if command -v pandoc >/dev/null 2>&1; then \
pandoc passage.1.md -s -t man -o passage.1; \
elif command -v go-md2man >/dev/null 2>&1; then \
go-md2man -in passage.1.md -out passage.1; \
else \
echo "Error: pandoc or go-md2man required to build manpage"; \
echo "Install pandoc: sudo apt-get install pandoc (Debian/Ubuntu)"; \
echo "Or install go-md2man: go install github.com/cpuguy83/go-md2man/v2@latest"; \
exit 1; \
fi
install-man: man
@mkdir -p $(DESTDIR)$(MANPREFIX)/man1
cp passage.1 $(DESTDIR)$(MANPREFIX)/man1/passage.1
@if command -v mandb >/dev/null 2>&1; then \
mandb $(DESTDIR)$(MANPREFIX) >/dev/null 2>&1 || true; \
fi
@echo "Installed manpage to $(DESTDIR)$(MANPREFIX)/man1/passage.1"
install-user-man: man
@mkdir -p ~/.local/share/man/man1
cp passage.1 ~/.local/share/man/man1/passage.1
@if command -v mandb >/dev/null 2>&1; then \
mandb ~/.local/share/man >/dev/null 2>&1 || true; \
fi
@echo "Installed manpage to ~/.local/share/man/man1/passage.1"
clean:
rm -f passage passage.1
test:
go test ./...
test-race:
go test -race ./...
release: build-release
@echo "Built release version: $(VERSION)"