diff --git a/release/Makefile b/release/Makefile index 2bf93ef39f..8463b1099f 100644 --- a/release/Makefile +++ b/release/Makefile @@ -1,99 +1,130 @@ # $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}/.. HOSTNAME?= /bin/hostname 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, DOC_LANG, and INSTALL_COMPRESSED. # FORMATS?= ps pdf html html-split html-split.tar txt pdb #DOC_LANG?= en_US.ISO8859-1 INSTALL_COMPRESSED?= zip gz # # Miscellaneous 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. # # Turn on RLE encoding and indexing. # MISCOPTIONS+= NO_JPMAN=yes RLE=yes GEN_INDEX=1 +DOCOBJDIR= ${DOCROOTDIR}/obj +DOCBUILDFILE= ${DOCOBJDIR}/build.txt +DOCKEYFILE= ${DOCOBJDIR}/pgpkeyring.txt DOCSTAGEDIR= ${DOCROOTDIR}/doc -DOCBUILDFILE= ${DOCROOTDIR}/doc/BUILD.TXT +DOCFTPSTAGEDIR= ${DOCSTAGEDIR}/ftp +DOCCDROMSTAGEDIR= ${DOCSTAGEDIR}/cdrom -rerelease release: +rerelease release: release.1 ftp.1 cdrom.1 + @${ECHO} ">>> make ${.TARGET} finished on `LC_ALL=C TZ=GMT date`" + +release.1: .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} ${DOCOBJDIR}/obj + find ${DOC_PREFIX} -type d -a \! -name CVS | sed -e s,^,${DOCOBJDIR}/obj, | xargs ${MKDIR} ${MKDIR} ${DOCSTAGEDIR} .endif -# Build documents in the obj area and install them to our staging area. +# Build documents in the obj 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} FORMATS="${FORMATS}" INSTALL_COMPRESSED="${INSTALL_COMPRESSED}" ${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. + cd ${DOC_PREFIX} && \ + env MAKEOBJDIRPREFIX=${DOCOBJDIR} ${MAKE} all FORMATS="${FORMATS}" INSTALL_COMPRESSED="${INSTALL_COMPRESSED}" ${MISCOPTIONS} +# Build PGP key ring + ${RM} -f ${DOCKEYFILE} + cd ${DOC_PREFIX}/en_US.ISO8859-1/books/handbook && env ${MAKE} pgpkeyring > ${DOCKEYFILE} +# 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} "Generated by: ${USER}@`${HOSTNAME}`">> ${DOCBUILDFILE} ${ECHO} "Formats: ${FORMATS}" >> ${DOCBUILDFILE} ${ECHO} "Languages: ${DOC_LANG}" >> ${DOCBUILDFILE} + +# Make FTP staging area +ftp.1: + ${RM} -rf ${DOCFTPSTAGEDIR} + ${MKDIR} ${DOCFTPSTAGEDIR} + cd ${DOC_PREFIX} && \ + env MAKEOBJDIRPREFIX=${DOCOBJDIR} ${MAKE} all install DOCDIR=${DOCFTPSTAGEDIR} FORMATS="${FORMATS}" INSTALL_COMPRESSED="${INSTALL_COMPRESSED}" ${MISCOPTIONS} +# Copy newly generated files to staging area + ${CP} ${DOCBUILDFILE} ${DOCKEYFILE} ${DOCFTPSTAGEDIR} +# Copy any files in our texts/ directory to staging area + ${TAR} --exclude CVS -cf - -C ${.CURDIR}/texts . | \ + ${TAR} xf - -C ${DOCFTPSTAGEDIR} + +# Make CDROM staging area, optionally do ISO images too +cdrom.1: + ${RM} -rf ${DOCCDROMSTAGEDIR} + ${MKDIR} ${DOCCDROMSTAGEDIR} + cd ${DOC_PREFIX} && \ + env MAKEOBJDIRPREFIX=${DOCOBJDIR} ${MAKE} all install DOCDIR=${DOCCDROMSTAGEDIR} FORMATS="${FORMATS}" INSTALL_COMPRESSED="" ${MISCOPTIONS} +# Copy newly generated files to staging area + ${CP} ${DOCBUILDFILE} ${DOCKEYFILE} ${DOCCDROMSTAGEDIR} +# Copy any files in our texts/ directory to the staging area. + ${TAR} --exclude CVS -cf - -C ${.CURDIR}/texts . | \ + ${TAR} xf - -C ${DOCCDROMSTAGEDIR} # Make ISO images if desired. .if defined(MAKE_ISOS) - cd ${DOCROOTDIR} && ${MKISOFS} -r -J -V fbsd_doc -o doc.iso ${DOCSTAGEDIR} + cd ${DOCROOTDIR} && ${MKISOFS} -r -J -V fbsd_doc -o ${DOCSTAGEDIR}/doc.iso ${DOCCDROMSTAGEDIR} .endif - @${ECHO} ">>> make ${.TARGET} finished on `LC_ALL=C TZ=GMT date`" .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/release/texts/README b/release/texts/README index 7d9b15bd92..8e6486e07b 100644 --- a/release/texts/README +++ b/release/texts/README @@ -1,53 +1,58 @@ 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 . 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 +build.txt in the top-level directory gives more information about the particular set of languages and formats contained in this release build. + +pgpkeyring.txt contains the public PGP/GPG keys of FreeBSD committers, +as taken from tne English version of the FreeBSD Handbook. This file +is suitable for import into a keyring. +