# Makefile for marsond. Should be fine with any make (GNU, BSD, etc). # Remember, all these assignments, you can override on the make # command line rather than editing this file. Examples: # make CC=clang CFLAGS=-O3 # make install PREFIX=/usr/local ### Compiler and options. CC=gcc # CC=clang works, too COPT=-O2 CWARN=-Wall CFLAGS=-std=c99 $(COPT) $(CWARN) ### Install paths. Not compiled into the binary. # These are appropriate for Slackware. Most other distros will need # MANDIR=$(PREFIX)/share/man, and DOCDIR=$(PREFIX)/share/doc/marsond. PREFIX=/usr SBINDIR=$(PREFIX)/sbin MANDIR=$(PREFIX)/man MAN8DIR=$(PREFIX)/man8 DOCDIR=/usr/doc/marsond-$(VERSION) UDEVDIR=/etc/udev/rules.d INSTALL=install INSTALL_MAN=$(INSTALL) INSTALL_UDEV=$(INSTALL) INSTALL_DOC=$(INSTALL) INSTALL_BIN=$(INSTALL) -s -m0755 # Build with GZIP=false to avoid gzipping the man page. GZIP=gzip -9 # When building a Slackware package, use RULESUFFIX=.new RULESUFFIX= ### No user-serviceable parts below (I hope). all: marsond marsond.1 99-marsond.rules marsond: marsond.c usage.c usage.c: mkusage.pl marsond.1 perl mkusage.pl marsond.rst > usage.c marsond.1: marsond.rst rst2man marsond.rst > marsond.1 99-marsond.rules: sed 's,@SBINDIR@,$(SBINDIR),' < 99-marsond.rules.in > 99-marsond.rules clean: rm -f marsond core *.o realclean: clean rm -f marsond.1 usage.c install: all mkdir -p $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(MAN8DIR) $(DESTDIR)/$(UDEVDIR) $(DESTDIR)/$(DOCDIR) $(INSTALL_BIN) marsond $(DESTDIR)/$(SBINDIR) $(INSTALL_MAN) marsond.1 $(DESTDIR)/$(MAN8DIR) $(GZIP) $(DESTDIR)/$(MAN8DIR)/marsond.1 || true $(INSTALL_UDEV) 99-marsond.rules $(DESTDIR)/$(UDEVDIR)$(RULESUFFIX) $(INSTALL_DOC) README TODO LICENSE $(DESTDIR)/$(DOCDIR)