doc/Gbk-1pg-sfx.mn is already using one half of a sound technique: set the page length to a very large value, guaranteed to overshoot the vertical space required by the document's text. The other half is to, at the end of the document, set the page length to the current vertical position, so that it ends immediately. https://www.gnu.org/software/groff/manual/groff.html.node/Manipulating-Spacing.html
136 lines
4.6 KiB
Makefile
136 lines
4.6 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 $(NROFF_FLAGS) | $(COLCMD)
|
|
ONEPAGECMD = $(ONEPAGE_PREFORMAT) | nroff -c -Tascii $(NROFF_FLAGS) | $(COLCMD)
|
|
|
|
# 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 =
|
|
|
|
GUIDEBOOK_MN_SRC = Guidebook.mn
|
|
GUIDEBOOK_MN = $(GUIDEBOOK_MN_SRC)
|
|
GUIDEBOOK_TEX_SRC = Guidebook.tex
|
|
GUIDEBOOK_TEX = $(GUIDEBOOK_TEX_SRC)
|
|
|
|
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.dat : Gbk-1pg-pfx.mn Gbk-1pg-sfx.mn $(GUIDEBOOK_MN) tmac.n tmac.nh \
|
|
$(NEEDMAKEDEFS)
|
|
$(ONEPAGECMD) > $@
|
|
|
|
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 $(DOC_EXTRAS)
|
|
|
|
spotless: clean
|
|
-rm -f Guidebook Guidebook.dat Guidebook.ps \
|
|
Guidebook.dvi $(DOC_SPOTLESS_EXTRAS)
|
|
|
|
maintainer-clean: spotless
|
|
-rm -f $(DISTRIB)
|
|
# -rm -f Makefile
|