Blame build-aux/gendocs.sh

Packit 33f14e
#!/bin/sh -e
Packit 33f14e
# gendocs.sh -- generate a GNU manual in many formats.  This script is
Packit 33f14e
#   mentioned in maintain.texi.  See the help message below for usage details.
Packit 33f14e
Packit 33f14e
scriptversion=2016-12-31.18
Packit 33f14e
Packit 33f14e
# Copyright 2003-2017 Free Software Foundation, Inc.
Packit 33f14e
#
Packit 33f14e
# This program is free software: you can redistribute it and/or modify
Packit 33f14e
# it under the terms of the GNU General Public License as published by
Packit 33f14e
# the Free Software Foundation; either version 3 of the License, or
Packit 33f14e
# (at your option) any later version.
Packit 33f14e
#
Packit 33f14e
# This program is distributed in the hope that it will be useful,
Packit 33f14e
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 33f14e
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 33f14e
# GNU General Public License for more details.
Packit 33f14e
#
Packit 33f14e
# You should have received a copy of the GNU General Public License
Packit 33f14e
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit 33f14e
#
Packit 33f14e
# Original author: Mohit Agarwal.
Packit 33f14e
# Send bug reports and any other correspondence to bug-gnulib@gnu.org.
Packit 33f14e
#
Packit 33f14e
# The latest version of this script, and the companion template, is
Packit 33f14e
# available from the Gnulib repository:
Packit 33f14e
#
Packit 33f14e
# http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh
Packit 33f14e
# http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template
Packit 33f14e
Packit 33f14e
# TODO:
Packit 33f14e
# - image importing was only implemented for HTML generated by
Packit 33f14e
#   makeinfo.  But it should be simple enough to adjust.
Packit 33f14e
# - images are not imported in the source tarball.  All the needed
Packit 33f14e
#   formats (PDF, PNG, etc.) should be included.
Packit 33f14e
Packit 33f14e
prog=`basename "$0"`
Packit 33f14e
srcdir=`pwd`
Packit 33f14e
Packit 33f14e
scripturl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
Packit 33f14e
templateurl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
Packit 33f14e
Packit 33f14e
: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
Packit 33f14e
: ${MAKEINFO="makeinfo"}
Packit 33f14e
: ${TEXI2DVI="texi2dvi"}
Packit 33f14e
: ${DOCBOOK2HTML="docbook2html"}
Packit 33f14e
: ${DOCBOOK2PDF="docbook2pdf"}
Packit 33f14e
: ${DOCBOOK2TXT="docbook2txt"}
Packit 33f14e
: ${GENDOCS_TEMPLATE_DIR="."}
Packit 33f14e
: ${PERL='perl'}
Packit 33f14e
: ${TEXI2HTML="texi2html"}
Packit 33f14e
unset CDPATH
Packit 33f14e
unset use_texi2html
Packit 33f14e
Packit 33f14e
MANUAL_TITLE=
Packit 33f14e
PACKAGE=
Packit 33f14e
EMAIL=webmasters@gnu.org  # please override with --email
Packit 33f14e
commonarg= # passed to all makeinfo/texi2html invcations.
Packit 33f14e
dirargs=   # passed to all tools (-I dir).
Packit 33f14e
dirs=      # -I directories.
Packit 33f14e
htmlarg="--css-ref=/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
Packit 33f14e
infoarg=--no-split
Packit 33f14e
generate_ascii=true
Packit 33f14e
generate_html=true
Packit 33f14e
generate_info=true
Packit 33f14e
generate_tex=true
Packit 33f14e
outdir=manual
Packit 33f14e
source_extra=
Packit 33f14e
split=node
Packit 33f14e
srcfile=
Packit 33f14e
texarg="-t @finalout"
Packit 33f14e
Packit 33f14e
version="gendocs.sh $scriptversion
Packit 33f14e
Packit 33f14e
Copyright 2017 Free Software Foundation, Inc.
Packit 33f14e
There is NO warranty.  You may redistribute this software
Packit 33f14e
under the terms of the GNU General Public License.
Packit 33f14e
For more information about these matters, see the files named COPYING."
Packit 33f14e
Packit 33f14e
usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
Packit 33f14e
Packit 33f14e
Generate output in various formats from PACKAGE.texinfo (or .texi or
Packit 33f14e
.txi) source.  See the GNU Maintainers document for a more extensive
Packit 33f14e
discussion:
Packit 33f14e
  http://www.gnu.org/prep/maintain_toc.html
Packit 33f14e
Packit 33f14e
Options:
Packit 33f14e
  --email ADR use ADR as contact in generated web pages; always give this.
Packit 33f14e
Packit 33f14e
  -s SRCFILE   read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
Packit 33f14e
  -o OUTDIR    write files into OUTDIR, instead of manual/.
Packit 33f14e
  -I DIR       append DIR to the Texinfo search path.
Packit 33f14e
  --common ARG pass ARG in all invocations.
Packit 33f14e
  --html ARG   pass ARG to makeinfo or texi2html for HTML targets,
Packit 33f14e
                 instead of '$htmlarg'.
Packit 33f14e
  --info ARG   pass ARG to makeinfo for Info, instead of --no-split.
Packit 33f14e
  --no-ascii   skip generating the plain text output.
Packit 33f14e
  --no-html    skip generating the html output.
Packit 33f14e
  --no-info    skip generating the info output.
Packit 33f14e
  --no-tex     skip generating the dvi and pdf output.
Packit 33f14e
  --source ARG include ARG in tar archive of sources.
Packit 33f14e
  --split HOW  make split HTML by node, section, chapter; default node.
Packit 33f14e
  --tex ARG    pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout.
Packit 33f14e
Packit 33f14e
  --texi2html  use texi2html to make HTML target, with all split versions.
Packit 33f14e
  --docbook    convert through DocBook too (xml, txt, html, pdf).
Packit 33f14e
Packit 33f14e
  --help       display this help and exit successfully.
Packit 33f14e
  --version    display version information and exit successfully.
Packit 33f14e
Packit 33f14e
Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
Packit 33f14e
Packit 33f14e
Typical sequence:
Packit 33f14e
  cd PACKAGESOURCE/doc
Packit 33f14e
  wget \"$scripturl\"
Packit 33f14e
  wget \"$templateurl\"
Packit 33f14e
  $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
Packit 33f14e
Packit 33f14e
Output will be in a new subdirectory \"manual\" (by default;
Packit 33f14e
use -o OUTDIR to override).  Move all the new files into your web CVS
Packit 33f14e
tree, as explained in the Web Pages node of maintain.texi.
Packit 33f14e
Packit 33f14e
Please use the --email ADDRESS option so your own bug-reporting
Packit 33f14e
address will be used in the generated HTML pages.
Packit 33f14e
Packit 33f14e
MANUAL-TITLE is included as part of the HTML <title> of the overall
Packit 33f14e
manual/index.html file.  It should include the name of the package being
Packit 33f14e
documented.  manual/index.html is created by substitution from the file
Packit 33f14e
$GENDOCS_TEMPLATE_DIR/gendocs_template.  (Feel free to modify the
Packit 33f14e
generic template for your own purposes.)
Packit 33f14e
Packit 33f14e
If you have several manuals, you'll need to run this script several
Packit 33f14e
times with different MANUAL values, specifying a different output
Packit 33f14e
directory with -o each time.  Then write (by hand) an overall index.html
Packit 33f14e
with links to them all.
Packit 33f14e
Packit 33f14e
If a manual's Texinfo sources are spread across several directories,
Packit 33f14e
first copy or symlink all Texinfo sources into a single directory.
Packit 33f14e
(Part of the script's work is to make a tar.gz of the sources.)
Packit 33f14e
Packit 33f14e
As implied above, by default monolithic Info files are generated.
Packit 33f14e
If you want split Info, or other Info options, use --info to override.
Packit 33f14e
Packit 33f14e
You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
Packit 33f14e
and PERL to control the programs that get executed, and
Packit 33f14e
GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
Packit 33f14e
looked for.  With --docbook, the environment variables DOCBOOK2HTML,
Packit 33f14e
DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
Packit 33f14e
Packit 33f14e
By default, makeinfo and texi2dvi are run in the default (English)
Packit 33f14e
locale, since that's the language of most Texinfo manuals.  If you
Packit 33f14e
happen to have a non-English manual and non-English web site, see the
Packit 33f14e
SETLANG setting in the source.
Packit 33f14e
Packit 33f14e
Email bug reports or enhancement requests to bug-gnulib@gnu.org.
Packit 33f14e
"
Packit 33f14e
Packit 33f14e
while test $# -gt 0; do
Packit 33f14e
  case $1 in
Packit 33f14e
    -s)          shift; srcfile=$1;;
Packit 33f14e
    -o)          shift; outdir=$1;;
Packit 33f14e
    -I)          shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
Packit 33f14e
    --common)    shift; commonarg=$1;;
Packit 33f14e
    --docbook)   docbook=yes;;
Packit 33f14e
    --email)     shift; EMAIL=$1;;
Packit 33f14e
    --html)      shift; htmlarg=$1;;
Packit 33f14e
    --info)      shift; infoarg=$1;;
Packit 33f14e
    --no-ascii)  generate_ascii=false;;
Packit 33f14e
    --no-html)   generate_ascii=false;;
Packit 33f14e
    --no-info)   generate_info=false;;
Packit 33f14e
    --no-tex)    generate_tex=false;;
Packit 33f14e
    --source)    shift; source_extra=$1;;
Packit 33f14e
    --split)     shift; split=$1;;
Packit 33f14e
    --tex)       shift; texarg=$1;;
Packit 33f14e
    --texi2html) use_texi2html=1;;
Packit 33f14e
Packit 33f14e
    --help)      echo "$usage"; exit 0;;
Packit 33f14e
    --version)   echo "$version"; exit 0;;
Packit 33f14e
    -*)
Packit 33f14e
      echo "$0: Unknown option \`$1'." >&2
Packit 33f14e
      echo "$0: Try \`--help' for more information." >&2
Packit 33f14e
      exit 1;;
Packit 33f14e
    *)
Packit 33f14e
      if test -z "$PACKAGE"; then
Packit 33f14e
        PACKAGE=$1
Packit 33f14e
      elif test -z "$MANUAL_TITLE"; then
Packit 33f14e
        MANUAL_TITLE=$1
Packit 33f14e
      else
Packit 33f14e
        echo "$0: extra non-option argument \`$1'." >&2
Packit 33f14e
        exit 1
Packit 33f14e
      fi;;
Packit 33f14e
  esac
Packit 33f14e
  shift
Packit 33f14e
done
Packit 33f14e
Packit 33f14e
# makeinfo uses the dirargs, but texi2dvi doesn't.
Packit 33f14e
commonarg=" $dirargs $commonarg"
Packit 33f14e
Packit 33f14e
# For most of the following, the base name is just $PACKAGE
Packit 33f14e
base=$PACKAGE
Packit 33f14e
Packit 33f14e
if test -n "$srcfile"; then
Packit 33f14e
  # but here, we use the basename of $srcfile
Packit 33f14e
  base=`basename "$srcfile"`
Packit 33f14e
  case $base in
Packit 33f14e
    *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;;
Packit 33f14e
  esac
Packit 33f14e
  PACKAGE=$base
Packit 33f14e
elif test -s "$srcdir/$PACKAGE.texinfo"; then
Packit 33f14e
  srcfile=$srcdir/$PACKAGE.texinfo
Packit 33f14e
elif test -s "$srcdir/$PACKAGE.texi"; then
Packit 33f14e
  srcfile=$srcdir/$PACKAGE.texi
Packit 33f14e
elif test -s "$srcdir/$PACKAGE.txi"; then
Packit 33f14e
  srcfile=$srcdir/$PACKAGE.txi
Packit 33f14e
else
Packit 33f14e
  echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
Packit 33f14e
  exit 1
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
Packit 33f14e
  echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
Packit 33f14e
  echo "$0: it is available from $templateurl." >&2
Packit 33f14e
  exit 1
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
# Function to return size of $1 in something resembling kilobytes.
Packit 33f14e
calcsize()
Packit 33f14e
{
Packit 33f14e
  size=`ls -ksl $1 | awk '{print $1}'`
Packit 33f14e
  echo $size
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
# copy_images OUTDIR HTML-FILE...
Packit 33f14e
# -------------------------------
Packit 33f14e
# Copy all the images needed by the HTML-FILEs into OUTDIR.
Packit 33f14e
# Look for them in . and the -I directories; this is simpler than what
Packit 33f14e
# makeinfo supports with -I, but hopefully it will suffice.
Packit 33f14e
copy_images()
Packit 33f14e
{
Packit 33f14e
  local odir
Packit 33f14e
  odir=$1
Packit 33f14e
  shift
Packit 33f14e
  $PERL -n -e "
Packit 33f14e
BEGIN {
Packit 33f14e
  \$me = '$prog';
Packit 33f14e
  \$odir = '$odir';
Packit 33f14e
  @dirs = qw(. $dirs);
Packit 33f14e
}
Packit 33f14e
" -e '
Packit 33f14e
/
Packit 33f14e
Packit 33f14e
END {
Packit 33f14e
  #print "$me: @{[keys %need]}\n";  # for debugging, show images found.
Packit 33f14e
  FILE: for my $f (keys %need) {
Packit 33f14e
    for my $d (@dirs) {
Packit 33f14e
      if (-f "$d/$f") {
Packit 33f14e
        use File::Basename;
Packit 33f14e
        my $dest = dirname ("$odir/$f");
Packit 33f14e
        #
Packit 33f14e
        use File::Path;
Packit 33f14e
        -d $dest || mkpath ($dest)
Packit 33f14e
          || die "$me: cannot mkdir $dest: $!\n";
Packit 33f14e
        #
Packit 33f14e
        use File::Copy;
Packit 33f14e
        copy ("$d/$f", $dest)
Packit 33f14e
          || die "$me: cannot copy $d/$f to $dest: $!\n";
Packit 33f14e
        next FILE;
Packit 33f14e
      }
Packit 33f14e
    }
Packit 33f14e
    die "$me: $ARGV: cannot find image $f\n";
Packit 33f14e
  }
Packit 33f14e
}
Packit 33f14e
' -- "$@" || exit 1
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
case $outdir in
Packit 33f14e
  /*) abs_outdir=$outdir;;
Packit 33f14e
  *)  abs_outdir=$srcdir/$outdir;;
Packit 33f14e
esac
Packit 33f14e
Packit 33f14e
echo "Making output for $srcfile"
Packit 33f14e
echo " in `pwd`"
Packit 33f14e
mkdir -p "$outdir/"
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
if $generate_info; then
Packit 33f14e
  cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
Packit 33f14e
  echo "Generating info... ($cmd)"
Packit 33f14e
  rm -f $PACKAGE.info* # get rid of any strays
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
Packit 33f14e
  ls -l "$outdir/$PACKAGE.info.tar.gz"
Packit 33f14e
  info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
Packit 33f14e
  # do not mv the info files, there's no point in having them available
Packit 33f14e
  # separately on the web.
Packit 33f14e
fi  # end info
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
if $generate_tex; then
Packit 33f14e
  cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\""
Packit 33f14e
  printf "\nGenerating dvi... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  # compress/finish dvi:
Packit 33f14e
  gzip -f -9 $PACKAGE.dvi
Packit 33f14e
  dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
Packit 33f14e
  mv $PACKAGE.dvi.gz "$outdir/"
Packit 33f14e
  ls -l "$outdir/$PACKAGE.dvi.gz"
Packit 33f14e
Packit 33f14e
  cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\""
Packit 33f14e
  printf "\nGenerating pdf... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  pdf_size=`calcsize $PACKAGE.pdf`
Packit 33f14e
  mv $PACKAGE.pdf "$outdir/"
Packit 33f14e
  ls -l "$outdir/$PACKAGE.pdf"
Packit 33f14e
fi # end tex (dvi + pdf)
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
if $generate_ascii; then
Packit 33f14e
  opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
Packit 33f14e
  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
Packit 33f14e
  printf "\nGenerating ascii... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  ascii_size=`calcsize $PACKAGE.txt`
Packit 33f14e
  gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
Packit 33f14e
  ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
Packit 33f14e
  mv $PACKAGE.txt "$outdir/"
Packit 33f14e
  ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
Packit 33f14e
if $generate_html; then
Packit 33f14e
# Split HTML at level $1.  Used for texi2html.
Packit 33f14e
html_split()
Packit 33f14e
{
Packit 33f14e
  opt="--split=$1 --node-files $commonarg $htmlarg"
Packit 33f14e
  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
Packit 33f14e
  printf "\nGenerating html by $1... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  split_html_dir=$PACKAGE.html
Packit 33f14e
  (
Packit 33f14e
    cd ${split_html_dir} || exit 1
Packit 33f14e
    ln -sf ${PACKAGE}.html index.html
Packit 33f14e
    tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html
Packit 33f14e
  )
Packit 33f14e
  eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"`
Packit 33f14e
  rm -f "$outdir"/html_$1/*.html
Packit 33f14e
  mkdir -p "$outdir/html_$1/"
Packit 33f14e
  mv ${split_html_dir}/*.html "$outdir/html_$1/"
Packit 33f14e
  rmdir ${split_html_dir}
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
if test -z "$use_texi2html"; then
Packit 33f14e
  opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
Packit 33f14e
  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
Packit 33f14e
  printf "\nGenerating monolithic html... ($cmd)\n"
Packit 33f14e
  rm -rf $PACKAGE.html  # in case a directory is left over
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  html_mono_size=`calcsize $PACKAGE.html`
Packit 33f14e
  gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
Packit 33f14e
  html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
Packit 33f14e
  copy_images "$outdir/" $PACKAGE.html
Packit 33f14e
  mv $PACKAGE.html "$outdir/"
Packit 33f14e
  ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
Packit 33f14e
Packit 33f14e
  # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option,
Packit 33f14e
  # it just always split by node.  So if we're splitting by node anyway,
Packit 33f14e
  # leave it out.
Packit 33f14e
  if test "x$split" = xnode; then
Packit 33f14e
    split_arg=
Packit 33f14e
  else
Packit 33f14e
    split_arg=--split=$split
Packit 33f14e
  fi
Packit 33f14e
  #
Packit 33f14e
  opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg"
Packit 33f14e
  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
Packit 33f14e
  printf "\nGenerating html by $split... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  split_html_dir=$PACKAGE.html
Packit 33f14e
  copy_images $split_html_dir/ $split_html_dir/*.html
Packit 33f14e
  (
Packit 33f14e
    cd $split_html_dir || exit 1
Packit 33f14e
    tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
Packit 33f14e
  )
Packit 33f14e
  eval \
Packit 33f14e
    html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
Packit 33f14e
  rm -rf "$outdir/html_$split/"
Packit 33f14e
  mv $split_html_dir "$outdir/html_$split/"
Packit 33f14e
  du -s "$outdir/html_$split/"
Packit 33f14e
  ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
Packit 33f14e
Packit 33f14e
else # use texi2html:
Packit 33f14e
  opt="--output $PACKAGE.html $commonarg $htmlarg"
Packit 33f14e
  cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
Packit 33f14e
  printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
Packit 33f14e
  rm -rf $PACKAGE.html  # in case a directory is left over
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  html_mono_size=`calcsize $PACKAGE.html`
Packit 33f14e
  gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
Packit 33f14e
  html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
Packit 33f14e
  mv $PACKAGE.html "$outdir/"
Packit 33f14e
Packit 33f14e
  html_split node
Packit 33f14e
  html_split chapter
Packit 33f14e
  html_split section
Packit 33f14e
fi
Packit 33f14e
fi # end html
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
printf "\nMaking .tar.gz for sources...\n"
Packit 33f14e
d=`dirname $srcfile`
Packit 33f14e
(
Packit 33f14e
  cd "$d"
Packit 33f14e
  srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true
Packit 33f14e
  tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
Packit 33f14e
  ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
Packit 33f14e
)
Packit 33f14e
texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
# Do everything again through docbook.
Packit 33f14e
if test -n "$docbook"; then
Packit 33f14e
  opt="-o - --docbook $commonarg"
Packit 33f14e
  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
Packit 33f14e
  printf "\nGenerating docbook XML... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  docbook_xml_size=`calcsize $PACKAGE-db.xml`
Packit 33f14e
  gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
Packit 33f14e
  docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
Packit 33f14e
  mv $PACKAGE-db.xml "$outdir/"
Packit 33f14e
Packit 33f14e
  split_html_db_dir=html_node_db
Packit 33f14e
  opt="$commonarg -o $split_html_db_dir"
Packit 33f14e
  cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
Packit 33f14e
  printf "\nGenerating docbook HTML... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  (
Packit 33f14e
    cd ${split_html_db_dir} || exit 1
Packit 33f14e
    tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
Packit 33f14e
  )
Packit 33f14e
  html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"`
Packit 33f14e
  rm -f "$outdir"/html_node_db/*.html
Packit 33f14e
  mkdir -p "$outdir/html_node_db"
Packit 33f14e
  mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
Packit 33f14e
  rmdir ${split_html_db_dir}
Packit 33f14e
Packit 33f14e
  cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
Packit 33f14e
  printf "\nGenerating docbook ASCII... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  docbook_ascii_size=`calcsize $PACKAGE-db.txt`
Packit 33f14e
  mv $PACKAGE-db.txt "$outdir/"
Packit 33f14e
Packit 33f14e
  cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
Packit 33f14e
  printf "\nGenerating docbook PDF... ($cmd)\n"
Packit 33f14e
  eval "$cmd"
Packit 33f14e
  docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
Packit 33f14e
  mv $PACKAGE-db.pdf "$outdir/"
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
# 
Packit 33f14e
printf "\nMaking index.html for $PACKAGE...\n"
Packit 33f14e
if test -z "$use_texi2html"; then
Packit 33f14e
  CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
Packit 33f14e
         /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
Packit 33f14e
else
Packit 33f14e
  # should take account of --split here.
Packit 33f14e
  CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
Packit 33f14e
fi
Packit 33f14e
Packit 33f14e
curdate=`$SETLANG date '+%B %d, %Y'`
Packit 33f14e
sed \
Packit 33f14e
   -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
Packit 33f14e
   -e "s!%%EMAIL%%!$EMAIL!g" \
Packit 33f14e
   -e "s!%%PACKAGE%%!$PACKAGE!g" \
Packit 33f14e
   -e "s!%%DATE%%!$curdate!g" \
Packit 33f14e
   -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
Packit 33f14e
   -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
Packit 33f14e
   -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
Packit 33f14e
   -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
Packit 33f14e
   -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
Packit 33f14e
   -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
Packit 33f14e
   -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
Packit 33f14e
   -e "s!%%PDF_SIZE%%!$pdf_size!g" \
Packit 33f14e
   -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
Packit 33f14e
   -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
Packit 33f14e
   -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
Packit 33f14e
   -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
Packit 33f14e
   -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
Packit 33f14e
   -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
Packit 33f14e
   -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
Packit 33f14e
   -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
Packit 33f14e
   -e "s,%%SCRIPTURL%%,$scripturl,g" \
Packit 33f14e
   -e "s!%%SCRIPTNAME%%!$prog!g" \
Packit 33f14e
   -e "$CONDS" \
Packit 33f14e
$GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html"
Packit 33f14e
Packit 33f14e
echo "Done, see $outdir/ subdirectory for new files."
Packit 33f14e
Packit 33f14e
# Local variables:
Packit 33f14e
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit 33f14e
# time-stamp-start: "scriptversion="
Packit 33f14e
# time-stamp-format: "%:y-%02m-%02d.%02H"
Packit 33f14e
# time-stamp-end: "$"
Packit 33f14e
# End: