73 lines
2.1 KiB
Makefile
73 lines
2.1 KiB
Makefile
# SPDX-FileCopyrightText: 2026 Eric Ireland
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
PREFIX ?= /usr/local
|
|
SYSCONFDIR ?= /etc
|
|
DESTDIR ?=
|
|
PYTHON ?= python3
|
|
INSTALL ?= install
|
|
GZIP ?= gzip
|
|
GIT ?= git
|
|
SHA256SUM ?= sha256sum
|
|
|
|
SBINDIR := $(DESTDIR)$(PREFIX)/sbin
|
|
MANDIR := $(DESTDIR)$(PREFIX)/share/man/man8
|
|
BACKUPDIR := $(DESTDIR)/var/backups/vmailctl
|
|
CONFIG := $(DESTDIR)$(SYSCONFDIR)/vmailctl.conf
|
|
VERSION := $(shell sed -n 's/^VERSION = "\(.*\)"/\1/p' vmailctl)
|
|
RELEASE_TAG ?= v$(VERSION)
|
|
DISTDIR ?= dist
|
|
DIST_NAME := vmailctl-$(VERSION)
|
|
DIST_ARCHIVE := $(DISTDIR)/$(DIST_NAME).tar.gz
|
|
DIST_CHECKSUM := $(DIST_ARCHIVE).sha256
|
|
|
|
.PHONY: all check man-check dist install
|
|
|
|
all: check
|
|
|
|
check:
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) -m unittest discover -v \
|
|
-s tests -p 'test_*.py'
|
|
|
|
man-check:
|
|
groff -man -z -ww man/vmailctl.8
|
|
|
|
dist: check man-check
|
|
@test -n "$(VERSION)" || { echo "Cannot determine VERSION" >&2; exit 1; }
|
|
@$(GIT) rev-parse --verify --quiet \
|
|
"refs/tags/$(RELEASE_TAG)^{commit}" >/dev/null || { \
|
|
echo "Release tag $(RELEASE_TAG) does not exist" >&2; exit 1; \
|
|
}
|
|
@$(INSTALL) -d -m 0755 "$(DISTDIR)"
|
|
@set -eu; \
|
|
archive_tmp="$(DIST_ARCHIVE).tmp"; \
|
|
checksum_tmp="$(DIST_CHECKSUM).tmp"; \
|
|
trap 'rm -f -- "$$archive_tmp" "$$checksum_tmp"' EXIT; \
|
|
LC_ALL=C $(GIT) archive --format=tar \
|
|
--prefix="$(DIST_NAME)/" "$(RELEASE_TAG)" | \
|
|
$(GZIP) -n -9 >"$$archive_tmp"; \
|
|
mv -f -- "$$archive_tmp" "$(DIST_ARCHIVE)"; \
|
|
(cd "$(DISTDIR)" && \
|
|
$(SHA256SUM) "$(DIST_NAME).tar.gz") >"$$checksum_tmp"; \
|
|
mv -f -- "$$checksum_tmp" "$(DIST_CHECKSUM)"; \
|
|
trap - EXIT
|
|
@echo "Created $(DIST_ARCHIVE)"
|
|
@echo "Created $(DIST_CHECKSUM)"
|
|
|
|
install:
|
|
$(INSTALL) -d -m 0755 $(SBINDIR)
|
|
$(INSTALL) -m 0755 vmailctl $(SBINDIR)/vmailctl
|
|
$(INSTALL) -d -m 0755 $(DESTDIR)$(SYSCONFDIR)
|
|
@if test -e "$(CONFIG)"; then \
|
|
echo "Preserving existing $(CONFIG)"; \
|
|
else \
|
|
$(INSTALL) -m 0644 vmailctl.conf.example "$(CONFIG)"; \
|
|
fi
|
|
$(INSTALL) -d -m 0700 $(BACKUPDIR)
|
|
$(INSTALL) -d -m 0755 $(MANDIR)
|
|
$(INSTALL) -m 0644 man/vmailctl.8 $(MANDIR)/vmailctl.8
|
|
$(GZIP) -n -9 -f $(MANDIR)/vmailctl.8
|
|
@if test -z "$(DESTDIR)" && command -v mandb >/dev/null 2>&1; then \
|
|
mandb -q; \
|
|
fi
|