2026-10-11 12:04:41 +03:30
|
|
|
BINARY := lazyntfy
|
|
|
|
|
PREFIX ?= $(HOME)/.local
|
|
|
|
|
BINDIR ?= $(PREFIX)/bin
|
|
|
|
|
MANDIR ?= $(PREFIX)/share/man/man1
|
2026-10-11 12:20:47 +03:30
|
|
|
DOCDIR ?= $(PREFIX)/share/doc/$(BINARY)
|
|
|
|
|
DESTDIR ?=
|
2026-10-11 12:04:41 +03:30
|
|
|
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null | sed 's/^v//' | grep . || echo 0.1.0)
|
|
|
|
|
TOPIC ?= alerts
|
2026-10-11 12:20:47 +03:30
|
|
|
GO ?= go
|
|
|
|
|
GOFLAGS ?= -trimpath
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
LDFLAGS := -X main.version=$(VERSION)
|
|
|
|
|
|
2026-10-11 12:20:47 +03:30
|
|
|
.PHONY: all build install uninstall man test vet fmt run deb arch clean
|
|
|
|
|
|
|
|
|
|
all: build
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
build:
|
2026-10-11 12:20:47 +03:30
|
|
|
$(GO) build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BINARY) ./cmd/lazyntfy
|
2026-10-11 12:04:41 +03:30
|
|
|
|
2026-10-11 12:20:47 +03:30
|
|
|
# System-wide install: sudo make install PREFIX=/usr/local
|
|
|
|
|
# Staged install: make install DESTDIR=/tmp/pkg PREFIX=/usr
|
2026-10-11 12:04:41 +03:30
|
|
|
install: build
|
2026-10-11 12:20:47 +03:30
|
|
|
install -Dm755 $(BINARY) "$(DESTDIR)$(BINDIR)/$(BINARY)"
|
|
|
|
|
install -Dm644 man/lazyntfy.1 "$(DESTDIR)$(MANDIR)/lazyntfy.1"
|
|
|
|
|
install -Dm644 LICENSE "$(DESTDIR)$(DOCDIR)/copyright"
|
|
|
|
|
install -Dm644 README.md "$(DESTDIR)$(DOCDIR)/README.md"
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
uninstall:
|
2026-10-11 12:20:47 +03:30
|
|
|
rm -f "$(DESTDIR)$(BINDIR)/$(BINARY)" "$(DESTDIR)$(MANDIR)/lazyntfy.1"
|
|
|
|
|
rm -rf "$(DESTDIR)$(DOCDIR)"
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
man:
|
2026-10-11 12:20:47 +03:30
|
|
|
install -Dm644 man/lazyntfy.1 "$(DESTDIR)$(MANDIR)/lazyntfy.1"
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
test:
|
2026-10-11 12:20:47 +03:30
|
|
|
$(GO) test ./...
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
vet:
|
2026-10-11 12:20:47 +03:30
|
|
|
$(GO) vet ./...
|
2026-10-11 12:04:41 +03:30
|
|
|
|
|
|
|
|
fmt:
|
|
|
|
|
gofmt -w .
|
|
|
|
|
|
|
|
|
|
run: build
|
|
|
|
|
./$(BINARY) $(TOPIC)
|
|
|
|
|
|
2026-10-11 12:20:47 +03:30
|
|
|
# Build a Debian/Ubuntu package. -d skips build-dependency checks so the
|
|
|
|
|
# package can also be built on a machine without golang-go installed as a
|
|
|
|
|
# distro package.
|
|
|
|
|
deb:
|
|
|
|
|
dpkg-buildpackage -us -uc -b -d
|
|
|
|
|
mkdir -p dist
|
|
|
|
|
mv -f ../$(BINARY)_*_*.deb ../$(BINARY)_*_*.changes ../$(BINARY)_*_*.buildinfo dist/ 2>/dev/null || true
|
|
|
|
|
@echo " packages written to dist/"
|
|
|
|
|
|
|
|
|
|
arch:
|
|
|
|
|
cd packaging/archlinux && makepkg -f
|
|
|
|
|
|
2026-10-11 12:04:41 +03:30
|
|
|
clean:
|
|
|
|
|
rm -f $(BINARY)
|
2026-10-11 12:20:47 +03:30
|
|
|
rm -rf dist
|
|
|
|
|
-$(MAKE) -f debian/rules clean
|