Be able to run 'make Guidebook{|.txt|.ps}' in the doc subdirectory
without requring a full install first.
makedefs is no longer one of the first things built when building
nethack, and even if it was, nobody should have to rebuild all of
nethack after 'make spotless' when they just want to create one
or more of the formatted Guidebooks. The 'roff versions (.ps and
also .txt) use makedefs as a filter by default, so wouldn't build
if it wasn't there.
Have Makefile.doc build makedefs when needed.
Clean up some dependencies in Makefile.utl.
Add a couple of comments to Makefile.src.
131 lines
4.4 KiB
Makefile
131 lines
4.4 KiB
Makefile
# NetHack Documentation Makefile.
|
|
# NetHack 3.7 Makefile.doc $NHDT-Date: 1596498290 2020/08/03 23:44:50 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.21 $
|
|
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
|
|
# NetHack may be freely redistributed. See license for details.
|
|
|
|
# Root of source tree:
|
|
NHSROOT=..
|
|
|
|
# for Atari
|
|
# SHELL=E:/GEMINI2/MUPFEL.TTP
|
|
|
|
MAKEDEFS = ../util/makedefs
|
|
|
|
# Which version do we want to build? (XXX These are not used anywhere.)
|
|
GUIDEBOOK = Guidebook # regular ASCII file
|
|
#GUIDEBOOK = Guidebook.ps # PostScript file
|
|
#GUIDEBOOK = Guidebook.dvi # TeX device-independent file
|
|
|
|
# Some versions of col need -x to keep them from converting spaces to tabs;
|
|
# some versions of col don't do the conversion by default and don't
|
|
# recognize the option. Sigh.
|
|
COLCMD = col -bx
|
|
#COLCMD = col -b
|
|
|
|
# The command to use to generate a PostScript file
|
|
# PSCMD = ditroff | psdit
|
|
PSCMD = groff
|
|
|
|
# Use the "cat" GUIDECMD if nroff and/or tbl and/or col are not installed
|
|
# Not appropriate for creating Guidebook.txt.
|
|
# GUIDECMD = cat Guidebook.txt
|
|
#
|
|
# Single page. Might need adjustment to .pl value
|
|
# GUIDECMD= $(GUIDE_PREFORMAT) | perl -pe 's/^(.mt)$$/.pl 4720v\n.in 0\n.po 8\n.ll 64m\n$$1/' | nroff -c -Tascii | $(COLCMD)
|
|
#
|
|
GUIDECMD = $(GUIDE_PREFORMAT) | nroff -c -Tascii | $(COLCMD)
|
|
ONEPAGECMD = $(ONEPAGE_PREFORMAT) | nroff -c -Tascii | $(COLCMD) \
|
|
| sed -e '/EOF--EOF/,12345D'
|
|
|
|
# Only generate output for the current configuration:
|
|
NHGREP = $(MAKEDEFS) --grep --input - --output -
|
|
NEEDMAKEDEFS = $(MAKEDEFS)
|
|
# Generate output for all configurations:
|
|
#NHGREP = $(MAKEDEFS) --grep --input - --output - --grep-define ALLDOCS
|
|
#NEEDMAKEDEFS = $(MAKEDEFS)
|
|
# Fallback:
|
|
#NHGREP = cat
|
|
#NEEDMAKEDEFS =
|
|
|
|
GUIDE_PREFORMAT = cat Guidebook.mn | $(NHGREP) | tbl tmac.n -
|
|
# for Guidebook.dat, unpaginated version of Guidebook.txt
|
|
ONEPAGE_PREFORMAT = cat Gbk-1pg-pfx.mn Guidebook.mn Gbk-1pg-sfx.mn \
|
|
| $(NHGREP) | tbl tmac.n -
|
|
|
|
# the basic guidebook
|
|
Guidebook : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS)
|
|
$(GUIDECMD) > Guidebook
|
|
|
|
# Fancier output for those with ditroff, psdit and a PostScript printer.
|
|
Guidebook.ps : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS)
|
|
$(GUIDE_PREFORMAT) | $(PSCMD) > Guidebook.ps
|
|
|
|
# Guidebook.tex is the same as Guidebook.mn but formatted with LaTeX.
|
|
# - The invocation command for LaTeX may vary in different installations.
|
|
# - To print Guidebook.dvi you need to use a suitable dvi-driver.
|
|
# - LaTeX needs to be run twice; second pass uses Guidebook.aux made by first.
|
|
Guidebook.dvi : Guidebook.tex
|
|
latex Guidebook.tex
|
|
latex Guidebook.tex
|
|
|
|
# makedefs has more dependencies than these; this is mainly to cope with the
|
|
# case where it hasn't been built yet since it is usually needed for $(NHGREP)
|
|
# (note: 'make makedefs', not 'make $(MAKEDEFS)')
|
|
$(MAKEDEFS) : ../util/makedefs.c ../include/config.h ../src/mdlib.c \
|
|
../util/mdgrep.h
|
|
( cd ../util ; make makedefs )
|
|
|
|
GAME = nethack
|
|
MANDIR = /usr/man/man6
|
|
MANEXT = 6
|
|
|
|
# manual installation for most BSD-style systems
|
|
GAMEMANCREATE = cat nethack.6 | $(NHGREP) >
|
|
RCVRMANCREATE = cat recover.6 | $(NHGREP) >
|
|
DLBMANCREATE = cat dlb.6 | $(NHGREP) >
|
|
MDMANCREATE = cat makedefs.6 | $(NHGREP) >
|
|
# manual installation for most SYSV-style systems
|
|
# GAMEMANCREATE = cat nethack.6 | $(NHGREP) | nroff -man - >
|
|
# RCVRMANCREATE = cat recover.6 | $(NHGREP) | nroff -man - >
|
|
# DLBMANCREATE = cat dlb.6 | $(NHGREP) | nroff -man - >
|
|
# MDMANCREATE = cat makedefs.6 | $(NHGREP) | nroff -man - >
|
|
|
|
manpages:
|
|
-$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT)
|
|
-$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
|
|
-$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
|
|
-$(MDMANCREATE) $(MANDIR)/makedefs.$(MANEXT)
|
|
|
|
# manual creation for distribution
|
|
DISTRIB = Guidebook.txt nethack.txt recover.txt \
|
|
dlb.txt makedefs.txt
|
|
|
|
distrib: $(DISTRIB)
|
|
@echo "Plain text documentation is up to date."
|
|
|
|
Guidebook.txt : Guidebook.mn tmac.n tmac.nh $(NEEDMAKEDEFS)
|
|
$(GUIDECMD) > Guidebook.txt
|
|
Guidebook.dat : Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn Guidebook.mn tmac.n tmac.nh \
|
|
$(NEEDMAKEDEFS)
|
|
$(ONEPAGECMD) > Guidebook.dat
|
|
|
|
MAN2TXT = $(NHGREP) | nroff -man - | $(COLCMD)
|
|
nethack.txt : nethack.6
|
|
cat nethack.6 | $(MAN2TXT) > nethack.txt
|
|
recover.txt : recover.6
|
|
cat recover.6 | $(MAN2TXT) > recover.txt
|
|
dlb.txt : dlb.6
|
|
cat dlb.6 | $(MAN2TXT) > dlb.txt
|
|
makedefs.txt : makedefs.6
|
|
cat makedefs.6 | $(MAN2TXT) > makedefs.txt
|
|
|
|
clean:
|
|
-rm -f Guidebook.aux Guidebook.log
|
|
|
|
spotless: clean
|
|
-rm -f Guidebook Guidebook.dat Guidebook.ps Guidebook.dvi
|
|
|
|
maintainer-clean: spotless
|
|
-rm -f $(DISTRIB)
|
|
# -rm -f Makefile
|