doc/en/handbook/Makefile
1998-12-10 20:42:26 +00:00

181 lines
5.1 KiB
Makefile

#
# $Id: Makefile,v 1.6 1998-12-10 20:42:26 nik Exp $
#
# Build the FreeBSD Handbook. Will eventually split in two, a generic .mk
# file which can be used by many Makefiles, and a much smaller Makefile
# which uses the generic.mk file.
#
# Note: Doing all this in a Makefile is a little odd. This is because there
# is typically not a 1:1 mapping between the .sgml files and the .html,
# .rtf, .ps, and other formats. For most of them, all the .sgml files will
# become one file in the chosen output format. For HTML, many .html files
# will be produced, but they won't be named after the corresponding .sgml
# files.
MAINTAINER=nik@FreeBSD.ORG
#
# DOC is the root name of file(s) that will be generated (i.e, for
# foo.rtf, foo.ps, etc, DOC=foo. HTML generation ignores this, it
# is assumed that the stylesheet names this. If not set, DOC defaults
# to the name of the current directory.
#
DOC?= handbook
#
# FORMATS lists the output formats that should be generated. Valid values
# are
#
# ascii html html-chunk tex dvi ps pdf rtf
#
# html-chunk is the file as one large HTML file, rather than broken up
# into smaller files
#
# This setting also affects which files will be removed with 'make clean'.
# If you 'make' with one setting, and 'make clean' with another, don't
# be surprised if it doesn't work.
FORMATS?= html
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS= handbook.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= backups/chapter.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
SRCS+= contrib/chapter.sgml
SRCS+= cutting-edge/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= hw/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= internals/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= kerneldebug/chapter.sgml
SRCS+= kernelopts/chapter.sgml
SRCS+= l10n/chapter.sgml
SRCS+= linuxemu/chapter.sgml
SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml
SRCS+= pgpkeys/chapter.sgml
SRCS+= policies/chapter.sgml
SRCS+= ppp-and-slip/chapter.sgml
SRCS+= printing/chapter.sgml
SRCS+= quotas/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
SRCS+= staff/chapter.sgml
SRCS+= x11/chapter.sgml
SRCS+= ports/chapter.sgml
# Entities
SRCS+= authors.ent
SRCS+= chapters.ent
SRCS+= mailing-lists.ent
JADE= /usr/local/bin/jade
DSLHTML= ../../sgml/freebsd.dsl
DSLPRINT= /usr/local/share/sgml/docbook/dsssl/modular/print/docbook.dsl
FREEBSDCATALOG= ../../sgml/catalog
DOCBOOKCATALOG= /usr/local/share/sgml/docbook/3.0/catalog
JADECATALOG= /usr/local/share/sgml/jade/catalog
DSSSLCATALOG= /usr/local/share/sgml/docbook/dsssl/modular/catalog
JADEFLAGS= ${JADEOPTS} -c ${FREEBSDCATALOG} -c ${DSSSLCATALOG} -c ${DOCBOOKCATALOG} -c ${JADECATALOG}
# ------------------------------------------------------------------------
#
# Look at ${FORMATS} and work out which documents need to be generated.
# It is assumed that the HTML transformation will always create a file
# called index.html, and that for every other transformation the name
# of the generated file is ${DOC}.format.
#
# ${_docs} will be set to a list of all documents that must be made
# up to date.
.for _curformat in ${FORMATS}
_cf=${_curformat}
.if ${_cf} == "html"
_docs+= index.html
CLEANFILES+= *.html HTML.manifest
.elif ${_cf} == "html-chunk"
_docs+= ${DOC}.html
CLEANFILES+= ${DOC}.html
.elif ${_cf} == "ascii"
_docs+= ${DOC}.txt
CLEANFILES+= ${DOC}.html ${DOC}.txt
.elif ${_cf} == "dvi"
_docs+= ${DOC}.dvi
CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex
.elif ${_cf} == "ps"
_docs+= ${DOC}.ps
CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex ${DOC}.ps
.elif ${_cf} == "pdf"
_docs+= ${DOC}.pdf
CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex ${DOC}.pdf
.else
_docs+= ${DOC}.${_curformat}
CLEANFILES+= ${DOC}.${_curformat}
.endif
.endfor
# ------------------------------------------------------------------------
#
# Build some targets
# ------------------------------------------------------------------------
#
# Targets
#
# If no target is specifed then .MAIN is made
.MAIN: all
all: ${_docs}
index.html: ${SRCS}
${JADE} -ihtml ${JADEFLAGS} -d ${DSLHTML} -t sgml ${DOC}.sgml
./conv.pl *.html
tidy -i -m -f /dev/null *.html
${DOC}.html: ${SRCS}
${JADE} -ihtml -V nochunks ${JADEFLAGS} -d ${DSLHTML} -t sgml ${DOC}.sgml > ${DOC}.html
./conv.pl ${DOC}.html
tidy -i -m -f /dev/null ${DOC}.html
${DOC}.txt: ${DOC}.html
lynx -nolist -dump ${DOC}.html > ${DOC}.txt
${DOC}.rtf: ${SRCS}
${JADE} -iprint ${JADEFLAGS} -d ${DSLPRINT} -t rtf ${DOC}.sgml
${DOC}.tex: ${SRCS}
${JADE} -iprint ${JADEFLAGS} -d ${DSLPRINT} -t tex ${DOC}.sgml
${DOC}.dvi: ${DOC}.tex
@echo "==> TeX pass 1/3"
-tex "&jadetex" ${DOC}.tex
@echo "==> TeX pass 2/3"
-tex "&jadetex" ${DOC}.tex
@echo "==> Tex pass 3/3"
-tex "&jadetex" ${DOC}.tex
${DOC}.pdf: ${DOC}.tex
@echo "==> PDFTeX pass 1/3"
-pdftex "&pdfjadetex" ${DOC}.tex
@echo "==> PDFTeX pass 2/3"
-pdftex "&pdfjadetex" ${DOC}.tex
@echo "==> PDFTeX pass 3/3"
-pdftex "&pdfjadetex" ${DOC}.tex
${DOC}.ps: ${DOC}.dvi
dvips -o ${DOC}.ps ${DOC}.dvi
.include <bsd.dep.mk>
.include <bsd.obj.mk>