#
# Makefile for `Hunt the Wumpus' and `Superhack' games
#
-VERS=$(shell sed <wumpus.spec -n -e '/Version: \(.*\)/s//\1/p')
+# SPDX-FileCopyrightText: (C) Eric S. Raymond <esr@thyrsus.com>
+# SPDX-License-Identifier: BSD-2-Clause
+
+VERS=$(shell sed -n <NEWS.adoc '/^[0-9]/s/:.*//p' | head -1)
+
+prefix?=/usr
+
+CFLAGS = -Wall
all: wumpus superhack
$(CC) $(CFLAGS) superhack.c -o superhack
clean:
- rm -f wumpus wumpus.o superhack superhack.o TAGS
- rm -f *~ *.1 *.html *.tar.gz MANIFEST SHIPPER.*
+ rm -f wumpus wumpus.o superhack superhack.o TAGS *.6
+ rm -f *~ *.1 *.html *.tar.gz MANIFEST
TAGS:
etags wumpus.c
-wumpus.6: wumpus.xml
- xmlto man wumpus.xml
+# Note: to suppress the footers with timestamps being generated in HTML,
+# we use "-a nofooter".
+# To debug asciidoc problems, you may need to run "xmllint --nonet --noout --valid"
+# on the intermediate XML that throws an error.
+.SUFFIXES: .html .adoc .6
-wumpus.html: wumpus.xml
- xmlto html-nochunks wumpus.xml
+.adoc.6:
+ asciidoctor -D. -a nofooter -b manpage $<
+.adoc.html:
+ asciidoctor -D. -a nofooter -a webfonts! $<
-SOURCES = README COPYING Makefile wumpus.c superhack.c wumpus.xml wumpus.spec
+SOURCES = README.adoc COPYING NEWS.adoc control Makefile wumpus.c superhack.c wumpus.adoc wumpus.png wumpus.desktop superhack.desktop
-install: wumpus.6
- cp wumpus superhack /usr/bin/
- cp wumpus.6 /usr/share/man/man6/
+install: wumpus superhack wumpus.6
+ mkdir -p $(prefix)/bin
+ mkdir -p $(prefix)/share/man/man6
+ cp wumpus superhack $(prefix)/bin/
+ cp wumpus.6 $(prefix)/share/man/man6/
uninstall:
- rm /usr/bin/wumpus /usr/bin/superhack
- rm /usr/share/man/man6/wumpus.6
+ rm $(prefix)/bin/wumpus $(prefix)/bin/superhack
+ rm $(prefix)/share/man/man6/wumpus.6
+
+reflow:
+ @clang-format --style="{IndentWidth: 8, UseTab: ForIndentation}" -i $$(find . -name "*.[ch]")
+
+CPPCHECKOPTS =
+cppcheck:
+ cppcheck -DREVISION=$(VERS) $(CPPCHECKOPTS) wumpus.c
+ cppcheck -DREVISION=$(VERS) $(CPPCHECKOPTS) superhack.c
wumpus-$(VERS).tar.gz: $(SOURCES) wumpus.6
@ls $(SOURCES) wumpus.6 | sed s:^:wumpus-$(VERS)/: >MANIFEST
dist: wumpus-$(VERS).tar.gz
-release: wumpus-$(VERS).tar.gz wumpus.html
- shipper -u -m -t; make clean
+release: wumpus-$(VERS).tar.gz wumpus.html wumpus.6
+ shipper version=$(VERS) | sh -e -x
+
+refresh: wumpus.html
+ shipper -N -w version=$(VERS) | sh -e -x