pgmon/Makefile

89 lines
2.0 KiB
Makefile
Raw Normal View History

2025-01-08 23:34:51 +00:00
PACKAGE_NAME := pgmon
VERSION := 1.0
2025-01-09 01:58:52 +00:00
2025-01-08 23:34:51 +00:00
BUILD_DIR := build
2025-01-09 01:58:52 +00:00
2025-01-08 23:34:51 +00:00
DEB_IMAGE := debian-package-builder
RPM_IMAGE := rpm-package-builder
SCRIPT := src/$(PACKAGE_NAME).py
# Top-level targets
2025-01-09 01:58:52 +00:00
.PHONY: all clean deb rpm test
2025-01-08 23:34:51 +00:00
all: deb rpm
deb:
mkdir -p $(BUILD_DIR)/deb
docker run --rm \
-v .:/src:ro \
-v ./$(BUILD_DIR)/deb:/output \
$(DEB_IMAGE)
rpm:
mkdir -p $(BUILD_DIR)/rpm
docker run --rm \
-v .:/src:ro \
-v ./$(BUILD_DIR)/rpm:/output \
$(RPM_IMAGE)
clean:
rm -rf $(BUILD_DIR)
2025-01-09 01:58:52 +00:00
test:
cd src ; python3 -m unittest
2025-01-08 23:34:51 +00:00
# Container targets
.PHONY: docker deb-package-image rpm-package-image
docker: deb-package-image rpm-package-image
deb-package-image: Dockerfile.deb
docker build -t $(DEB_IMAGE) -f Dockerfile.deb .
rpm-package-image: Dockerfile.rpm
docker build -t $(RPM_IMAGE) -f Dockerfile.rpm .
# Inside-container targets
.PHONY: package-deb package-rpm
# Debian package creation logic
package-deb:
$(MAKE) install DESTDIT=/output
cp -r DEBIAN /output/
dpkg-deb --build /output /output/$(PACKAGE_NAME)_$(VERSION).deb
# RPM package creation logic
package-rpm:
mkdir -p /output/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cp RPM/$(PACKAGE_NAME).spec /output/SPECS/
rpmbuild --define '_topdir /output' \
--define 'version $(VERSION)' \
2025-01-09 01:58:52 +00:00
-bb /output/SPECS/$(PACKAGE_NAME).spec
cp /output/RPMS/x86_64/*.rpm /output/
2025-01-08 23:34:51 +00:00
# Install into the specified destination directory (used inside the packaging systems)
.PHONY: install
install:
# Set up directories
2025-01-09 01:58:52 +00:00
mkdir -p $(DESTDIR)/usr/local/bin
2025-01-08 23:34:51 +00:00
mkdir -p $(DESTDIR)/usr/share/man/man1
mkdir -p $(DESTDIR)/etc/$(PACKAGE_NAME)
mkdir -p $(DESTDIR)/lib/systemd/system
# Install script
2025-01-09 01:58:52 +00:00
cp $(SCRIPT) $(DESTDIR)/usr/local/bin/$(PACKAGE_NAME)
chmod 755 $(DESTDIR)/usr/local/bin/$(PACKAGE_NAME)
2025-01-08 23:34:51 +00:00
# Install manpage
cp manpages/* $(DESTDIR)/usr/share/man/man1/
gzip -9 $(DESTDIR)/usr/share/man/man1/$(PACKAGE_NAME).1
# Install sample config
cp sample-config/* $(DESTDIR)/etc/$(PACKAGE_NAME)/
# Install systemd unit files
cp systemd/* $(DESTDIR)/lib/systemd/system/