# clatd Makefile # # Copyright (C) 2025 Daniel Gröber # # SPDX-License-Identifier: MIT DESTDIR= PREFIX=/usr SYSCONFDIR=/etc BINDIR = $(PREFIX)/sbin SYSTEMCTL = systemctl CLATD = $(DESTDIR)$(BINDIR)/clatd MANPAGE = $(DESTDIR)$(PREFIX)/share/man/man8/clatd.8 SYSTEMD_SYSSERVICEDIR = $(DESTDIR)$(SYSCONFDIR)/systemd/system NM_DISPATCHER = $(DESTDIR)$(SYSCONFDIR)/NetworkManager/dispatcher.d/50-clatd Q = @ all: clatd.8 .ONESHELL: clatd.8: clatd.pod pod2man \ --name clatd \ --center "clatd - CLAT, SIIT-DC and IPv6-only with many XLAT engines" \ --section 8 \ $< $@ clean: -rm clatd.8 start: install $(SYSTEMCTL) --system daemon-reload $(SYSTEMCTL) --system -f --now enable clatd.service stop: $(SYSTEMCTL) --system disable --now clatd.service uninstall: stop -rm $(SYSTEMD_SYSSERVICE)/clatd.service \ $(SYSTEMD_SYSSERVICE)/clatd@.service \ $(NM_DISPATCHER) install: install -D -m0755 clatd $(CLATD) install -D -m0644 clatd.8 $(MANPAGE) install -D -m0644 scripts/*.service $(SYSTEMD_SYSSERVICEDIR)/ install -D -m0755 scripts/clatd.networkmanager $(NM_DISPATCHER) DEB_PACKAGES = \ perl libnet-ip-perl libnet-dns-perl libjson-perl \ iproute2 nftables tayga RPM_PACKAGES = \ perl perl-IPC-Cmd perl-Net-IP perl-Net-DNS perl-File-Temp perl-JSON \ iproute nftables installdeps: $(Q)prog_exists () { command -v $$@ >/dev/null 2>&1; } { PKGS='$(DEB_PACKAGES)'; PKG=apt; prog_exists $$PKG; } || \ { PKGS='$(RPM_PACKAGES)'; PKG=dnf; prog_exists $$PKG; } || \ { PKGS='$(RPM_PACKAGES)'; PKG=yum; prog_exists $$PKG; } || \ { PKG=false; echo 'ERROR: Failed to detect system package manager.'>&2;} $(DRY) $$PKG install -y $$PKGS