github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/src/third_party/google-glog/depcomp (about)

     1  #! /bin/sh
     2  # depcomp - compile a program generating dependencies as side-effects
     3  
     4  scriptversion=2007-03-29.01
     5  
     6  # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
     7  # Foundation, Inc.
     8  
     9  # This program is free software; you can redistribute it and/or modify
    10  # it under the terms of the GNU General Public License as published by
    11  # the Free Software Foundation; either version 2, or (at your option)
    12  # any later version.
    13  
    14  # This program is distributed in the hope that it will be useful,
    15  # but WITHOUT ANY WARRANTY; without even the implied warranty of
    16  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17  # GNU General Public License for more details.
    18  
    19  # You should have received a copy of the GNU General Public License
    20  # along with this program; if not, write to the Free Software
    21  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    22  # 02110-1301, USA.
    23  
    24  # As a special exception to the GNU General Public License, if you
    25  # distribute this file as part of a program that contains a
    26  # configuration script generated by Autoconf, you may include it under
    27  # the same distribution terms that you use for the rest of that program.
    28  
    29  # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
    30  
    31  case $1 in
    32    '')
    33       echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
    34       exit 1;
    35       ;;
    36    -h | --h*)
    37      cat <<\EOF
    38  Usage: depcomp [--help] [--version] PROGRAM [ARGS]
    39  
    40  Run PROGRAMS ARGS to compile a file, generating dependencies
    41  as side-effects.
    42  
    43  Environment variables:
    44    depmode     Dependency tracking mode.
    45    source      Source file read by `PROGRAMS ARGS'.
    46    object      Object file output by `PROGRAMS ARGS'.
    47    DEPDIR      directory where to store dependencies.
    48    depfile     Dependency file to output.
    49    tmpdepfile  Temporary file to use when outputing dependencies.
    50    libtool     Whether libtool is used (yes/no).
    51  
    52  Report bugs to <bug-automake@gnu.org>.
    53  EOF
    54      exit $?
    55      ;;
    56    -v | --v*)
    57      echo "depcomp $scriptversion"
    58      exit $?
    59      ;;
    60  esac
    61  
    62  if test -z "$depmode" || test -z "$source" || test -z "$object"; then
    63    echo "depcomp: Variables source, object and depmode must be set" 1>&2
    64    exit 1
    65  fi
    66  
    67  # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
    68  depfile=${depfile-`echo "$object" |
    69    sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
    70  tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
    71  
    72  rm -f "$tmpdepfile"
    73  
    74  # Some modes work just like other modes, but use different flags.  We
    75  # parameterize here, but still list the modes in the big case below,
    76  # to make depend.m4 easier to write.  Note that we *cannot* use a case
    77  # here, because this file can only contain one case statement.
    78  if test "$depmode" = hp; then
    79    # HP compiler uses -M and no extra arg.
    80    gccflag=-M
    81    depmode=gcc
    82  fi
    83  
    84  if test "$depmode" = dashXmstdout; then
    85     # This is just like dashmstdout with a different argument.
    86     dashmflag=-xM
    87     depmode=dashmstdout
    88  fi
    89  
    90  case "$depmode" in
    91  gcc3)
    92  ## gcc 3 implements dependency tracking that does exactly what
    93  ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
    94  ## it if -MD -MP comes after the -MF stuff.  Hmm.
    95  ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
    96  ## the command line argument order; so add the flags where they
    97  ## appear in depend2.am.  Note that the slowdown incurred here
    98  ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
    99    for arg
   100    do
   101      case $arg in
   102      -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
   103      *)  set fnord "$@" "$arg" ;;
   104      esac
   105      shift # fnord
   106      shift # $arg
   107    done
   108    "$@"
   109    stat=$?
   110    if test $stat -eq 0; then :
   111    else
   112      rm -f "$tmpdepfile"
   113      exit $stat
   114    fi
   115    mv "$tmpdepfile" "$depfile"
   116    ;;
   117  
   118  gcc)
   119  ## There are various ways to get dependency output from gcc.  Here's
   120  ## why we pick this rather obscure method:
   121  ## - Don't want to use -MD because we'd like the dependencies to end
   122  ##   up in a subdir.  Having to rename by hand is ugly.
   123  ##   (We might end up doing this anyway to support other compilers.)
   124  ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
   125  ##   -MM, not -M (despite what the docs say).
   126  ## - Using -M directly means running the compiler twice (even worse
   127  ##   than renaming).
   128    if test -z "$gccflag"; then
   129      gccflag=-MD,
   130    fi
   131    "$@" -Wp,"$gccflag$tmpdepfile"
   132    stat=$?
   133    if test $stat -eq 0; then :
   134    else
   135      rm -f "$tmpdepfile"
   136      exit $stat
   137    fi
   138    rm -f "$depfile"
   139    echo "$object : \\" > "$depfile"
   140    alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
   141  ## The second -e expression handles DOS-style file names with drive letters.
   142    sed -e 's/^[^:]*: / /' \
   143        -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
   144  ## This next piece of magic avoids the `deleted header file' problem.
   145  ## The problem is that when a header file which appears in a .P file
   146  ## is deleted, the dependency causes make to die (because there is
   147  ## typically no way to rebuild the header).  We avoid this by adding
   148  ## dummy dependencies for each header file.  Too bad gcc doesn't do
   149  ## this for us directly.
   150    tr ' ' '
   151  ' < "$tmpdepfile" |
   152  ## Some versions of gcc put a space before the `:'.  On the theory
   153  ## that the space means something, we add a space to the output as
   154  ## well.
   155  ## Some versions of the HPUX 10.20 sed can't process this invocation
   156  ## correctly.  Breaking it into two sed invocations is a workaround.
   157      sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
   158    rm -f "$tmpdepfile"
   159    ;;
   160  
   161  hp)
   162    # This case exists only to let depend.m4 do its work.  It works by
   163    # looking at the text of this script.  This case will never be run,
   164    # since it is checked for above.
   165    exit 1
   166    ;;
   167  
   168  sgi)
   169    if test "$libtool" = yes; then
   170      "$@" "-Wp,-MDupdate,$tmpdepfile"
   171    else
   172      "$@" -MDupdate "$tmpdepfile"
   173    fi
   174    stat=$?
   175    if test $stat -eq 0; then :
   176    else
   177      rm -f "$tmpdepfile"
   178      exit $stat
   179    fi
   180    rm -f "$depfile"
   181  
   182    if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
   183      echo "$object : \\" > "$depfile"
   184  
   185      # Clip off the initial element (the dependent).  Don't try to be
   186      # clever and replace this with sed code, as IRIX sed won't handle
   187      # lines with more than a fixed number of characters (4096 in
   188      # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
   189      # the IRIX cc adds comments like `#:fec' to the end of the
   190      # dependency line.
   191      tr ' ' '
   192  ' < "$tmpdepfile" \
   193      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
   194      tr '
   195  ' ' ' >> $depfile
   196      echo >> $depfile
   197  
   198      # The second pass generates a dummy entry for each header file.
   199      tr ' ' '
   200  ' < "$tmpdepfile" \
   201     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
   202     >> $depfile
   203    else
   204      # The sourcefile does not contain any dependencies, so just
   205      # store a dummy comment line, to avoid errors with the Makefile
   206      # "include basename.Plo" scheme.
   207      echo "#dummy" > "$depfile"
   208    fi
   209    rm -f "$tmpdepfile"
   210    ;;
   211  
   212  aix)
   213    # The C for AIX Compiler uses -M and outputs the dependencies
   214    # in a .u file.  In older versions, this file always lives in the
   215    # current directory.  Also, the AIX compiler puts `$object:' at the
   216    # start of each line; $object doesn't have directory information.
   217    # Version 6 uses the directory in both cases.
   218    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
   219    test "x$dir" = "x$object" && dir=
   220    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   221    if test "$libtool" = yes; then
   222      tmpdepfile1=$dir$base.u
   223      tmpdepfile2=$base.u
   224      tmpdepfile3=$dir.libs/$base.u
   225      "$@" -Wc,-M
   226    else
   227      tmpdepfile1=$dir$base.u
   228      tmpdepfile2=$dir$base.u
   229      tmpdepfile3=$dir$base.u
   230      "$@" -M
   231    fi
   232    stat=$?
   233  
   234    if test $stat -eq 0; then :
   235    else
   236      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
   237      exit $stat
   238    fi
   239  
   240    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
   241    do
   242      test -f "$tmpdepfile" && break
   243    done
   244    if test -f "$tmpdepfile"; then
   245      # Each line is of the form `foo.o: dependent.h'.
   246      # Do two passes, one to just change these to
   247      # `$object: dependent.h' and one to simply `dependent.h:'.
   248      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
   249      # That's a tab and a space in the [].
   250      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   251    else
   252      # The sourcefile does not contain any dependencies, so just
   253      # store a dummy comment line, to avoid errors with the Makefile
   254      # "include basename.Plo" scheme.
   255      echo "#dummy" > "$depfile"
   256    fi
   257    rm -f "$tmpdepfile"
   258    ;;
   259  
   260  icc)
   261    # Intel's C compiler understands `-MD -MF file'.  However on
   262    #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   263    # ICC 7.0 will fill foo.d with something like
   264    #    foo.o: sub/foo.c
   265    #    foo.o: sub/foo.h
   266    # which is wrong.  We want:
   267    #    sub/foo.o: sub/foo.c
   268    #    sub/foo.o: sub/foo.h
   269    #    sub/foo.c:
   270    #    sub/foo.h:
   271    # ICC 7.1 will output
   272    #    foo.o: sub/foo.c sub/foo.h
   273    # and will wrap long lines using \ :
   274    #    foo.o: sub/foo.c ... \
   275    #     sub/foo.h ... \
   276    #     ...
   277  
   278    "$@" -MD -MF "$tmpdepfile"
   279    stat=$?
   280    if test $stat -eq 0; then :
   281    else
   282      rm -f "$tmpdepfile"
   283      exit $stat
   284    fi
   285    rm -f "$depfile"
   286    # Each line is of the form `foo.o: dependent.h',
   287    # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   288    # Do two passes, one to just change these to
   289    # `$object: dependent.h' and one to simply `dependent.h:'.
   290    sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
   291    # Some versions of the HPUX 10.20 sed can't process this invocation
   292    # correctly.  Breaking it into two sed invocations is a workaround.
   293    sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
   294      sed -e 's/$/ :/' >> "$depfile"
   295    rm -f "$tmpdepfile"
   296    ;;
   297  
   298  hp2)
   299    # The "hp" stanza above does not work with aCC (C++) and HP's ia64
   300    # compilers, which have integrated preprocessors.  The correct option
   301    # to use with these is +Maked; it writes dependencies to a file named
   302    # 'foo.d', which lands next to the object file, wherever that
   303    # happens to be.
   304    # Much of this is similar to the tru64 case; see comments there.
   305    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
   306    test "x$dir" = "x$object" && dir=
   307    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   308    if test "$libtool" = yes; then
   309      tmpdepfile1=$dir$base.d
   310      tmpdepfile2=$dir.libs/$base.d
   311      "$@" -Wc,+Maked
   312    else
   313      tmpdepfile1=$dir$base.d
   314      tmpdepfile2=$dir$base.d
   315      "$@" +Maked
   316    fi
   317    stat=$?
   318    if test $stat -eq 0; then :
   319    else
   320       rm -f "$tmpdepfile1" "$tmpdepfile2"
   321       exit $stat
   322    fi
   323  
   324    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
   325    do
   326      test -f "$tmpdepfile" && break
   327    done
   328    if test -f "$tmpdepfile"; then
   329      sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
   330      # Add `dependent.h:' lines.
   331      sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
   332    else
   333      echo "#dummy" > "$depfile"
   334    fi
   335    rm -f "$tmpdepfile" "$tmpdepfile2"
   336    ;;
   337  
   338  tru64)
   339     # The Tru64 compiler uses -MD to generate dependencies as a side
   340     # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
   341     # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
   342     # dependencies in `foo.d' instead, so we check for that too.
   343     # Subdirectories are respected.
   344     dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
   345     test "x$dir" = "x$object" && dir=
   346     base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   347  
   348     if test "$libtool" = yes; then
   349        # With Tru64 cc, shared objects can also be used to make a
   350        # static library.  This mechanism is used in libtool 1.4 series to
   351        # handle both shared and static libraries in a single compilation.
   352        # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
   353        #
   354        # With libtool 1.5 this exception was removed, and libtool now
   355        # generates 2 separate objects for the 2 libraries.  These two
   356        # compilations output dependencies in $dir.libs/$base.o.d and
   357        # in $dir$base.o.d.  We have to check for both files, because
   358        # one of the two compilations can be disabled.  We should prefer
   359        # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
   360        # automatically cleaned when .libs/ is deleted, while ignoring
   361        # the former would cause a distcleancheck panic.
   362        tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
   363        tmpdepfile2=$dir$base.o.d          # libtool 1.5
   364        tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
   365        tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
   366        "$@" -Wc,-MD
   367     else
   368        tmpdepfile1=$dir$base.o.d
   369        tmpdepfile2=$dir$base.d
   370        tmpdepfile3=$dir$base.d
   371        tmpdepfile4=$dir$base.d
   372        "$@" -MD
   373     fi
   374  
   375     stat=$?
   376     if test $stat -eq 0; then :
   377     else
   378        rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
   379        exit $stat
   380     fi
   381  
   382     for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
   383     do
   384       test -f "$tmpdepfile" && break
   385     done
   386     if test -f "$tmpdepfile"; then
   387        sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
   388        # That's a tab and a space in the [].
   389        sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   390     else
   391        echo "#dummy" > "$depfile"
   392     fi
   393     rm -f "$tmpdepfile"
   394     ;;
   395  
   396  #nosideeffect)
   397    # This comment above is used by automake to tell side-effect
   398    # dependency tracking mechanisms from slower ones.
   399  
   400  dashmstdout)
   401    # Important note: in order to support this mode, a compiler *must*
   402    # always write the preprocessed file to stdout, regardless of -o.
   403    "$@" || exit $?
   404  
   405    # Remove the call to Libtool.
   406    if test "$libtool" = yes; then
   407      while test $1 != '--mode=compile'; do
   408        shift
   409      done
   410      shift
   411    fi
   412  
   413    # Remove `-o $object'.
   414    IFS=" "
   415    for arg
   416    do
   417      case $arg in
   418      -o)
   419        shift
   420        ;;
   421      $object)
   422        shift
   423        ;;
   424      *)
   425        set fnord "$@" "$arg"
   426        shift # fnord
   427        shift # $arg
   428        ;;
   429      esac
   430    done
   431  
   432    test -z "$dashmflag" && dashmflag=-M
   433    # Require at least two characters before searching for `:'
   434    # in the target name.  This is to cope with DOS-style filenames:
   435    # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
   436    "$@" $dashmflag |
   437      sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   438    rm -f "$depfile"
   439    cat < "$tmpdepfile" > "$depfile"
   440    tr ' ' '
   441  ' < "$tmpdepfile" | \
   442  ## Some versions of the HPUX 10.20 sed can't process this invocation
   443  ## correctly.  Breaking it into two sed invocations is a workaround.
   444      sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
   445    rm -f "$tmpdepfile"
   446    ;;
   447  
   448  dashXmstdout)
   449    # This case only exists to satisfy depend.m4.  It is never actually
   450    # run, as this mode is specially recognized in the preamble.
   451    exit 1
   452    ;;
   453  
   454  makedepend)
   455    "$@" || exit $?
   456    # Remove any Libtool call
   457    if test "$libtool" = yes; then
   458      while test $1 != '--mode=compile'; do
   459        shift
   460      done
   461      shift
   462    fi
   463    # X makedepend
   464    shift
   465    cleared=no
   466    for arg in "$@"; do
   467      case $cleared in
   468      no)
   469        set ""; shift
   470        cleared=yes ;;
   471      esac
   472      case "$arg" in
   473      -D*|-I*)
   474        set fnord "$@" "$arg"; shift ;;
   475      # Strip any option that makedepend may not understand.  Remove
   476      # the object too, otherwise makedepend will parse it as a source file.
   477      -*|$object)
   478        ;;
   479      *)
   480        set fnord "$@" "$arg"; shift ;;
   481      esac
   482    done
   483    obj_suffix="`echo $object | sed 's/^.*\././'`"
   484    touch "$tmpdepfile"
   485    ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   486    rm -f "$depfile"
   487    cat < "$tmpdepfile" > "$depfile"
   488    sed '1,2d' "$tmpdepfile" | tr ' ' '
   489  ' | \
   490  ## Some versions of the HPUX 10.20 sed can't process this invocation
   491  ## correctly.  Breaking it into two sed invocations is a workaround.
   492      sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
   493    rm -f "$tmpdepfile" "$tmpdepfile".bak
   494    ;;
   495  
   496  cpp)
   497    # Important note: in order to support this mode, a compiler *must*
   498    # always write the preprocessed file to stdout.
   499    "$@" || exit $?
   500  
   501    # Remove the call to Libtool.
   502    if test "$libtool" = yes; then
   503      while test $1 != '--mode=compile'; do
   504        shift
   505      done
   506      shift
   507    fi
   508  
   509    # Remove `-o $object'.
   510    IFS=" "
   511    for arg
   512    do
   513      case $arg in
   514      -o)
   515        shift
   516        ;;
   517      $object)
   518        shift
   519        ;;
   520      *)
   521        set fnord "$@" "$arg"
   522        shift # fnord
   523        shift # $arg
   524        ;;
   525      esac
   526    done
   527  
   528    "$@" -E |
   529      sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
   530         -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
   531      sed '$ s: \\$::' > "$tmpdepfile"
   532    rm -f "$depfile"
   533    echo "$object : \\" > "$depfile"
   534    cat < "$tmpdepfile" >> "$depfile"
   535    sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
   536    rm -f "$tmpdepfile"
   537    ;;
   538  
   539  msvisualcpp)
   540    # Important note: in order to support this mode, a compiler *must*
   541    # always write the preprocessed file to stdout, regardless of -o,
   542    # because we must use -o when running libtool.
   543    "$@" || exit $?
   544    IFS=" "
   545    for arg
   546    do
   547      case "$arg" in
   548      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
   549  	set fnord "$@"
   550  	shift
   551  	shift
   552  	;;
   553      *)
   554  	set fnord "$@" "$arg"
   555  	shift
   556  	shift
   557  	;;
   558      esac
   559    done
   560    "$@" -E |
   561    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
   562    rm -f "$depfile"
   563    echo "$object : \\" > "$depfile"
   564    . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
   565    echo "	" >> "$depfile"
   566    . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   567    rm -f "$tmpdepfile"
   568    ;;
   569  
   570  none)
   571    exec "$@"
   572    ;;
   573  
   574  *)
   575    echo "Unknown depmode $depmode" 1>&2
   576    exit 1
   577    ;;
   578  esac
   579  
   580  exit 0
   581  
   582  # Local Variables:
   583  # mode: shell-script
   584  # sh-indentation: 2
   585  # eval: (add-hook 'write-file-hooks 'time-stamp)
   586  # time-stamp-start: "scriptversion="
   587  # time-stamp-format: "%:y-%02m-%02d.%02H"
   588  # time-stamp-end: "$"
   589  # End: