Add a very simple "doc release" infrastructure, roughly analogous to

src/release/Makefile, but just for doc/.  Useful for creating an
ISO image with various languages/renderings of the FDP documents.
This commit is contained in:
Bruce A. Mah 2002-02-16 17:48:23 +00:00
parent 893616b856
commit 7e6f49e0ff
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12205
2 changed files with 147 additions and 0 deletions
release

94
release/Makefile Normal file
View file

@ -0,0 +1,94 @@
# $FreeBSD$
#
# Documentation release building. These are used to create
# distributions of the documentation files only. These recipes are
# intended to mimic src/release/Makefile; the principal difference is
# that much of the complexity brought about by the chroot environment
# is unneeded.
#
DOC_PREFIX?= ${.CURDIR}/..
MKISOFS?= mkisofs
TAR?= /usr/bin/tar
TOUCH?= /usr/bin/touch
#
# Targets:
#
# release Create a clean build of the documentation files,
# obeying the usual specifications such as FORMATS=,
# DOC_LANG=, etc.
#
# rerelease Similar to release, except that existing documentation
# renderings are preserved and installed.
#
# Configuration variables:
#
# BUILDNAME Identification string to be placed in BUILDNAME file
# in the top directory of the release.
#
# DOCROOTDIR Top directory to use for document release building.
# This directory need not exist, and will be created
# if necessary. This variable MUST be defined.
#
# MAKE_ISOS If defined, this will enable creation of an ISO image
# from the document release. Creation of ISO images
# requires a mkisofs binary in the invoking user's path.
#
DATE!= date +%Y%m%d
BUILDNAME?= ${DATE}
#
# Set defaults for FORMATS and DOC_LANG. To preserve POLA, these
# should be reflect the defaults.
#
FORMATS?= html
DOC_LANG?= en_US.ISO8859-1
#
# Miscellaneous but mandatory options for the build get set here.
# The Japanese translation team has a set of manual pages; we turn
# these off (at least for now) because we have not worked their
# install target into our scheme.
#
MISCOPTIONS+= NO_JPMAN=yes
DOCSTAGEDIR= ${DOCROOTDIR}/doc
DOCBUILDFILE= ${DOCROOTDIR}/doc/BUILD.TXT
rerelease release:
.if !defined(DOCROOTDIR)
@${ECHO} "To make a release you must define DOCROOTDIR" && false
.endif
@${ECHO} ">>> make ${.TARGET} started on `LC_ALL=C TZ=GMT date`"
# If we're doing a release (from scratch), clean out DOCROOTDIR
# (this is the equivalent of CHROOTDIR for src/release).
.if make(release)
${RM} -rf ${DOCROOTDIR}
${MKDIR} ${DOCROOTDIR}
${MKDIR} ${DOCROOTDIR}/obj
find ${DOC_PREFIX} -type d -a \! -name CVS | sed -e s,^,${DOCROOTDIR}/obj, | xargs ${MKDIR}
${MKDIR} ${DOCSTAGEDIR}
.endif
# Build documents in the obj area and install them to our staging area.
# We do this so as to avoid interference with any built documents that
# happen to be sitting under ${DOC_PREFIX}, which might be built with
# different options, etc.
cd ${DOC_PREFIX} && env MAKEOBJDIRPREFIX=${DOCROOTDIR}/obj ${MAKE} all install DOCDIR=${DOCSTAGEDIR} ${MISCOPTIONS}
# Copy any files in our texts/ directory to the staging area.
${TAR} --exclude CVS -cf - -C ${.CURDIR}/texts . | \
${TAR} xf - -C ${DOCSTAGEDIR}
# Construct the BUILD.TXT file with the documentation build info.
${RM} -f ${DOCBUILDFILE}
${TOUCH} ${DOCBUILDFILE}
${ECHO} "FreeBSD Documentation ${BUILDNAME}" >> ${DOCBUILDFILE}
${ECHO} "Generated on: `LC_ALL=C TZ=GMT date`" >> ${DOCBUILDFILE}
${ECHO} "Formats: ${FORMATS}" >> ${DOCBUILDFILE}
${ECHO} "Languages: ${DOC_LANG}" >> ${DOCBUILDFILE}
# Make ISO images if desired.
.if defined(MAKE_ISOS)
cd ${DOCROOTDIR} && ${MKISOFS} -r -J -V fbsd_doc -o doc.iso ${DOCSTAGEDIR}
.endif
@${ECHO} ">>> make ${.TARGET} finished on `LC_ALL=C TZ=GMT date`"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

53
release/texts/README Normal file
View file

@ -0,0 +1,53 @@
FreeBSD Documentation Release README -*- text -*-
$FreeBSD$
This is a collection of documents from the FreeBSD Documentation
Project, in a variety of output formats.
Top-level directories with names of the form <lang>.<encoding> hold
versions of documentation in different languages. Generally,
documents are written in American English (en_US.ISO8859-1) and
translated to other languages by translation teams.
Beneath the language directories, documents are classified into books
or articles. Articles are generally 25 pages or less in length, while
books can be any length.
Within the books and articles directories are directories for each
individual document; each can potentially contain multiple renderings
of the document, as described below.
Documents are available in a number of formats. Some subset of these
formats will be available, depending on how this documentation
collection was built.
html A single HTML file per document (article.html or
book.html, as appropriate, plus images).
html-split A collection of smaller, linked HTML files per document
(index.html, plus images and secondary files).
txt Plain text (article.txt or book.txt, as appropriate).
pdf Adobe Portable Document Format, for use with Adobe
Acrobat Reader or Ghostscript (article.pdf or book.pdf,
as appropriate).
ps Postscript (article.ps or book.ps, as appropriate).
pdb Palm Pilot database format, for use with the iSilo
reader (article.pdb or book.pdb, as appropriate, plus
a symbolic link formed by combining the directory name
with a ".pdb" extension). For more information, see:
http://www.iSilo.com/
rtf Microsoft's Rich Text Format (article.rtf or book.rtf,
as appropriate). Page numbers are not
automatically updated when loading this format
into Microsoft Word. Press CTRL+A, CTRL+END, F9, after
loading the document, to update the page numbers.
BUILD.TXT in the top-level directory gives more information about the
particular set of languages and formats contained in this release
build.