Blame build-aux/gendocs.sh

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