105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#!/bin/sh -e
205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# gendocs.sh -- generate a GNU manual in many formats.  This script is
305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   mentioned in maintain.texi.  See the help message below for usage details.
405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
505436638acc7c010349a69c3395f1a57c642dc62Ying Wangscriptversion=2012-10-27.11
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Free Software Foundation, Inc.
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# This program is free software: you can redistribute it and/or modify
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# it under the terms of the GNU General Public License as published by
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# the Free Software Foundation; either version 3 of the License, or
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# (at your option) any later version.
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# This program is distributed in the hope that it will be useful,
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# but WITHOUT ANY WARRANTY; without even the implied warranty of
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# GNU General Public License for more details.
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# You should have received a copy of the GNU General Public License
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# along with this program.  If not, see <http://www.gnu.org/licenses/>.
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Original author: Mohit Agarwal.
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# The latest version of this script, and the companion template, is
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# available from Texinfo CVS:
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# TODO:
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# - image importation was only implemented for HTML generated by
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   makeinfo.  But it should be simple enough to adjust.
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# - images are not imported in the source tarball.  All the needed
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   formats (PDF, PNG, etc.) should be included.
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wangprog=`basename "$0"`
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wangsrcdir=`pwd`
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wangscripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtemplateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${MAKEINFO="makeinfo"}
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${TEXI2DVI="texi2dvi -t @finalout"}
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${DOCBOOK2HTML="docbook2html"}
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${DOCBOOK2PDF="docbook2pdf"}
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${DOCBOOK2TXT="docbook2txt"}
5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${GENDOCS_TEMPLATE_DIR="."}
5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${PERL='perl'}
5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang: ${TEXI2HTML="texi2html"}
5405436638acc7c010349a69c3395f1a57c642dc62Ying Wangunset CDPATH
5505436638acc7c010349a69c3395f1a57c642dc62Ying Wangunset use_texi2html
5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5705436638acc7c010349a69c3395f1a57c642dc62Ying Wangversion="gendocs.sh $scriptversion
5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5905436638acc7c010349a69c3395f1a57c642dc62Ying WangCopyright 2012 Free Software Foundation, Inc.
6005436638acc7c010349a69c3395f1a57c642dc62Ying WangThere is NO warranty.  You may redistribute this software
6105436638acc7c010349a69c3395f1a57c642dc62Ying Wangunder the terms of the GNU General Public License.
6205436638acc7c010349a69c3395f1a57c642dc62Ying WangFor more information about these matters, see the files named COPYING."
6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6405436638acc7c010349a69c3395f1a57c642dc62Ying Wangusage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6605436638acc7c010349a69c3395f1a57c642dc62Ying WangGenerate output in various formats from PACKAGE.texinfo (or .texi or
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang.txi) source.  See the GNU Maintainers document for a more extensive
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wangdiscussion:
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  http://www.gnu.org/prep/maintain_toc.html
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7105436638acc7c010349a69c3395f1a57c642dc62Ying WangOptions:
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  -s SRCFILE  read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  -o OUTDIR   write files into OUTDIR, instead of manual/.
7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  -I DIR      append DIR to the Texinfo search path.
7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --email ADR use ADR as contact in generated web pages.
7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --docbook   convert through DocBook too (xml, txt, html, pdf).
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --info ARG  pass indicated ARG to makeinfo for Info, instead of --no-split.
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --texi2html use texi2html to generate HTML targets.
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --help      display this help and exit successfully.
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  --version   display version information and exit successfully.
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8305436638acc7c010349a69c3395f1a57c642dc62Ying WangSimple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8505436638acc7c010349a69c3395f1a57c642dc62Ying WangTypical sequence:
8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cd PACKAGESOURCE/doc
8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  wget \"$scripturl\"
8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  wget \"$templateurl\"
8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
9105436638acc7c010349a69c3395f1a57c642dc62Ying WangOutput will be in a new subdirectory \"manual\" (by default;
9205436638acc7c010349a69c3395f1a57c642dc62Ying Wanguse -o OUTDIR to override).  Move all the new files into your web CVS
9305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtree, as explained in the Web Pages node of maintain.texi.
9405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
9505436638acc7c010349a69c3395f1a57c642dc62Ying WangPlease do use the --email ADDRESS option to specify your bug-reporting
9605436638acc7c010349a69c3395f1a57c642dc62Ying Wangaddress in the generated HTML pages.
9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
9805436638acc7c010349a69c3395f1a57c642dc62Ying WangMANUAL-TITLE is included as part of the HTML <title> of the overall
9905436638acc7c010349a69c3395f1a57c642dc62Ying Wangmanual/index.html file.  It should include the name of the package being
10005436638acc7c010349a69c3395f1a57c642dc62Ying Wangdocumented.  manual/index.html is created by substitution from the file
10105436638acc7c010349a69c3395f1a57c642dc62Ying Wang$GENDOCS_TEMPLATE_DIR/gendocs_template.  (Feel free to modify the
10205436638acc7c010349a69c3395f1a57c642dc62Ying Wanggeneric template for your own purposes.)
10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
10405436638acc7c010349a69c3395f1a57c642dc62Ying WangIf you have several manuals, you'll need to run this script several
10505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtimes with different MANUAL values, specifying a different output
10605436638acc7c010349a69c3395f1a57c642dc62Ying Wangdirectory with -o each time.  Then write (by hand) an overall index.html
10705436638acc7c010349a69c3395f1a57c642dc62Ying Wangwith links to them all.
10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
10905436638acc7c010349a69c3395f1a57c642dc62Ying WangIf a manual's Texinfo sources are spread across several directories,
11005436638acc7c010349a69c3395f1a57c642dc62Ying Wangfirst copy or symlink all Texinfo sources into a single directory.
11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang(Part of the script's work is to make a tar.gz of the sources.)
11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
11305436638acc7c010349a69c3395f1a57c642dc62Ying WangAs implied above, by default monolithic Info files are generated.
11405436638acc7c010349a69c3395f1a57c642dc62Ying WangIf you want split Info, or other Info options, use --info to override.
11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
11605436638acc7c010349a69c3395f1a57c642dc62Ying WangYou can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
11705436638acc7c010349a69c3395f1a57c642dc62Ying Wangand PERL to control the programs that get executed, and
11805436638acc7c010349a69c3395f1a57c642dc62Ying WangGENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
11905436638acc7c010349a69c3395f1a57c642dc62Ying Wanglooked for.  With --docbook, the environment variables DOCBOOK2HTML,
12005436638acc7c010349a69c3395f1a57c642dc62Ying WangDOCBOOK2PDF, and DOCBOOK2TXT are also respected.
12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
12205436638acc7c010349a69c3395f1a57c642dc62Ying WangBy default, makeinfo and texi2dvi are run in the default (English)
12305436638acc7c010349a69c3395f1a57c642dc62Ying Wanglocale, since that's the language of most Texinfo manuals.  If you
12405436638acc7c010349a69c3395f1a57c642dc62Ying Wanghappen to have a non-English manual and non-English web site, see the
12505436638acc7c010349a69c3395f1a57c642dc62Ying WangSETLANG setting in the source.
12605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
12705436638acc7c010349a69c3395f1a57c642dc62Ying WangEmail bug reports or enhancement requests to bug-texinfo@gnu.org.
12805436638acc7c010349a69c3395f1a57c642dc62Ying Wang"
12905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
13005436638acc7c010349a69c3395f1a57c642dc62Ying WangMANUAL_TITLE=
13105436638acc7c010349a69c3395f1a57c642dc62Ying WangPACKAGE=
13205436638acc7c010349a69c3395f1a57c642dc62Ying WangEMAIL=webmasters@gnu.org  # please override with --email
13305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcommonarg= # Options passed to all the tools (-I dir).
13405436638acc7c010349a69c3395f1a57c642dc62Ying Wangdirs=      # -I's directories.
13505436638acc7c010349a69c3395f1a57c642dc62Ying Wanghtmlarg=
13605436638acc7c010349a69c3395f1a57c642dc62Ying Wanginfoarg=--no-split
13705436638acc7c010349a69c3395f1a57c642dc62Ying Wangoutdir=manual
13805436638acc7c010349a69c3395f1a57c642dc62Ying Wangsrcfile=
13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
14005436638acc7c010349a69c3395f1a57c642dc62Ying Wangwhile test $# -gt 0; do
14105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  case $1 in
14205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --email) shift; EMAIL=$1;;
14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --help) echo "$usage"; exit 0;;
14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --version) echo "$version"; exit 0;;
14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    -s) shift; srcfile=$1;;
14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    -o) shift; outdir=$1;;
14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    -I) shift; commonarg="$commonarg -I '$1'"; dirs="$dirs $1";;
14805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --docbook) docbook=yes;;
14905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --html) shift; htmlarg=$1;;
15005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --info) shift; infoarg=$1;;
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --texi2html) use_texi2html=1;;
15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    -*)
15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      echo "$0: Unknown option \`$1'." >&2
15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      echo "$0: Try \`--help' for more information." >&2
15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      exit 1;;
15605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    *)
15705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if test -z "$PACKAGE"; then
15805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        PACKAGE=$1
15905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      elif test -z "$MANUAL_TITLE"; then
16005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        MANUAL_TITLE=$1
16105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else
16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        echo "$0: extra non-option argument \`$1'." >&2
16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        exit 1
16405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      fi;;
16505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  esac
16605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  shift
16705436638acc7c010349a69c3395f1a57c642dc62Ying Wangdone
16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# For most of the following, the base name is just $PACKAGE
17005436638acc7c010349a69c3395f1a57c642dc62Ying Wangbase=$PACKAGE
17105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
17205436638acc7c010349a69c3395f1a57c642dc62Ying Wangif test -n "$srcfile"; then
17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  # but here, we use the basename of $srcfile
17405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  base=`basename "$srcfile"`
17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  case $base in
17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;;
17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  esac
17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  PACKAGE=$base
17905436638acc7c010349a69c3395f1a57c642dc62Ying Wangelif test -s "$srcdir/$PACKAGE.texinfo"; then
18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  srcfile=$srcdir/$PACKAGE.texinfo
18105436638acc7c010349a69c3395f1a57c642dc62Ying Wangelif test -s "$srcdir/$PACKAGE.texi"; then
18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  srcfile=$srcdir/$PACKAGE.texi
18305436638acc7c010349a69c3395f1a57c642dc62Ying Wangelif test -s "$srcdir/$PACKAGE.txi"; then
18405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  srcfile=$srcdir/$PACKAGE.txi
18505436638acc7c010349a69c3395f1a57c642dc62Ying Wangelse
18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  exit 1
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wangfi
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wangif test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "$0: it is available from $templateurl." >&2
19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  exit 1
19405436638acc7c010349a69c3395f1a57c642dc62Ying Wangfi
19505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Function to return size of $1 in something resembling kilobytes.
19705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcalcsize()
19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  size=`ls -ksl $1 | awk '{print $1}'`
20005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo $size
20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# copy_images OUTDIR HTML-FILE...
20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# -------------------------------
20505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Copy all the images needed by the HTML-FILEs into OUTDIR.  Look
20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# for them in the -I directories.
20705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcopy_images()
20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  local odir
21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  odir=$1
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  shift
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  $PERL -n -e "
21305436638acc7c010349a69c3395f1a57c642dc62Ying WangBEGIN {
21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  \$me = '$prog';
21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  \$odir = '$odir';
21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  @dirs = qw($dirs);
21705436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang" -e '
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/<img src="(.*?)"/g && ++$need{$1};
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
22105436638acc7c010349a69c3395f1a57c642dc62Ying WangEND {
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  #print "$me: @{[keys %need]}\n";  # for debugging, show images found.
22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  FILE: for my $f (keys %need) {
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    for my $d (@dirs) {
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (-f "$d/$f") {
22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        use File::Basename;
22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        my $dest = dirname ("$odir/$f");
22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        #
22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        use File::Path;
23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        -d $dest || mkpath ($dest)
23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          || die "$me: cannot mkdir $dest: $!\n";
23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        #
23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        use File::Copy;
23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        copy ("$d/$f", $dest)
23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          || die "$me: cannot copy $d/$f to $dest: $!\n";
23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        next FILE;
23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    die "$me: $ARGV: cannot find image $f\n";
24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang' -- "$@" || exit 1
24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
24505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase $outdir in
24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /*) abs_outdir=$outdir;;
24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  *)  abs_outdir=$srcdir/$outdir;;
24805436638acc7c010349a69c3395f1a57c642dc62Ying Wangesac
24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25005436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Generating output formats for $srcfile"
25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
25205436638acc7c010349a69c3395f1a57c642dc62Ying Wangcmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
25305436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Generating info file(s)... ($cmd)"
25405436638acc7c010349a69c3395f1a57c642dc62Ying Wangeval "$cmd"
25505436638acc7c010349a69c3395f1a57c642dc62Ying Wangmkdir -p "$outdir/"
25605436638acc7c010349a69c3395f1a57c642dc62Ying Wangtar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
25705436638acc7c010349a69c3395f1a57c642dc62Ying Wanginfo_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# do not mv the info files, there's no point in having them available
25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# separately on the web.
26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcmd="$SETLANG $TEXI2DVI $commonarg \"$srcfile\""
26205436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Generating dvi ... ($cmd)"
26305436638acc7c010349a69c3395f1a57c642dc62Ying Wangeval "$cmd"
26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# compress/finish dvi:
26605436638acc7c010349a69c3395f1a57c642dc62Ying Wanggzip -f -9 $PACKAGE.dvi
26705436638acc7c010349a69c3395f1a57c642dc62Ying Wangdvi_gz_size=`calcsize $PACKAGE.dvi.gz`
26805436638acc7c010349a69c3395f1a57c642dc62Ying Wangmv $PACKAGE.dvi.gz "$outdir/"
26905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
27005436638acc7c010349a69c3395f1a57c642dc62Ying Wangcmd="$SETLANG $TEXI2DVI --pdf $commonarg \"$srcfile\""
27105436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Generating pdf ... ($cmd)"
27205436638acc7c010349a69c3395f1a57c642dc62Ying Wangeval "$cmd"
27305436638acc7c010349a69c3395f1a57c642dc62Ying Wangpdf_size=`calcsize $PACKAGE.pdf`
27405436638acc7c010349a69c3395f1a57c642dc62Ying Wangmv $PACKAGE.pdf "$outdir/"
27505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
27605436638acc7c010349a69c3395f1a57c642dc62Ying Wangopt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
27805436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Generating ASCII... ($cmd)"
27905436638acc7c010349a69c3395f1a57c642dc62Ying Wangeval "$cmd"
28005436638acc7c010349a69c3395f1a57c642dc62Ying Wangascii_size=`calcsize $PACKAGE.txt`
28105436638acc7c010349a69c3395f1a57c642dc62Ying Wanggzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
28205436638acc7c010349a69c3395f1a57c642dc62Ying Wangascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
28305436638acc7c010349a69c3395f1a57c642dc62Ying Wangmv $PACKAGE.txt "$outdir/"
28405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
28505436638acc7c010349a69c3395f1a57c642dc62Ying Wanghtml_split()
28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
28705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="--split=$1 $commonarg $htmlarg --node-files"
28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
28905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating html by $1... ($cmd)"
29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  split_html_dir=$PACKAGE.html
29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  (
29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    cd ${split_html_dir} || exit 1
29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    ln -sf ${PACKAGE}.html index.html
29505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html
29605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  )
29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"`
29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rm -f "$outdir"/html_$1/*.html
29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mkdir -p "$outdir/html_$1/"
30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv ${split_html_dir}/*.html "$outdir/html_$1/"
30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rmdir ${split_html_dir}
30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
30405436638acc7c010349a69c3395f1a57c642dc62Ying Wangif test -z "$use_texi2html"; then
30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating monolithic html... ($cmd)"
30805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rm -rf $PACKAGE.html  # in case a directory is left over
30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_mono_size=`calcsize $PACKAGE.html`
31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
31205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
31305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  copy_images "$outdir/" $PACKAGE.html
31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $PACKAGE.html "$outdir/"
31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
31605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="--html -o $PACKAGE.html $commonarg $htmlarg"
31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
31805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating html by node... ($cmd)"
31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  split_html_dir=$PACKAGE.html
32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  copy_images $split_html_dir/ $split_html_dir/*.html
32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  (
32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    cd $split_html_dir || exit 1
32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    tar -czf "$abs_outdir/$PACKAGE.html_node.tar.gz" -- *
32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  )
32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_node_tgz_size=`calcsize "$outdir/$PACKAGE.html_node.tar.gz"`
32705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rm -rf "$outdir/html_node/"
32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $split_html_dir "$outdir/html_node/"
32905436638acc7c010349a69c3395f1a57c642dc62Ying Wangelse
33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="--output $PACKAGE.html $commonarg $htmlarg"
33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
33205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating monolithic html... ($cmd)"
33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rm -rf $PACKAGE.html  # in case a directory is left over
33405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
33505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_mono_size=`calcsize $PACKAGE.html`
33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
33705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
33805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $PACKAGE.html "$outdir/"
33905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
34005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_split node
34105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_split chapter
34205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_split section
34305436638acc7c010349a69c3395f1a57c642dc62Ying Wangfi
34405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
34505436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho Making .tar.gz for sources...
34605436638acc7c010349a69c3395f1a57c642dc62Ying Wangd=`dirname $srcfile`
34705436638acc7c010349a69c3395f1a57c642dc62Ying Wang(
34805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cd "$d"
34905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null` || true
35005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  tar cvzfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang)
35205436638acc7c010349a69c3395f1a57c642dc62Ying Wangtexi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
35405436638acc7c010349a69c3395f1a57c642dc62Ying Wangif test -n "$docbook"; then
35505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="-o - --docbook $commonarg"
35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating docbook XML... ($cmd)"
35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
35905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  docbook_xml_size=`calcsize $PACKAGE-db.xml`
36005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $PACKAGE-db.xml "$outdir/"
36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
36405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  split_html_db_dir=html_node_db
36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  opt="$commonarg -o $split_html_db_dir"
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating docbook HTML... ($cmd)"
36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
36905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  (
37005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    cd ${split_html_db_dir} || exit 1
37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
37205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  )
37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"`
37405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rm -f "$outdir"/html_node_db/*.html
37505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mkdir -p "$outdir/html_node_db"
37605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
37705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  rmdir ${split_html_db_dir}
37805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
37905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
38005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating docbook ASCII... ($cmd)"
38105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
38205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  docbook_ascii_size=`calcsize $PACKAGE-db.txt`
38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $PACKAGE-db.txt "$outdir/"
38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
38505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
38605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  echo "Generating docbook PDF... ($cmd)"
38705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  eval "$cmd"
38805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
38905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  mv $PACKAGE-db.pdf "$outdir/"
39005436638acc7c010349a69c3395f1a57c642dc62Ying Wangfi
39105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
39205436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Writing index file..."
39305436638acc7c010349a69c3395f1a57c642dc62Ying Wangif test -z "$use_texi2html"; then
39405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
39505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
39605436638acc7c010349a69c3395f1a57c642dc62Ying Wangelse
39705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
39805436638acc7c010349a69c3395f1a57c642dc62Ying Wangfi
39905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
40005436638acc7c010349a69c3395f1a57c642dc62Ying Wangcurdate=`$SETLANG date '+%B %d, %Y'`
40105436638acc7c010349a69c3395f1a57c642dc62Ying Wangsed \
40205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
40305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%EMAIL%%!$EMAIL!g" \
40405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%PACKAGE%%!$PACKAGE!g" \
40505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DATE%%!$curdate!g" \
40605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
40705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
40805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
40905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
41005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
41105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
41205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
41305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%PDF_SIZE%%!$pdf_size!g" \
41405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
41505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
41605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
41705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
41805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
41905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
42005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
42105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
42205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s,%%SCRIPTURL%%,$scripturl,g" \
42305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "s!%%SCRIPTNAME%%!$prog!g" \
42405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   -e "$CONDS" \
42505436638acc7c010349a69c3395f1a57c642dc62Ying Wang$GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html"
42605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
42705436638acc7c010349a69c3395f1a57c642dc62Ying Wangecho "Done, see $outdir/ subdirectory for new files."
42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
42905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Local variables:
43005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# eval: (add-hook 'write-file-hooks 'time-stamp)
43105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# time-stamp-start: "scriptversion="
43205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# time-stamp-format: "%:y-%02m-%02d.%02H"
43305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# time-stamp-end: "$"
43405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# End:
435