diff options
author | Glen Barber <gjb@FreeBSD.org> | 2020-12-30 16:40:07 +0000 |
---|---|---|
committer | Glen Barber <gjb@FreeBSD.org> | 2020-12-30 16:40:07 +0000 |
commit | cb1d034ab1e773758d20238be196aeeb1be68b18 (patch) | |
tree | 44947a1b2bafbd5b3e22a22d4604a8e9cd0135b1 /share/tools/dobuild.sh | |
parent | 192a5729e55ebddd239731df215b973d39581a29 (diff) | |
download | doc-cb1d034ab1e773758d20238be196aeeb1be68b18.tar.gz doc-cb1d034ab1e773758d20238be196aeeb1be68b18.zip |
docbuild: add scripts used to build the PDF versions of the Handbook
Sponsored by: Rubicon Communications, LLC (netgate.com)
Diffstat (limited to 'share/tools/dobuild.sh')
-rwxr-xr-x | share/tools/dobuild.sh | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/share/tools/dobuild.sh b/share/tools/dobuild.sh new file mode 100755 index 0000000000..a2ae5c092d --- /dev/null +++ b/share/tools/dobuild.sh @@ -0,0 +1,117 @@ +#!/bin/sh +# Copyright (c) 2001 Wolfram Schneider <wosch@FreeBSD.org> +# Copyright (c) 2001 Dima Dorfman <dd@FreeBSD.org> +# Copyright (c) 2004 Simon L. Nielsen <simon@FreeBSD.org> +# +# Build the FreeBSD docs from the CVS^WSVN repository. +# +# +# Major variables: +# +# PATH - The search path as interpreted by the shell. +# CVSROOT - Path to the FreeBSD CVS repository (obsolete) +# DOCSVN - Url to the FreeBSD doc SVN repository. +# BUILDDIR - Where the checked out copies of the files are stored. +# DESTDIR - Where the rendered copies should wind up. +# BUILDARGS - Arguments to pass to make(1) when {build,install}ing. +# INSTARGS - Arguments to pass to make(1) when installing. +# WEBMAILTO - Address to send mail to if the build fails. +# +# subtrees - List of directores in $BUILDDIR which are from SCM. +# +# Variables which are in uppercase are derived from the environment +# unless they don't exist, in which case a value suitable for +# www.FreeBSD.org is used. Variables in lowercase can't be safely +# changed without editing other parts of the script; thus, their value +# in the environment is ignored. +# +# Exit codes: +# +# 0 - success +# 1 - unknown failure +# 2 - failure in CVS^SVN operations +# 3 - failure in make operations +# +# $FreeBSD: www/tools/webupdate,v 1.10 2003/11/18 11:00:54 kuriyama Exp $ +# + +# +# WARNING! This script depend on dobuild_wrap.sh setting the +# configuration variables in the enviroment. +# +if [ -z "${DOBUILDWRAP}" ]; then + echo "Error: This script should only be called from dobuild_wrap.sh!" + exit 1 +fi + +# Only install some compression types +INSTALL_COMPRESSED=${COMPTYPES}; export INSTALL_COMPRESSED + +# Abort on all errors +set -e + +umask 002 +cd $BUILDDIR || exit 1 + +# Remove the old copies. +if [ -z "${NOCLEAN}" ]; then + echo "===> Removing old stuff" + rm -Rf doc out 2>/dev/null || true + chflags -R noschg doc out 2>/dev/null || true + rm -Rf doc out 2>/dev/null + + echo "===> Check out the new doc" + #cvs -qR checkout -P doc || exit 2 + svn checkout ${DOCSVN} doc || exit 2 +fi + +cd $BUILDDIR/doc || exit 1 +mkdir -p $DOCDIR +mkdir -p $DOCDIR/packages +rm -f ${BUILDDIR}/packages # TMP +ln -s ${DOCDIR}/packages ${BUILDDIR}/doc/packages + +if [ -d ${PATCHDIR} -a -n "$(find ${PATCHDIR} -name \*.patch)" ]; then + echo "===> Patching bugs in doc tree" + for p in `echo ${PATCHDIR}/*.patch`; do + patch < ${p} + done +fi + +echo "===> Building doc" +time make ${BUILDARGS} all || exit 3 + +echo "===> Installing doc package to temp roots" +time make ${INSTARGS} install || exit 3 + +#echo "===> Building doc packages" +#time make ${BUILDARGS} package || exit 3 + +# XXX TODO, check for correct string when tex run out of resources +#echo "===> Testing for broken tex output" +#grep 'hash' $LOGFILE > /dev/null && \ +# (echo "Error: Possible TeX out of resources."; false) + +#OKFILENAME + +# build a string to use with find(1) to identify +# uncompressed files to be copied +UNCOMP_FIND_STR="" +for fmt in ${UNCOMPRESSED_FORMATS}; do + UNCOMP_FIND_STR="${UNCOMP_FIND_STR}( -name article.${fmt} -or -name book.${fmt} ) -or " +done +# add outer parens, remove the final "-or " +UNCOMP_FIND_STR="( ${UNCOMP_FIND_STR%-or } )" + +if [ -n "${UNCOMP_FIND_STR}" ]; then + echo "copying uncompressed formats: ${UNCOMPRESSED_FORMATS}" + cd ${BUILDDIR}/doc + find -X ??_* ${UNCOMP_FIND_STR} -print0 \ + | xargs -0 -I % install -v -C -o docbuild -g docbuild -m 444 % ${DOCDIR}/% +fi + +rm -rf ${OUTDIR}/* +mkdir -p ${OUTDIR} +cp -Rp ${DOCDIR}/* ${OUTDIR} + +exit 0 |