diff options
Diffstat (limited to '')
-rw-r--r-- | doc/doc.am | 711 |
1 files changed, 711 insertions, 0 deletions
diff --git a/doc/doc.am b/doc/doc.am new file mode 100644 index 0000000..cddc519 --- /dev/null +++ b/doc/doc.am @@ -0,0 +1,711 @@ +# Copyright (C) 2002-2022 Free Software Foundation, Inc. +# Original Makefile.sub written by Werner Lemberg <wl@gnu.org>. +# Adapted to Automake by Bertrand Garrigues +# (bertrand.garrigues@laposte.net). +# +# This file is part of groff. +# +# groff is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# groff is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +doc_srcdir = $(abs_top_srcdir)/doc +doc_builddir = $(abs_top_builddir)/doc + +# Some document sources are parameterized in configuration options like +# the groff version number and the command prefix. Use this in target +# rules to prepare formattable versions of them from .in files. +DOC_SED = $(SED) \ + -e "s;[@]VERSION[@];$(VERSION);" \ + -e "s;[@]g[@];$(g);g;" + +# Use this in target rules to run the build tree's groff. +# +# It includes flags to locate its tmac and device/font description +# directories and to produce verbose diagnostics in the event of syntax +# or formatting problems. +DOC_GROFF = \ + GROFF_COMMAND_PREFIX= \ + GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \ + $(GROFFBIN) -M $(doc_srcdir) $(MFLAG) $(FFLAG) -ww -b + +# This image file is used by several documents in the groff source tree. +DOC_GNU_EPS = doc/gnu.eps + +# Other doc, installed in $(docdir) +# Files located in the source tree +DOCFILES_INST = \ + doc/me-revisions \ + doc/ms.ms \ + doc/pic.ms +DOCFILES_NOINST = \ + doc/meintro.me.in \ + doc/meintro_fr.me.in \ + doc/meref.me.in +# Files that undergo a transformation prior to groff processing +GENERATEDDOCFILES = \ + doc/meintro.me \ + doc/meintro_fr.me \ + doc/meref.me +# Files generated in the build tree +if USE_GROHTML +PROCESSEDDOCFILES_HTML = \ + doc/pic.html +endif +if USE_GROPDF +PROCESSEDDOCFILES_PDF = \ + doc/automake.pdf \ + doc/groff-man-pages.pdf +endif +PROCESSEDDOCFILES_PS = \ + doc/meref.ps \ + doc/meintro.ps \ + doc/meintro_fr.ps \ + doc/ms.ps \ + doc/pic.ps +PROCESSEDDOCFILES_TXT = \ + doc/groff-man-pages.utf8.txt +PROCESSEDDOCFILES = \ + $(PROCESSEDDOCFILES_HTML) \ + $(PROCESSEDDOCFILES_PS) \ + $(PROCESSEDDOCFILES_PDF) \ + $(PROCESSEDDOCFILES_TXT) + +# Declare minimal dependencies for documents by output driver. +PROCESSEDFILES_DEPS_HTML = pre-grohtml groff troff post-grohtml \ + font/devhtml/stamp font/devps/stamp +PROCESSEDFILES_DEPS_PS = groff troff grops font/devps/stamp +PROCESSEDFILES_DEPS_PDF = groff troff gropdf font/devpdf/stamp +PROCESSEDFILES_DEPS_TXT = groff troff grotty font/devutf8/stamp + +if USE_GROHTML +$(PROCESSEDDOCFILES_HTML): $(PROCESSEDFILES_DEPS_HTML) +endif +$(PROCESSEDDOCFILES_PS): $(PROCESSEDFILES_DEPS_PS) +if USE_GROPDF +$(PROCESSEDDOCFILES_PDF): $(PROCESSEDFILES_DEPS_PDF) +endif +$(PROCESSEDDOCFILES_TXT): $(PROCESSEDFILES_DEPS_TXT) + +otherdocdir = $(docdir) +dist_otherdoc_DATA = $(DOCFILES_INST) +nodist_otherdoc_DATA = $(PROCESSEDDOCFILES) $(GENERATEDDOCFILES) +MOSTLYCLEANFILES += $(GENERATEDDOCFILES) $(PROCESSEDDOCFILES) +EXTRA_DIST += $(DOCFILES_NOINST) + +# pdf doc, written in mom and therefore using contrib/mom/mom.am +# definitions +EXTRA_DIST += doc/automake.mom +if USE_GROPDF +docpdfdocdir = $(pdfdocdir) +nodist_docpdfdoc_DATA = doc/automake.pdf +endif +doc/automake.pdf: doc/automake.mom pdfmom contrib/mom/om.tmac + +# GNU PIC html documentation, installed in $(htmldocdir) +# Other pic*.html files are installed by the local rule +if USE_GROHTML +htmlpicdir = $(htmldocdir) +htmlpic_DATA = $(PROCESSEDDOCFILES_HTML) +HTMLDOCFILESALL = pic*.html +HTMLDOCIMAGEFILES = pic* +endif + +# Examples files, installed in $(exampledir) + +# source tree files +EXAMPLEFILES = \ + doc/webpage.ms \ + doc/groff.css \ + doc/grnexmpl.g \ + doc/grnexmpl.me + +# Generated in the build tree +if USE_GROHTML +PROCESSEDEXAMPLEFILES_HTML = doc/webpage.html +else +PROCESSEDEXAMPLEFILES_HTML = +endif +PROCESSEDEXAMPLEFILES_PS = \ + doc/webpage.ps \ + doc/grnexmpl.ps +PROCESSEDEXAMPLEFILES = \ + $(PROCESSEDEXAMPLEFILES_HTML) \ + $(PROCESSEDEXAMPLEFILES_PS) + +$(PROCESSEDEXAMPLEFILES_HTML): $(PROCESSEDFILES_DEPS_HTML) +$(PROCESSEDEXAMPLEFILES_PS): $(PROCESSEDFILES_DEPS_PS) + +docexamplesdir = $(exampledir) +dist_docexamples_DATA = $(EXAMPLEFILES) +nodist_docexamples_DATA = $(PROCESSEDEXAMPLEFILES) +MOSTLYCLEANFILES += $(PROCESSEDEXAMPLEFILES) + +if USE_GROHTML +# webpage.html is generated; webpage*.html files are installed by the +# local rule. +HTMLEXAMPLEFILESALL = webpage*.html +HTMLEXAMPLEIMAGEFILES = webpage* +htmlexamplesdir = $(exampledir) +endif + +# Locate image subdirectory for HTML documents relative to an +# installation directory such as `htmldocdir` or `exampledir`. Do _not_ +# use for locating files within the source or build trees. +imagedir = img + +EXTRA_DIST += \ + doc/txi-en.tex + +# Introduce variables to house the groff man pages. We break the list +# of page sources into multiple chunks because we have to load Swedish +# localization before formatting groff_mmse.7 and then reload English +# localization afterward. This also serves as a test of groff locale +# switching; being lazy and shunting groff_mmse.7 off to the end of the +# document would not achieve this goal (and not loading Swedish +# localization at all to format it would be gauche). +GROFF_MAN_PAGES1 = \ + src/utils/addftinfo/addftinfo.1 \ + src/utils/afmtodit/afmtodit.1 \ + contrib/chem/chem.1 \ + src/preproc/eqn/eqn.1 \ + contrib/eqn2graph/eqn2graph.1 \ + contrib/gdiffmk/gdiffmk.1 \ + contrib/glilypond/glilypond.1 \ + contrib/gperl/gperl.1 \ + contrib/gpinyin/gpinyin.1 \ + contrib/grap2graph/grap2graph.1 \ + src/preproc/grn/grn.1 \ + src/devices/grodvi/grodvi.1 \ + src/roff/groff/groff.1 \ + src/utils/grog/grog.1 \ + src/devices/grohtml/grohtml.1 \ + src/devices/grolbp/grolbp.1 \ + src/devices/grolj4/grolj4.1 \ + src/devices/gropdf/gropdf.1 \ + src/devices/grops/grops.1 \ + src/devices/grotty/grotty.1 \ + $(GXDITVIEW_MAN1) \ + src/utils/hpftodit/hpftodit.1 \ + src/utils/indxbib/indxbib.1 \ + src/utils/lkbib/lkbib.1 \ + src/utils/lookbib/lookbib.1 \ + contrib/mm/mmroff.1 \ + src/preproc/eqn/neqn.1 \ + src/roff/nroff/nroff.1 \ + src/devices/gropdf/pdfmom.1 \ + contrib/pdfmark/pdfroff.1 \ + src/utils/pfbtops/pfbtops.1 \ + src/preproc/pic/pic.1 \ + contrib/pic2graph/pic2graph.1 \ + src/preproc/preconv/preconv.1 \ + src/preproc/refer/refer.1 \ + src/preproc/soelim/soelim.1 \ + src/preproc/tbl/tbl.1 \ + src/utils/tfmtodit/tfmtodit.1 \ + src/roff/troff/troff.1 \ + $(XTOTROFF_MAN1) \ + man/groff_font.5 \ + man/groff_out.5 \ + man/groff_tmac.5 \ + man/groff.7 \ + man/groff_char.7 \ + man/groff_diff.7 \ + contrib/hdtbl/groff_hdtbl.7 \ + tmac/groff_man.7 \ + tmac/groff_man_style.7 \ + tmac/groff_mdoc.7 \ + tmac/groff_me.7 \ + contrib/mm/groff_mm.7 + +GROFF_MAN_PAGES2 = \ + contrib/mm/groff_mmse.7 + +GROFF_MAN_PAGES3 = \ + contrib/mom/groff_mom.7 \ + tmac/groff_ms.7 \ + contrib/rfc1345/groff_rfc1345.7 \ + tmac/groff_trace.7 \ + tmac/groff_www.7 \ + man/roff.7 + +GROFF_MAN_PAGES_ALL = $(GROFF_MAN_PAGES1) $(GROFF_MAN_PAGES2) \ + $(GROFF_MAN_PAGES3) + +# This is a convenience target for (re-)generating all the man pages. +man-all: $(GROFF_MAN_PAGES_ALL) + +# ...and for cleaning them. +man-clean: + $(RM) $(GROFF_MAN_PAGES_ALL) + +# Many pages use tbl, a few use eqn, and soelim(1) uses pic. We also +# need groff's FreeEuro font so we can embed it. +# +# We embed the fonts (-P-e) to (1) honor the current PDF standard, (2) +# ensure consistent rendering of the document, and (3) exercise this +# feature of gropdf. +doc/groff-man-pages.pdf: $(GROFF_MAN_PAGES_ALL) eqn pic tbl \ + $(TMAC_PACKAGE_MAN) $(TMAC_PACKAGE_MDOC) font/devps/freeeuro.pfa + $(GROFF_V)$(DOC_GROFF) -pet -mandoc -dHF=HB -rC1 \ + -rCHECKSTYLE=3 -Tpdf -P-e \ + $(GROFF_MAN_PAGES1) \ + $(tmac_srcdir)/sv.tmac $(GROFF_MAN_PAGES2) \ + $(tmac_srcdir)/en.tmac $(GROFF_MAN_PAGES3) > $@ + +doc/groff-man-pages.utf8.txt: $(GROFF_MAN_PAGES_ALL) eqn pic tbl \ + $(TMAC_PACKAGE_MAN) $(TMAC_PACKAGE_MDOC) + $(GROFF_V)$(DOC_GROFF) -pet -Tutf8 -mandoc \ + -rCHECKSTYLE=3 $(GROFF_MAN_PAGES1) \ + $(tmac_srcdir)/sv.tmac $(GROFF_MAN_PAGES2) \ + $(tmac_srcdir)/en.tmac $(GROFF_MAN_PAGES3) > $@ + +doc/grnexmpl.ps: $(doc_srcdir)/grnexmpl.me $(doc_srcdir)/grnexmpl.g \ + grn eqn + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -Tps -ge -me $(doc_srcdir)/grnexmpl.me >$@ + +# Generating *.me from *.me.in is, surprisingly, a challenge. +# 1. A pattern rule ("%.me: %.me.in") is not portable to NetBSD or +# OpenBSD make. +# 2. A single-suffix rule works in an isolated Makefile, but _only_ +# with the .SUFFIXES special target, not with the +# (Automake-specific) SUFFIXES macro. +# .SUFFIXES: .in +# .in: +# $(DOC_SED) $< >$@ +# (One can validly complain that this approach is too general.) +# 3. GNU Automake insists that we use the SUFFIXES macro and not the +# special target. +# error: use variable 'SUFFIXES', not target '.SUFFIXES' +# 4. What about a target rule? We'd have to explicitly write the first +# dependency name in the rule commands because NetBSD make (and +# reportedly OpenBSD) refuses to honor the $< variable in target +# rules. +# +# So what is left? A double-suffix rule--but you have to use it in a +# special way that is explicitly not countenanced by POSIX. +# +# "The application shall ensure that the target portion is a valid +# target name (see Target Rules) of the form .s2 or .s1.s2 (where .s1 +# and .s2 are suffixes that have been given as prerequisites of the +# .SUFFIXES special target and s1 and s2 do not contain any <slash> or +# <period> characters.) If there is only one <period> in the target, +# it is a single-suffix inference rule. Targets with two periods are +# double-suffix inference rules. Inference rules can have only one +# target before the <colon>." +# (POSIX Issue 8, make(1), "Inference Rules") +# +# A double-suffix rule won't work in an obvious way because its +# semantics are that the suffix is replaced, not removed. You have to +# add both suffixes to the .SUFFIXES special target, in order with the +# dependency first. +# .SUFFIXES: .me.in .me +# .me.in.me: +# $(DOC_SED) $< >$@ +# Thanks to Automake, we must say +# SUFFIXES += .me.in .me +# for reason 3 above. The GNU Automake manual does not explicitly state +# that it preserves the ordering of the suffixes, but for now it does. +# +# It appears to be dumb luck that this works; the rigamarole by itself +# justifies to me the worth of GNU Make's pattern rules (which require +# neither '.SUFFIXES' nor 'SUFFIXES') and establishing semantics for $< +# in target rules. But I won't hold my breath waiting on other make(1) +# implementors to agree. -- GBR +.PRECIOUS: $(GENERATEDDOCFILES) +SUFFIXES += .me.in .me +.me.in.me: + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_SED) $< >$@ + +.me.ps: + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -Tps -me $< >$@ + +# Use '-K utf8', not '-k', in case 'configure' didn't find uchardet. +# The French translation uses tbl; its English counterpart does not. +doc/meintro_fr.ps: doc/meintro_fr.me preconv + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -K utf8 -t -Tps -me -mfr $< >$@ + +doc/ms.ps: $(doc_srcdir)/ms.ms eqn tbl + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -et -Tps -ms $(doc_srcdir)/ms.ms >$@ + +doc/pic.ps: $(doc_srcdir)/pic.ms eqn pic tbl + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -pet -Tps -ms $(doc_srcdir)/pic.ms >$@ + +doc/webpage.ps: $(DOC_GNU_EPS) tmac/www.tmac tbl +doc/webpage.ps: $(doc_srcdir)/webpage.ms + $(GROFF_V)$(MKDIR_P) `dirname $@` \ + && $(DOC_GROFF) -I $(doc_srcdir) -I $(doc_builddir) -t -Tps \ + -ms -mwww $(doc_srcdir)/webpage.ms >$@ + +# We have no "generic" ms documents. +#.ms.ps: +# $(GROFF_V)$(MKDIR_P) `dirname $@` \ +# && $(DOC_GROFF) -Tps -ms $< >$@ + +doc/pic.html: eqn pic tbl +doc/pic.html: tmac/www.tmac +doc/pic.html: $(doc_srcdir)/pic.ms + $(GROFF_V)$(MKDIR_P) $(doc_builddir) \ + && cd $(doc_builddir) \ + && $(DOC_GROFF) -pet -P-Ipic -P-Dimg -P-jpic -Thtml -ms \ + $(doc_srcdir)/pic.ms > pic.html + +doc/webpage.html: tbl +doc/webpage.html: tmac/www.tmac +doc/webpage.html: $(DOC_GNU_EPS) +doc/webpage.html: $(doc_srcdir)/groff.css +doc/webpage.html: $(doc_srcdir)/webpage.ms + $(GROFF_V)$(MKDIR_P) $(doc_builddir) \ + && cd $(doc_builddir) \ + && $(DOC_GROFF) -t -I $(doc_srcdir) -P-jwebpage -P-nrb \ + -P-Iwebpage -P-Dimg -Thtml -ms $(doc_srcdir)/webpage.ms \ + > webpage.html + +# We remove groff.css only from an out-of-source build tree. +mostlyclean-local: mostlyclean_doc +mostlyclean_doc: +if USE_GROHTML + if test -d $(doc_builddir); then \ + cd $(doc_builddir) \ + && for f in $(HTMLDOCFILESALL); do \ + $(RM) $$f; \ + done; \ + fi + if test -d $(doc_builddir)/img; then \ + cd $(doc_builddir)/img \ + && for f in $(HTMLDOCIMAGEFILES); do \ + $(RM) $$f; \ + done; \ + rmdir $(doc_builddir)/img || :; \ + fi +endif + if test $(top_builddir) != $(top_srcdir); then \ + $(RM) $(top_builddir)/doc/groff.css; \ + fi +if USE_GROHTML + if test -d $(doc_builddir); then \ + cd $(doc_builddir) \ + && for f in $(HTMLEXAMPLEFILESALL); do \ + $(RM) $$f; \ + done; \ + fi + if test -d $(doc_builddir)/img; then \ + cd $(doc_builddir)/img \ + && for f in $(HTMLEXAMPLEIMAGEFILES); do \ + $(RM) $$f; \ + done; \ + rmdir $(doc_builddir)/img || :; \ + fi +endif + +install-data-hook: install_doc_htmldoc +install_doc_htmldoc: +if USE_GROHTML + cd $(doc_builddir) \ + && for f in `ls $(HTMLDOCFILESALL)`; do \ + $(RM) $(DESTDIR)$(htmldocdir)/$$f; \ + $(INSTALL_DATA) $$f $(DESTDIR)$(htmldocdir)/$$f; \ + done + -test -d $(DESTDIR)$(htmldocdir)/$(imagedir) \ + || $(mkinstalldirs) $(DESTDIR)$(htmldocdir)/$(imagedir) + $(RM) $(DESTDIR)$(htmldocdir)/$(imagedir)/$(HTMLDOCIMAGEFILES) + $(INSTALL_DATA) $(doc_builddir)/img/$(HTMLDOCIMAGEFILES) \ + $(DESTDIR)$(htmldocdir)/$(imagedir) +endif + +install-data-hook: install_doc_gnu_eps install_doc_examples + +install_doc_gnu_eps: $(DOC_GNU_EPS) + for d in $(doc_builddir) $(doc_srcdir); do \ + if test -f "$$d/gnu.eps"; then \ + $(RM) $(DESTDIR)$(exampledir)/gnu.eps; \ + $(INSTALL_DATA) \ + $$d/gnu.eps $(DESTDIR)$(exampledir)/gnu.eps; \ + break; \ + fi; \ + done + +install_doc_examples: $(DOC_GNU_EPS) +if USE_GROHTML + cd $(doc_builddir) \ + && for f in `ls $(HTMLEXAMPLEFILESALL)`; do \ + $(RM) $(DESTDIR)$(exampledir)/$$f; \ + $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \ + done + -test -d $(DESTDIR)$(exampledir)/$(imagedir) \ + || $(mkinstalldirs) $(DESTDIR)$(exampledir)/$(imagedir) + $(RM) \ + $(DESTDIR)$(exampledir)/$(imagedir)/$(HTMLEXAMPLEIMAGEFILES) + $(INSTALL_DATA) $(doc_builddir)/img/$(HTMLEXAMPLEIMAGEFILES) \ + $(DESTDIR)$(exampledir)/$(imagedir) +endif + +uninstall-hook: \ + uninstall_doc_examples uninstall_doc_htmldoc +uninstall_doc_examples: + $(RM) $(DESTDIR)$(exampledir)/gnu.eps +if USE_GROHTML + -test -d $(DESTDIR)$(docexamplesdir) \ + && cd $(DESTDIR)$(docexamplesdir) \ + && for f in $(HTMLEXAMPLEFILESALL); do \ + $(RM) $$f; \ + done + -test -d $(DESTDIR)$(docexamplesdir)/$(imagedir) \ + && cd $(DESTDIR)$(docexamplesdir)/$(imagedir) \ + && for f in $(HTMLEXAMPLEIMAGEFILES); do \ + $(RM) $$f; \ + done + -rmdir $(DESTDIR)$(docexamplesdir)/$(imagedir) + -rmdir $(DESTDIR)$(docexamplesdir) +endif + +uninstall_doc_htmldoc: +if USE_GROHTML + -test -d $(DESTDIR)$(htmldocdir) \ + && cd $(DESTDIR)$(htmldocdir) \ + && for f in $(HTMLDOCFILESALL); do \ + $(RM) $$f; \ + done + -test -d $(DESTDIR)$(htmldocdir)/$(imagedir) \ + && cd $(DESTDIR)$(htmldocdir)/$(imagedir) \ + && for f in $(HTMLDOCIMAGEFILES); do \ + $(RM) $$f; \ + done + -rmdir $(DESTDIR)$(htmldocdir)/$(imagedir) + -rmdir $(DESTDIR)$(htmldocdir) +endif + +# groff Texinfo manual +# +# We produce all possible formats by by default and ship them in the +# distribution archive ('make dist') so that people don't need to have +# 'makeinfo' or TeX available. +# +# The GNU info, plain text, and HTML formats require only 'makeinfo'. +# +# DVI and PDF require a working TeX installation. We can't use +# Automake's facilities for PDF production because its 'dist' target +# attempts to generate 'groff.pdf' by invoking 'texi2dvi' without the +# '-E' option (use 'makeinfo' to expand macros), which is needed to +# build this file. 'texi2dvi' honors the 'MAKEINFO' environment +# variable. +# +# Were the foregoing not true, we would simply say this: +#info_TEXINFOS = doc/groff.texi +#doc_groff_TEXINFOS = doc/fdl.texi + +if USE_TEX +GROFF_DVI = doc/groff.dvi +GROFF_PDF = doc/groff.pdf +endif + +all: doc/groff.info doc/groff.txt doc/groff.html $(GROFF_DVI) \ + $(GROFF_PDF) + +# Distribute the manual in source form as well. +EXTRA_DIST += doc/groff.texi doc/fdl.texi + +EXTRA_DIST += doc/groff.info +MAINTAINERCLEANFILES += doc/groff.info +doc/groff.info: $(doc_srcdir)/groff.texi + $(AM_V_at)$(MKDIR_P) $(doc_builddir) + $(AM_V_GEN)LANG=C \ + LC_ALL=C \ + $(MAKEINFO) -o doc/groff.info --enable-encoding \ + -I $(doc_srcdir) $(doc_srcdir)/groff.texi + +# Distribute the Info files. +dist-hook: dist-info-bits +dist-info-bits: + chmod u+w $(distdir)/doc + for d in $(doc_builddir) $(doc_srcdir); do \ + if [ -f "$$d"/groff.info ]; then \ + cp -f "$$d"/groff.info-* $(distdir)/doc; \ + break; \ + fi; \ + done + +EXTRA_DIST += doc/groff.txt +MAINTAINERCLEANFILES += doc/groff.txt +.texi.txt: + $(AM_V_at)$(MKDIR_P) $(doc_builddir) + $(AM_V_GEN)LANG=C \ + LC_ALL=C \ + $(MAKEINFO) --enable-encoding -I $(doc_srcdir) --plaintext \ + -o $@ $< + +# Generate HTML, both split into several files, and as a single file. +# 'html' and its installation counterpart 'install-html' are standard +# Automake targets. +EXTRA_DIST += doc/groff.html doc/groff.html.node +MAINTAINERCLEANFILES += doc/groff.html doc/groff.html.node +.texi.html: + $(AM_V_at)$(MKDIR_P) $(doc_builddir)/ + $(AM_V_GEN)LANG=C \ + LC_ALL=C \ + $(MAKEINFO) --html -I $(doc_srcdir) \ + -o doc/`basename $@`.node $< + $(AM_V_at)LANG=C \ + LC_ALL=C \ + $(MAKEINFO) --html -I $(doc_srcdir) --no-split \ + -o $@ $< + +EXTRA_DIST += doc/groff.dvi doc/groff.pdf + +# Define pattern rules to make our Texinfo manual in DVI and PDF +# formats. 'pdf' and 'dvi' and their installation counterparts +# 'install-pdf' and 'install-dvi' are standard Automake targets. +.texi.dvi: +if HAVE_TEXI2DVI +if USE_TEX + $(AM_V_at)$(MKDIR_P) $(doc_builddir) + $(AM_V_GEN)LANG=C \ + LC_ALL=C \ + TEXINPUTS="$(top_srcdir)/build-aux:$(TEXINPUTS)" \ + MAKEINFO='$(MAKEINFO) -I $(doc_srcdir)' \ + FORCE_SOURCE_DATE=1 \ + $(PROG_TEXI2DVI) -e --batch --build-dir=doc/`basename $@`.t2d \ + -o $@ $< +else + @echo "program 'tex' is missing; cannot generate $@" >&2; \ + exit 1 +endif # USE_TEX +else + @echo "program 'texi2dvi' is missing or too old;" \ + "cannot generate $@" >&2; \ + exit 1 +endif # HAVE_TEXI2DVI + +.texi.pdf: +if HAVE_TEXI2DVI +if USE_TEX + $(AM_V_at)$(MKDIR_P) $(doc_builddir) + $(AM_V_GEN)LANG=C \ + LC_ALL=C \ + TEXINPUTS="$(top_srcdir)/build-aux:$(TEXINPUTS)" \ + MAKEINFO='$(MAKEINFO) -I $(doc_srcdir)' \ + $(PROG_TEXI2DVI) -e --batch --pdf \ + --build-dir=doc/`basename $@`.t2p -o $@ $< +else + @echo "program 'tex' is missing; cannot generate $@" >&2; \ + exit 1 +endif # USE_TEX +else + @echo "program 'texi2dvi' is missing or too old;" \ + "cannot generate $@" >&2; \ + exit 1 +endif # HAVE_TEXI2DVI + +install-doc: install-dvi install-html install-pdf + +maintainer-clean-local: + $(RM) $(doc_builddir)/groff.info* + $(RM) $(doc_builddir)/groff.pdf + $(RM) $(doc_builddir)/groff.dvi + $(RM) $(doc_builddir)/groff.txt + $(RM) -r $(doc_builddir)/groff.html.* + +install-data-local: install-txt +install-txt: + -test -d $(DESTDIR)$(docdir) \ + || $(mkinstalldirs) $(DESTDIR)$(docdir) + cp $(top_srcdir)/doc/groff.txt $(DESTDIR)$(docdir) + +install-data-local: install_infodoc +install_infodoc: doc/groff.info + -test -d $(DESTDIR)$(infodir) \ + || $(mkinstalldirs) $(DESTDIR)$(infodir) + $(RM) $(DESTDIR)/doc/groff.info* + for d in $(doc_builddir) $(doc_srcdir); do \ + if [ -f "$$d"/groff.info ]; then \ + cp "$$d"/groff.info* $(DESTDIR)$(infodir); \ + $(INSTALL_INFO) --info-file="$$d"/groff.info \ + --info-dir=$(DESTDIR)$(infodir); \ + break; \ + fi; \ + done +install-pdf-local: doc/groff.pdf + -test -d $(DESTDIR)$(pdfdocdir) \ + || $(mkinstalldirs) $(DESTDIR)$(pdfdocdir) + cp $(top_srcdir)/doc/groff.pdf $(DESTDIR)$(pdfdocdir) +install-html-local: doc/groff.html + -test -d $(DESTDIR)$(htmldocdir)/groff.html.mono \ + || $(mkinstalldirs) $(DESTDIR)$(htmldocdir)/groff.html.mono + cp -r $(top_srcdir)/doc/groff.html \ + $(DESTDIR)$(htmldocdir)/groff.html.mono + cp -r $(top_srcdir)/doc/groff.html.node \ + $(DESTDIR)$(htmldocdir) + +uninstall-local: uninstall_infodoc uninstall-pdf uninstall-html \ + uninstall-txt +uninstall_doc: uninstall-local +uninstall-doc: uninstall-local +uninstall_infodoc: + -$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)$(infodir) \ + $(DESTDIR)$(infodir)/groff.info + -for f in `ls $(DESTDIR)$(infodir)/groff.info*`; do \ + $(RM) $$f; \ + done +uninstall-pdf: + $(RM) $(DESTDIR)$(pdfdocdir)/groff.pdf + -rmdir $(DESTDIR)$(pdfdocdir) +uninstall-html: + $(RM) $(DESTDIR)$(htmldocdir)/groff.html.mono/* + $(RM) $(DESTDIR)$(htmldocdir)/groff.html.node/* +uninstall-txt: + $(RM) $(DESTDIR)$(docdir)/groff.txt + +# An image of a gnu in enscapsulated PostScript is generated during the +# build process if necessary. Our configure script assumes pnmdepth is +# available if xpmtoppm is (see macro "GROFF_PROG_XPMTOPPM"). +EXTRA_DIST += $(DOC_GNU_EPS) doc/gnu.xpm +$(DOC_GNU_EPS): doc/gnu.xpm + $(AM_V_GEN)if test "$(XPMTOPPM)" != found; then \ + echo "program 'xpmtoppm' is missing; can't generate $@" >&2; \ + exit 1; \ + fi; \ + if test "$(pnmtops)" != found; then \ + echo "program 'pnmtops' is missing; can't generate $@" >&2; \ + exit 1; \ + fi; \ + if ! echo "$(pnmtops_nosetpage)" | grep -q nosetpage; then \ + echo "program 'pnmtops' can't handle -nosetpage option;" \ + "can't generate $@" >&2; \ + exit 1; \ + fi; \ + xpmtoppm $(top_srcdir)/doc/gnu.xpm | pnmdepth 15 \ + | $(pnmtops_nosetpage) -noturn -rle >$@ + +# Provide a copy of the image in the distribution archive to accommodate +# systems without a tool to generate it from an X pixmap. +dist-hook: dist-gnueps +dist-gnueps: + chmod u+w $(distdir)/doc + for d in $(doc_builddir) $(doc_srcdir); do \ + if [ -f "$$d"/$(DOC_GNU_EPS) ]; then \ + cp -f "$$d"/$(DOC_GNU_EPS) $(distdir)/doc; \ + break; \ + fi; \ + done + + +# Local Variables: +# fill-column: 72 +# mode: makefile-automake +# End: +# vim: set autoindent filetype=automake textwidth=72: |