From 67ebbac0be7ad917e794ca5ea0496d0a1ead83b8 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 6 May 2025 04:10:06 -0400 Subject: much work (options, rc script, make install, etc etc). --- Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 70985f9..4ef8ee2 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ # Makefile for marsond. Should be fine with any make (GNU, BSD, etc). +### Compiler and options. CC=gcc # CC=clang works, too @@ -7,4 +8,49 @@ COPT=-O2 CWARN=-Wall CFLAGS=-std=c99 $(COPT) $(CWARN) +### Install paths. Not compiled into the binary. +PREFIX=/usr +SBINDIR=$(PREFIX)/sbin +MANDIR=$(PREFIX)/man +MAN8DIR=$(PREFIX)/man8 + +INSTALL=install +INSTALL_MAN=$(INSTALL) +INSTALL_BIN=$(INSTALL) -s -m0755 +INSTALL_RC=$(INSTALL) -m0755 +GZIP=gzip -9 + +# Leave blank to skip installing the Slackware-style rc.marsond SysV +# init script. Most distros no longer use rc scripts. Mine does, +# and doesn't have systemd, so I didn't try to write a systemd service +# file for this. +# For Slackware, this should be: +# RCDIR=/etc/rc.d +RCDIR= + +### No user-serviceable parts below (I hope). all: marsond + +marsond: marsond.c usage.c + +usage.c: mkusage.pl marsond.rst + perl mkusage.pl marsond.rst > usage.c + +marsond.1: marsond.rst + rst2man marsond.rst > marsond.1 + +clean: + rm -f marsond core *.o + +realclean: clean + rm -f marsond.1 usage.c + +install: all + mkdir -p $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(MAN8DIR) + $(INSTALL_BIN) marsond $(DESTDIR)/$(SBINDIR) + $(INSTALL_MAN) marsond.1 $(DESTDIR)/$(MAN8DIR) + $(GZIP) $(DESTDIR)/$(MAN8DIR)/marsond.1 || true + [ "$(RCDIR)" != "" ] && \ + mkdir -p $(DESTDIR)/$(RCDIR) && \ + $(INSTALL_RC) rc.marsond $(DESTDIR)$(RCDIR) + -- cgit v1.2.3