1fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#! /bin/sh
20ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Common wrapper for a few potentially missing GNU programs.
3fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
40ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonscriptversion=2013-10-28.13; # UTC
5fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
60ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Copyright (C) 1996-2013 Free Software Foundation, Inc.
70ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
9fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# This program is free software; you can redistribute it and/or modify
10fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# it under the terms of the GNU General Public License as published by
11fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# the Free Software Foundation; either version 2, or (at your option)
12fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# any later version.
13fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
14fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# This program is distributed in the hope that it will be useful,
15fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# but WITHOUT ANY WARRANTY; without even the implied warranty of
16fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# GNU General Public License for more details.
18fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
19fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# You should have received a copy of the GNU General Public License
20a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson# along with this program.  If not, see <http://www.gnu.org/licenses/>.
21fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
22fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# As a special exception to the GNU General Public License, if you
23fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# distribute this file as part of a program that contains a
24fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# configuration script generated by Autoconf, you may include it under
25fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# the same distribution terms that you use for the rest of that program.
26fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
27fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test $# -eq 0; then
280ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  echo 1>&2 "Try '$0 --help' for more information"
29fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  exit 1
30fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi
31fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
320ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsoncase $1 in
33fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
340ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  --is-lightweight)
350ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    # Used by our autoconf macros to check whether the available missing
360ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    # script is modern enough.
370ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    exit 0
380ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    ;;
39fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
400ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  --run)
410ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    # Back-compat with the calling convention used by older automake.
420ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    shift
430ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    ;;
44fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
45fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  -h|--h|--he|--hel|--help)
46fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    echo "\
47fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville$0 [OPTION]... PROGRAM [ARGUMENT]...
48fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
490ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff DavidsonRun 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
500ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonto PROGRAM being missing or too old.
51fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
52fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleOptions:
53fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  -h, --help      display this help and exit
54fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  -v, --version   output version information and exit
55fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
56fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleSupported PROGRAM values:
570ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
580ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  bison     yacc      flex         lex       help2man
59fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
600ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff DavidsonVersion suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
610ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson'g' are ignored when checking the name.
62a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson
63fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleSend bug reports to <bug-automake@gnu.org>."
64fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    exit $?
65fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    ;;
66fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
67fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
68fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    echo "missing $scriptversion (GNU Automake)"
69fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    exit $?
70fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    ;;
71fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
72fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  -*)
730ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    echo 1>&2 "$0: unknown '$1' option"
740ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    echo 1>&2 "Try '$0 --help' for more information"
75fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    exit 1
76fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    ;;
77fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
78fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleesac
79fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
800ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Run the given program, remember its exit status.
810ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson"$@"; st=$?
820ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
830ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# If it succeeded, we are done.
840ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsontest $st -eq 0 && exit 0
850ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
860ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Also exit now if we it failed (or wasn't found), and '--version' was
870ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# passed; such an option is passed most likely to detect whether the
880ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# program is present and works.
890ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsoncase $2 in --version|--help) exit $st;; esac
900ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
910ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Exit code 63 means version mismatch.  This often happens when the user
920ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# tries to use an ancient version of a tool on a file that requires a
930ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# minimum version.
940ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonif test $st -eq 63; then
950ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  msg="probably too old"
960ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonelif test $st -eq 127; then
970ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  # Program was missing.
980ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  msg="missing on your system"
990ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonelse
1000ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  # Program was found and executed, but failed.  Give up.
1010ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  exit $st
1020ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonfi
103fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
1040ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonperl_URL=http://www.perl.org/
1050ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonflex_URL=http://flex.sourceforge.net/
1060ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsongnu_software_URL=http://www.gnu.org/software
1070ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
1080ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonprogram_details ()
1090ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson{
1100ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  case $1 in
1110ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    aclocal|automake)
1120ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "The '$1' program is part of the GNU Automake package:"
1130ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/automake>"
1140ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
1150ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/autoconf>"
1160ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/m4/>"
1170ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$perl_URL>"
1180ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1190ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    autoconf|autom4te|autoheader)
1200ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "The '$1' program is part of the GNU Autoconf package:"
1210ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/autoconf/>"
1220ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "It also requires GNU m4 and Perl in order to run:"
1230ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/m4/>"
1240ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$perl_URL>"
1250ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1260ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  esac
1270ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson}
1280ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
1290ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsongive_advice ()
1300ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson{
1310ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  # Normalize program name to check for.
1320ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  normalized_program=`echo "$1" | sed '
1330ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    s/^gnu-//; t
1340ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    s/^gnu//; t
1350ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    s/^g//; t'`
1360ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
1370ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  printf '%s\n' "'$1' is $msg."
1380ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
1390ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
1400ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  case $normalized_program in
1410ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    autoconf*)
1420ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified 'configure.ac',"
1430ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "or m4 files included by it."
1440ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      program_details 'autoconf'
1450ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1460ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    autoheader*)
1470ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified 'acconfig.h' or"
1480ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "$configure_deps."
1490ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      program_details 'autoheader'
1500ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1510ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    automake*)
1520ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified 'Makefile.am' or"
1530ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "$configure_deps."
1540ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      program_details 'automake'
1550ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1560ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    aclocal*)
1570ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified 'acinclude.m4' or"
1580ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "$configure_deps."
1590ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      program_details 'aclocal'
1600ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1610ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson   autom4te*)
1620ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You might have modified some maintainer files that require"
1630ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "the 'autom4te' program to be rebuilt."
1640ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      program_details 'autom4te'
1650ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1660ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    bison*|yacc*)
1670ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified a '.y' file."
1680ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You may want to install the GNU Bison package:"
1690ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/bison/>"
1700ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1710ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    lex*|flex*)
1720ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified a '.l' file."
1730ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You may want to install the Fast Lexical Analyzer package:"
1740ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$flex_URL>"
1750ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1760ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    help2man*)
1770ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified a dependency" \
1780ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson           "of a man page."
1790ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You may want to install the GNU Help2man package:"
1800ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/help2man/>"
181fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville    ;;
1820ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    makeinfo*)
1830ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You should only need it if you modified a '.texi' file, or"
1840ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "any other file indirectly affecting the aspect of the manual."
1850ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You might want to install the Texinfo package:"
1860ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/texinfo/>"
1870ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "The spurious makeinfo call might also be the consequence of"
1880ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
1890ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "want to install GNU make:"
1900ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "<$gnu_software_URL/make/>"
1910ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1920ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson    *)
1930ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "You might have modified some files without having the proper"
1940ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "tools for further handling them.  Check the 'README' file, it"
1950ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "often tells you about the needed prerequisites for installing"
1960ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "this package.  You may also peek at any GNU archive site, in"
1970ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      echo "case some other package contains this missing '$1' program."
1980ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson      ;;
1990ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson  esac
2000ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson}
2010ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
2020ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsongive_advice "$1" | sed -e '1s/^/WARNING: /' \
2030ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson                       -e '2,$s/^/         /' >&2
2040ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson
2050ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# Propagate the correct exit status (expected to be 127 for a program
2060ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidson# not found, 63 for a program that failed due to version mismatch).
2070ddac1f3791efefb2cffdb425f0c600feb7a47e6Jeff Davidsonexit $st
208fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
209fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Local variables:
210fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# eval: (add-hook 'write-file-hooks 'time-stamp)
211fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# time-stamp-start: "scriptversion="
212fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# time-stamp-format: "%:y-%02m-%02d.%02H"
213a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson# time-stamp-time-zone: "UTC"
214a3b2a6da25a76f17c73d31def3952feb0fd2296eJeff Davidson# time-stamp-end: "; # UTC"
215fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# End:
216