Blame depcomp

Packit Service fb6fa5
#! /bin/sh
Packit Service fb6fa5
# depcomp - compile a program generating dependencies as side-effects
Packit Service fb6fa5
Packit Service fb6fa5
scriptversion=2016-01-11.22; # UTC
Packit Service fb6fa5
Packit Service fb6fa5
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
Packit Service fb6fa5
Packit Service fb6fa5
# This program is free software; you can redistribute it and/or modify
Packit Service fb6fa5
# it under the terms of the GNU General Public License as published by
Packit Service fb6fa5
# the Free Software Foundation; either version 2, or (at your option)
Packit Service fb6fa5
# any later version.
Packit Service fb6fa5
Packit Service fb6fa5
# This program is distributed in the hope that it will be useful,
Packit Service fb6fa5
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb6fa5
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fb6fa5
# GNU General Public License for more details.
Packit Service fb6fa5
Packit Service fb6fa5
# You should have received a copy of the GNU General Public License
Packit Service fb6fa5
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service fb6fa5
Packit Service fb6fa5
# As a special exception to the GNU General Public License, if you
Packit Service fb6fa5
# distribute this file as part of a program that contains a
Packit Service fb6fa5
# configuration script generated by Autoconf, you may include it under
Packit Service fb6fa5
# the same distribution terms that you use for the rest of that program.
Packit Service fb6fa5
Packit Service fb6fa5
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
Packit Service fb6fa5
Packit Service fb6fa5
case $1 in
Packit Service fb6fa5
  '')
Packit Service fb6fa5
    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
Packit Service fb6fa5
    exit 1;
Packit Service fb6fa5
    ;;
Packit Service fb6fa5
  -h | --h*)
Packit Service fb6fa5
    cat <<\EOF
Packit Service fb6fa5
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Packit Service fb6fa5
Packit Service fb6fa5
Run PROGRAMS ARGS to compile a file, generating dependencies
Packit Service fb6fa5
as side-effects.
Packit Service fb6fa5
Packit Service fb6fa5
Environment variables:
Packit Service fb6fa5
  depmode     Dependency tracking mode.
Packit Service fb6fa5
  source      Source file read by 'PROGRAMS ARGS'.
Packit Service fb6fa5
  object      Object file output by 'PROGRAMS ARGS'.
Packit Service fb6fa5
  DEPDIR      directory where to store dependencies.
Packit Service fb6fa5
  depfile     Dependency file to output.
Packit Service fb6fa5
  tmpdepfile  Temporary file to use when outputting dependencies.
Packit Service fb6fa5
  libtool     Whether libtool is used (yes/no).
Packit Service fb6fa5
Packit Service fb6fa5
Report bugs to <bug-automake@gnu.org>.
Packit Service fb6fa5
EOF
Packit Service fb6fa5
    exit $?
Packit Service fb6fa5
    ;;
Packit Service fb6fa5
  -v | --v*)
Packit Service fb6fa5
    echo "depcomp $scriptversion"
Packit Service fb6fa5
    exit $?
Packit Service fb6fa5
    ;;
Packit Service fb6fa5
esac
Packit Service fb6fa5
Packit Service fb6fa5
# Get the directory component of the given path, and save it in the
Packit Service fb6fa5
# global variables '$dir'.  Note that this directory component will
Packit Service fb6fa5
# be either empty or ending with a '/' character.  This is deliberate.
Packit Service fb6fa5
set_dir_from ()
Packit Service fb6fa5
{
Packit Service fb6fa5
  case $1 in
Packit Service fb6fa5
    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
Packit Service fb6fa5
      *) dir=;;
Packit Service fb6fa5
  esac
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
# Get the suffix-stripped basename of the given path, and save it the
Packit Service fb6fa5
# global variable '$base'.
Packit Service fb6fa5
set_base_from ()
Packit Service fb6fa5
{
Packit Service fb6fa5
  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
# If no dependency file was actually created by the compiler invocation,
Packit Service fb6fa5
# we still have to create a dummy depfile, to avoid errors with the
Packit Service fb6fa5
# Makefile "include basename.Plo" scheme.
Packit Service fb6fa5
make_dummy_depfile ()
Packit Service fb6fa5
{
Packit Service fb6fa5
  echo "#dummy" > "$depfile"
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
# Factor out some common post-processing of the generated depfile.
Packit Service fb6fa5
# Requires the auxiliary global variable '$tmpdepfile' to be set.
Packit Service fb6fa5
aix_post_process_depfile ()
Packit Service fb6fa5
{
Packit Service fb6fa5
  # If the compiler actually managed to produce a dependency file,
Packit Service fb6fa5
  # post-process it.
Packit Service fb6fa5
  if test -f "$tmpdepfile"; then
Packit Service fb6fa5
    # Each line is of the form 'foo.o: dependency.h'.
Packit Service fb6fa5
    # Do two passes, one to just change these to
Packit Service fb6fa5
    #   $object: dependency.h
Packit Service fb6fa5
    # and one to simply output
Packit Service fb6fa5
    #   dependency.h:
Packit Service fb6fa5
    # which is needed to avoid the deleted-header problem.
Packit Service fb6fa5
    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
Packit Service fb6fa5
      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
Packit Service fb6fa5
    } > "$depfile"
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
  else
Packit Service fb6fa5
    make_dummy_depfile
Packit Service fb6fa5
  fi
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
# A tabulation character.
Packit Service fb6fa5
tab='	'
Packit Service fb6fa5
# A newline character.
Packit Service fb6fa5
nl='
Packit Service fb6fa5
'
Packit Service fb6fa5
# Character ranges might be problematic outside the C locale.
Packit Service fb6fa5
# These definitions help.
Packit Service fb6fa5
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
Packit Service fb6fa5
lower=abcdefghijklmnopqrstuvwxyz
Packit Service fb6fa5
digits=0123456789
Packit Service fb6fa5
alpha=${upper}${lower}
Packit Service fb6fa5
Packit Service fb6fa5
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
Packit Service fb6fa5
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
Packit Service fb6fa5
depfile=${depfile-`echo "$object" |
Packit Service fb6fa5
  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
Packit Service fb6fa5
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
Packit Service fb6fa5
Packit Service fb6fa5
rm -f "$tmpdepfile"
Packit Service fb6fa5
Packit Service fb6fa5
# Avoid interferences from the environment.
Packit Service fb6fa5
gccflag= dashmflag=
Packit Service fb6fa5
Packit Service fb6fa5
# Some modes work just like other modes, but use different flags.  We
Packit Service fb6fa5
# parameterize here, but still list the modes in the big case below,
Packit Service fb6fa5
# to make depend.m4 easier to write.  Note that we *cannot* use a case
Packit Service fb6fa5
# here, because this file can only contain one case statement.
Packit Service fb6fa5
if test "$depmode" = hp; then
Packit Service fb6fa5
  # HP compiler uses -M and no extra arg.
Packit Service fb6fa5
  gccflag=-M
Packit Service fb6fa5
  depmode=gcc
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
if test "$depmode" = dashXmstdout; then
Packit Service fb6fa5
  # This is just like dashmstdout with a different argument.
Packit Service fb6fa5
  dashmflag=-xM
Packit Service fb6fa5
  depmode=dashmstdout
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
cygpath_u="cygpath -u -f -"
Packit Service fb6fa5
if test "$depmode" = msvcmsys; then
Packit Service fb6fa5
  # This is just like msvisualcpp but w/o cygpath translation.
Packit Service fb6fa5
  # Just convert the backslash-escaped backslashes to single forward
Packit Service fb6fa5
  # slashes to satisfy depend.m4
Packit Service fb6fa5
  cygpath_u='sed s,\\\\,/,g'
Packit Service fb6fa5
  depmode=msvisualcpp
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
if test "$depmode" = msvc7msys; then
Packit Service fb6fa5
  # This is just like msvc7 but w/o cygpath translation.
Packit Service fb6fa5
  # Just convert the backslash-escaped backslashes to single forward
Packit Service fb6fa5
  # slashes to satisfy depend.m4
Packit Service fb6fa5
  cygpath_u='sed s,\\\\,/,g'
Packit Service fb6fa5
  depmode=msvc7
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
if test "$depmode" = xlc; then
Packit Service fb6fa5
  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
Packit Service fb6fa5
  gccflag=-qmakedep=gcc,-MF
Packit Service fb6fa5
  depmode=gcc
Packit Service fb6fa5
fi
Packit Service fb6fa5
Packit Service fb6fa5
case "$depmode" in
Packit Service fb6fa5
gcc3)
Packit Service fb6fa5
## gcc 3 implements dependency tracking that does exactly what
Packit Service fb6fa5
## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
Packit Service fb6fa5
## it if -MD -MP comes after the -MF stuff.  Hmm.
Packit Service fb6fa5
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
Packit Service fb6fa5
## the command line argument order; so add the flags where they
Packit Service fb6fa5
## appear in depend2.am.  Note that the slowdown incurred here
Packit Service fb6fa5
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
Packit Service fb6fa5
  for arg
Packit Service fb6fa5
  do
Packit Service fb6fa5
    case $arg in
Packit Service fb6fa5
    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
Packit Service fb6fa5
    *)  set fnord "$@" "$arg" ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
    shift # fnord
Packit Service fb6fa5
    shift # $arg
Packit Service fb6fa5
  done
Packit Service fb6fa5
  "$@"
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  mv "$tmpdepfile" "$depfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
gcc)
Packit Service fb6fa5
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
Packit Service fb6fa5
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
Packit Service fb6fa5
## (see the conditional assignment to $gccflag above).
Packit Service fb6fa5
## There are various ways to get dependency output from gcc.  Here's
Packit Service fb6fa5
## why we pick this rather obscure method:
Packit Service fb6fa5
## - Don't want to use -MD because we'd like the dependencies to end
Packit Service fb6fa5
##   up in a subdir.  Having to rename by hand is ugly.
Packit Service fb6fa5
##   (We might end up doing this anyway to support other compilers.)
Packit Service fb6fa5
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
Packit Service fb6fa5
##   -MM, not -M (despite what the docs say).  Also, it might not be
Packit Service fb6fa5
##   supported by the other compilers which use the 'gcc' depmode.
Packit Service fb6fa5
## - Using -M directly means running the compiler twice (even worse
Packit Service fb6fa5
##   than renaming).
Packit Service fb6fa5
  if test -z "$gccflag"; then
Packit Service fb6fa5
    gccflag=-MD,
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  "$@" -Wp,"$gccflag$tmpdepfile"
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  echo "$object : \\" > "$depfile"
Packit Service fb6fa5
  # The second -e expression handles DOS-style file names with drive
Packit Service fb6fa5
  # letters.
Packit Service fb6fa5
  sed -e 's/^[^:]*: / /' \
Packit Service fb6fa5
      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
Packit Service fb6fa5
## This next piece of magic avoids the "deleted header file" problem.
Packit Service fb6fa5
## The problem is that when a header file which appears in a .P file
Packit Service fb6fa5
## is deleted, the dependency causes make to die (because there is
Packit Service fb6fa5
## typically no way to rebuild the header).  We avoid this by adding
Packit Service fb6fa5
## dummy dependencies for each header file.  Too bad gcc doesn't do
Packit Service fb6fa5
## this for us directly.
Packit Service fb6fa5
## Some versions of gcc put a space before the ':'.  On the theory
Packit Service fb6fa5
## that the space means something, we add a space to the output as
Packit Service fb6fa5
## well.  hp depmode also adds that space, but also prefixes the VPATH
Packit Service fb6fa5
## to the object.  Take care to not repeat it in the output.
Packit Service fb6fa5
## Some versions of the HPUX 10.20 sed can't process this invocation
Packit Service fb6fa5
## correctly.  Breaking it into two sed invocations is a workaround.
Packit Service fb6fa5
  tr ' ' "$nl" < "$tmpdepfile" \
Packit Service fb6fa5
    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
Packit Service fb6fa5
    | sed -e 's/$/ :/' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
hp)
Packit Service fb6fa5
  # This case exists only to let depend.m4 do its work.  It works by
Packit Service fb6fa5
  # looking at the text of this script.  This case will never be run,
Packit Service fb6fa5
  # since it is checked for above.
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
sgi)
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    "$@" "-Wp,-MDupdate,$tmpdepfile"
Packit Service fb6fa5
  else
Packit Service fb6fa5
    "$@" -MDupdate "$tmpdepfile"
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
Packit Service fb6fa5
  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
Packit Service fb6fa5
    echo "$object : \\" > "$depfile"
Packit Service fb6fa5
    # Clip off the initial element (the dependent).  Don't try to be
Packit Service fb6fa5
    # clever and replace this with sed code, as IRIX sed won't handle
Packit Service fb6fa5
    # lines with more than a fixed number of characters (4096 in
Packit Service fb6fa5
    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
Packit Service fb6fa5
    # the IRIX cc adds comments like '#:fec' to the end of the
Packit Service fb6fa5
    # dependency line.
Packit Service fb6fa5
    tr ' ' "$nl" < "$tmpdepfile" \
Packit Service fb6fa5
      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
Packit Service fb6fa5
      | tr "$nl" ' ' >> "$depfile"
Packit Service fb6fa5
    echo >> "$depfile"
Packit Service fb6fa5
    # The second pass generates a dummy entry for each header file.
Packit Service fb6fa5
    tr ' ' "$nl" < "$tmpdepfile" \
Packit Service fb6fa5
      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
Packit Service fb6fa5
      >> "$depfile"
Packit Service fb6fa5
  else
Packit Service fb6fa5
    make_dummy_depfile
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
xlc)
Packit Service fb6fa5
  # This case exists only to let depend.m4 do its work.  It works by
Packit Service fb6fa5
  # looking at the text of this script.  This case will never be run,
Packit Service fb6fa5
  # since it is checked for above.
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
aix)
Packit Service fb6fa5
  # The C for AIX Compiler uses -M and outputs the dependencies
Packit Service fb6fa5
  # in a .u file.  In older versions, this file always lives in the
Packit Service fb6fa5
  # current directory.  Also, the AIX compiler puts '$object:' at the
Packit Service fb6fa5
  # start of each line; $object doesn't have directory information.
Packit Service fb6fa5
  # Version 6 uses the directory in both cases.
Packit Service fb6fa5
  set_dir_from "$object"
Packit Service fb6fa5
  set_base_from "$object"
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    tmpdepfile1=$dir$base.u
Packit Service fb6fa5
    tmpdepfile2=$base.u
Packit Service fb6fa5
    tmpdepfile3=$dir.libs/$base.u
Packit Service fb6fa5
    "$@" -Wc,-M
Packit Service fb6fa5
  else
Packit Service fb6fa5
    tmpdepfile1=$dir$base.u
Packit Service fb6fa5
    tmpdepfile2=$dir$base.u
Packit Service fb6fa5
    tmpdepfile3=$dir$base.u
Packit Service fb6fa5
    "$@" -M
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
Packit Service fb6fa5
  do
Packit Service fb6fa5
    test -f "$tmpdepfile" && break
Packit Service fb6fa5
  done
Packit Service fb6fa5
  aix_post_process_depfile
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
tcc)
Packit Service fb6fa5
  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
Packit Service fb6fa5
  # FIXME: That version still under development at the moment of writing.
Packit Service fb6fa5
  #        Make that this statement remains true also for stable, released
Packit Service fb6fa5
  #        versions.
Packit Service fb6fa5
  # It will wrap lines (doesn't matter whether long or short) with a
Packit Service fb6fa5
  # trailing '\', as in:
Packit Service fb6fa5
  #
Packit Service fb6fa5
  #   foo.o : \
Packit Service fb6fa5
  #    foo.c \
Packit Service fb6fa5
  #    foo.h \
Packit Service fb6fa5
  #
Packit Service fb6fa5
  # It will put a trailing '\' even on the last line, and will use leading
Packit Service fb6fa5
  # spaces rather than leading tabs (at least since its commit 0394caf7
Packit Service fb6fa5
  # "Emit spaces for -MD").
Packit Service fb6fa5
  "$@" -MD -MF "$tmpdepfile"
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
Packit Service fb6fa5
  # We have to change lines of the first kind to '$object: \'.
Packit Service fb6fa5
  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
Packit Service fb6fa5
  # And for each line of the second kind, we have to emit a 'dep.h:'
Packit Service fb6fa5
  # dummy dependency, to avoid the deleted-header problem.
Packit Service fb6fa5
  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
## The order of this option in the case statement is important, since the
Packit Service fb6fa5
## shell code in configure will try each of these formats in the order
Packit Service fb6fa5
## listed in this file.  A plain '-MD' option would be understood by many
Packit Service fb6fa5
## compilers, so we must ensure this comes after the gcc and icc options.
Packit Service fb6fa5
pgcc)
Packit Service fb6fa5
  # Portland's C compiler understands '-MD'.
Packit Service fb6fa5
  # Will always output deps to 'file.d' where file is the root name of the
Packit Service fb6fa5
  # source file under compilation, even if file resides in a subdirectory.
Packit Service fb6fa5
  # The object file name does not affect the name of the '.d' file.
Packit Service fb6fa5
  # pgcc 10.2 will output
Packit Service fb6fa5
  #    foo.o: sub/foo.c sub/foo.h
Packit Service fb6fa5
  # and will wrap long lines using '\' :
Packit Service fb6fa5
  #    foo.o: sub/foo.c ... \
Packit Service fb6fa5
  #     sub/foo.h ... \
Packit Service fb6fa5
  #     ...
Packit Service fb6fa5
  set_dir_from "$object"
Packit Service fb6fa5
  # Use the source, not the object, to determine the base name, since
Packit Service fb6fa5
  # that's sadly what pgcc will do too.
Packit Service fb6fa5
  set_base_from "$source"
Packit Service fb6fa5
  tmpdepfile=$base.d
Packit Service fb6fa5
Packit Service fb6fa5
  # For projects that build the same source file twice into different object
Packit Service fb6fa5
  # files, the pgcc approach of using the *source* file root name can cause
Packit Service fb6fa5
  # problems in parallel builds.  Use a locking strategy to avoid stomping on
Packit Service fb6fa5
  # the same $tmpdepfile.
Packit Service fb6fa5
  lockdir=$base.d-lock
Packit Service fb6fa5
  trap "
Packit Service fb6fa5
    echo '$0: caught signal, cleaning up...' >&2
Packit Service fb6fa5
    rmdir '$lockdir'
Packit Service fb6fa5
    exit 1
Packit Service fb6fa5
  " 1 2 13 15
Packit Service fb6fa5
  numtries=100
Packit Service fb6fa5
  i=$numtries
Packit Service fb6fa5
  while test $i -gt 0; do
Packit Service fb6fa5
    # mkdir is a portable test-and-set.
Packit Service fb6fa5
    if mkdir "$lockdir" 2>/dev/null; then
Packit Service fb6fa5
      # This process acquired the lock.
Packit Service fb6fa5
      "$@" -MD
Packit Service fb6fa5
      stat=$?
Packit Service fb6fa5
      # Release the lock.
Packit Service fb6fa5
      rmdir "$lockdir"
Packit Service fb6fa5
      break
Packit Service fb6fa5
    else
Packit Service fb6fa5
      # If the lock is being held by a different process, wait
Packit Service fb6fa5
      # until the winning process is done or we timeout.
Packit Service fb6fa5
      while test -d "$lockdir" && test $i -gt 0; do
Packit Service fb6fa5
        sleep 1
Packit Service fb6fa5
        i=`expr $i - 1`
Packit Service fb6fa5
      done
Packit Service fb6fa5
    fi
Packit Service fb6fa5
    i=`expr $i - 1`
Packit Service fb6fa5
  done
Packit Service fb6fa5
  trap - 1 2 13 15
Packit Service fb6fa5
  if test $i -le 0; then
Packit Service fb6fa5
    echo "$0: failed to acquire lock after $numtries attempts" >&2
Packit Service fb6fa5
    echo "$0: check lockdir '$lockdir'" >&2
Packit Service fb6fa5
    exit 1
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  # Each line is of the form `foo.o: dependent.h',
Packit Service fb6fa5
  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
Packit Service fb6fa5
  # Do two passes, one to just change these to
Packit Service fb6fa5
  # `$object: dependent.h' and one to simply `dependent.h:'.
Packit Service fb6fa5
  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
Packit Service fb6fa5
  # Some versions of the HPUX 10.20 sed can't process this invocation
Packit Service fb6fa5
  # correctly.  Breaking it into two sed invocations is a workaround.
Packit Service fb6fa5
  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
Packit Service fb6fa5
    | sed -e 's/$/ :/' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
hp2)
Packit Service fb6fa5
  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
Packit Service fb6fa5
  # compilers, which have integrated preprocessors.  The correct option
Packit Service fb6fa5
  # to use with these is +Maked; it writes dependencies to a file named
Packit Service fb6fa5
  # 'foo.d', which lands next to the object file, wherever that
Packit Service fb6fa5
  # happens to be.
Packit Service fb6fa5
  # Much of this is similar to the tru64 case; see comments there.
Packit Service fb6fa5
  set_dir_from  "$object"
Packit Service fb6fa5
  set_base_from "$object"
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    tmpdepfile1=$dir$base.d
Packit Service fb6fa5
    tmpdepfile2=$dir.libs/$base.d
Packit Service fb6fa5
    "$@" -Wc,+Maked
Packit Service fb6fa5
  else
Packit Service fb6fa5
    tmpdepfile1=$dir$base.d
Packit Service fb6fa5
    tmpdepfile2=$dir$base.d
Packit Service fb6fa5
    "$@" +Maked
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
     rm -f "$tmpdepfile1" "$tmpdepfile2"
Packit Service fb6fa5
     exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
Packit Service fb6fa5
  do
Packit Service fb6fa5
    test -f "$tmpdepfile" && break
Packit Service fb6fa5
  done
Packit Service fb6fa5
  if test -f "$tmpdepfile"; then
Packit Service fb6fa5
    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
Packit Service fb6fa5
    # Add 'dependent.h:' lines.
Packit Service fb6fa5
    sed -ne '2,${
Packit Service fb6fa5
               s/^ *//
Packit Service fb6fa5
               s/ \\*$//
Packit Service fb6fa5
               s/$/:/
Packit Service fb6fa5
               p
Packit Service fb6fa5
             }' "$tmpdepfile" >> "$depfile"
Packit Service fb6fa5
  else
Packit Service fb6fa5
    make_dummy_depfile
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$tmpdepfile" "$tmpdepfile2"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
tru64)
Packit Service fb6fa5
  # The Tru64 compiler uses -MD to generate dependencies as a side
Packit Service fb6fa5
  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
Packit Service fb6fa5
  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
Packit Service fb6fa5
  # dependencies in 'foo.d' instead, so we check for that too.
Packit Service fb6fa5
  # Subdirectories are respected.
Packit Service fb6fa5
  set_dir_from  "$object"
Packit Service fb6fa5
  set_base_from "$object"
Packit Service fb6fa5
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    # Libtool generates 2 separate objects for the 2 libraries.  These
Packit Service fb6fa5
    # two compilations output dependencies in $dir.libs/$base.o.d and
Packit Service fb6fa5
    # in $dir$base.o.d.  We have to check for both files, because
Packit Service fb6fa5
    # one of the two compilations can be disabled.  We should prefer
Packit Service fb6fa5
    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
Packit Service fb6fa5
    # automatically cleaned when .libs/ is deleted, while ignoring
Packit Service fb6fa5
    # the former would cause a distcleancheck panic.
Packit Service fb6fa5
    tmpdepfile1=$dir$base.o.d          # libtool 1.5
Packit Service fb6fa5
    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
Packit Service fb6fa5
    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
Packit Service fb6fa5
    "$@" -Wc,-MD
Packit Service fb6fa5
  else
Packit Service fb6fa5
    tmpdepfile1=$dir$base.d
Packit Service fb6fa5
    tmpdepfile2=$dir$base.d
Packit Service fb6fa5
    tmpdepfile3=$dir$base.d
Packit Service fb6fa5
    "$@" -MD
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
Packit Service fb6fa5
  do
Packit Service fb6fa5
    test -f "$tmpdepfile" && break
Packit Service fb6fa5
  done
Packit Service fb6fa5
  # Same post-processing that is required for AIX mode.
Packit Service fb6fa5
  aix_post_process_depfile
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
msvc7)
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    showIncludes=-Wc,-showIncludes
Packit Service fb6fa5
  else
Packit Service fb6fa5
    showIncludes=-showIncludes
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  "$@" $showIncludes > "$tmpdepfile"
Packit Service fb6fa5
  stat=$?
Packit Service fb6fa5
  grep -v '^Note: including file: ' "$tmpdepfile"
Packit Service fb6fa5
  if test $stat -ne 0; then
Packit Service fb6fa5
    rm -f "$tmpdepfile"
Packit Service fb6fa5
    exit $stat
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  echo "$object : \\" > "$depfile"
Packit Service fb6fa5
  # The first sed program below extracts the file names and escapes
Packit Service fb6fa5
  # backslashes for cygpath.  The second sed program outputs the file
Packit Service fb6fa5
  # name when reading, but also accumulates all include files in the
Packit Service fb6fa5
  # hold buffer in order to output them again at the end.  This only
Packit Service fb6fa5
  # works with sed implementations that can handle large buffers.
Packit Service fb6fa5
  sed < "$tmpdepfile" -n '
Packit Service fb6fa5
/^Note: including file:  *\(.*\)/ {
Packit Service fb6fa5
  s//\1/
Packit Service fb6fa5
  s/\\/\\\\/g
Packit Service fb6fa5
  p
Packit Service fb6fa5
}' | $cygpath_u | sort -u | sed -n '
Packit Service fb6fa5
s/ /\\ /g
Packit Service fb6fa5
s/\(.*\)/'"$tab"'\1 \\/p
Packit Service fb6fa5
s/.\(.*\) \\/\1:/
Packit Service fb6fa5
H
Packit Service fb6fa5
$ {
Packit Service fb6fa5
  s/.*/'"$tab"'/
Packit Service fb6fa5
  G
Packit Service fb6fa5
  p
Packit Service fb6fa5
}' >> "$depfile"
Packit Service fb6fa5
  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
msvc7msys)
Packit Service fb6fa5
  # This case exists only to let depend.m4 do its work.  It works by
Packit Service fb6fa5
  # looking at the text of this script.  This case will never be run,
Packit Service fb6fa5
  # since it is checked for above.
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
#nosideeffect)
Packit Service fb6fa5
  # This comment above is used by automake to tell side-effect
Packit Service fb6fa5
  # dependency tracking mechanisms from slower ones.
Packit Service fb6fa5
Packit Service fb6fa5
dashmstdout)
Packit Service fb6fa5
  # Important note: in order to support this mode, a compiler *must*
Packit Service fb6fa5
  # always write the preprocessed file to stdout, regardless of -o.
Packit Service fb6fa5
  "$@" || exit $?
Packit Service fb6fa5
Packit Service fb6fa5
  # Remove the call to Libtool.
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    while test "X$1" != 'X--mode=compile'; do
Packit Service fb6fa5
      shift
Packit Service fb6fa5
    done
Packit Service fb6fa5
    shift
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  # Remove '-o $object'.
Packit Service fb6fa5
  IFS=" "
Packit Service fb6fa5
  for arg
Packit Service fb6fa5
  do
Packit Service fb6fa5
    case $arg in
Packit Service fb6fa5
    -o)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    $object)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    *)
Packit Service fb6fa5
      set fnord "$@" "$arg"
Packit Service fb6fa5
      shift # fnord
Packit Service fb6fa5
      shift # $arg
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
  done
Packit Service fb6fa5
Packit Service fb6fa5
  test -z "$dashmflag" && dashmflag=-M
Packit Service fb6fa5
  # Require at least two characters before searching for ':'
Packit Service fb6fa5
  # in the target name.  This is to cope with DOS-style filenames:
Packit Service fb6fa5
  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
Packit Service fb6fa5
  "$@" $dashmflag |
Packit Service fb6fa5
    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  cat < "$tmpdepfile" > "$depfile"
Packit Service fb6fa5
  # Some versions of the HPUX 10.20 sed can't process this sed invocation
Packit Service fb6fa5
  # correctly.  Breaking it into two sed invocations is a workaround.
Packit Service fb6fa5
  tr ' ' "$nl" < "$tmpdepfile" \
Packit Service fb6fa5
    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
Packit Service fb6fa5
    | sed -e 's/$/ :/' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
dashXmstdout)
Packit Service fb6fa5
  # This case only exists to satisfy depend.m4.  It is never actually
Packit Service fb6fa5
  # run, as this mode is specially recognized in the preamble.
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
makedepend)
Packit Service fb6fa5
  "$@" || exit $?
Packit Service fb6fa5
  # Remove any Libtool call
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    while test "X$1" != 'X--mode=compile'; do
Packit Service fb6fa5
      shift
Packit Service fb6fa5
    done
Packit Service fb6fa5
    shift
Packit Service fb6fa5
  fi
Packit Service fb6fa5
  # X makedepend
Packit Service fb6fa5
  shift
Packit Service fb6fa5
  cleared=no eat=no
Packit Service fb6fa5
  for arg
Packit Service fb6fa5
  do
Packit Service fb6fa5
    case $cleared in
Packit Service fb6fa5
    no)
Packit Service fb6fa5
      set ""; shift
Packit Service fb6fa5
      cleared=yes ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
    if test $eat = yes; then
Packit Service fb6fa5
      eat=no
Packit Service fb6fa5
      continue
Packit Service fb6fa5
    fi
Packit Service fb6fa5
    case "$arg" in
Packit Service fb6fa5
    -D*|-I*)
Packit Service fb6fa5
      set fnord "$@" "$arg"; shift ;;
Packit Service fb6fa5
    # Strip any option that makedepend may not understand.  Remove
Packit Service fb6fa5
    # the object too, otherwise makedepend will parse it as a source file.
Packit Service fb6fa5
    -arch)
Packit Service fb6fa5
      eat=yes ;;
Packit Service fb6fa5
    -*|$object)
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    *)
Packit Service fb6fa5
      set fnord "$@" "$arg"; shift ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
  done
Packit Service fb6fa5
  obj_suffix=`echo "$object" | sed 's/^.*\././'`
Packit Service fb6fa5
  touch "$tmpdepfile"
Packit Service fb6fa5
  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  # makedepend may prepend the VPATH from the source file name to the object.
Packit Service fb6fa5
  # No need to regex-escape $object, excess matching of '.' is harmless.
Packit Service fb6fa5
  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
Packit Service fb6fa5
  # Some versions of the HPUX 10.20 sed can't process the last invocation
Packit Service fb6fa5
  # correctly.  Breaking it into two sed invocations is a workaround.
Packit Service fb6fa5
  sed '1,2d' "$tmpdepfile" \
Packit Service fb6fa5
    | tr ' ' "$nl" \
Packit Service fb6fa5
    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
Packit Service fb6fa5
    | sed -e 's/$/ :/' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile" "$tmpdepfile".bak
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
cpp)
Packit Service fb6fa5
  # Important note: in order to support this mode, a compiler *must*
Packit Service fb6fa5
  # always write the preprocessed file to stdout.
Packit Service fb6fa5
  "$@" || exit $?
Packit Service fb6fa5
Packit Service fb6fa5
  # Remove the call to Libtool.
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    while test "X$1" != 'X--mode=compile'; do
Packit Service fb6fa5
      shift
Packit Service fb6fa5
    done
Packit Service fb6fa5
    shift
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  # Remove '-o $object'.
Packit Service fb6fa5
  IFS=" "
Packit Service fb6fa5
  for arg
Packit Service fb6fa5
  do
Packit Service fb6fa5
    case $arg in
Packit Service fb6fa5
    -o)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    $object)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    *)
Packit Service fb6fa5
      set fnord "$@" "$arg"
Packit Service fb6fa5
      shift # fnord
Packit Service fb6fa5
      shift # $arg
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
  done
Packit Service fb6fa5
Packit Service fb6fa5
  "$@" -E \
Packit Service fb6fa5
    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
Packit Service fb6fa5
             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
Packit Service fb6fa5
    | sed '$ s: \\$::' > "$tmpdepfile"
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  echo "$object : \\" > "$depfile"
Packit Service fb6fa5
  cat < "$tmpdepfile" >> "$depfile"
Packit Service fb6fa5
  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
msvisualcpp)
Packit Service fb6fa5
  # Important note: in order to support this mode, a compiler *must*
Packit Service fb6fa5
  # always write the preprocessed file to stdout.
Packit Service fb6fa5
  "$@" || exit $?
Packit Service fb6fa5
Packit Service fb6fa5
  # Remove the call to Libtool.
Packit Service fb6fa5
  if test "$libtool" = yes; then
Packit Service fb6fa5
    while test "X$1" != 'X--mode=compile'; do
Packit Service fb6fa5
      shift
Packit Service fb6fa5
    done
Packit Service fb6fa5
    shift
Packit Service fb6fa5
  fi
Packit Service fb6fa5
Packit Service fb6fa5
  IFS=" "
Packit Service fb6fa5
  for arg
Packit Service fb6fa5
  do
Packit Service fb6fa5
    case "$arg" in
Packit Service fb6fa5
    -o)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    $object)
Packit Service fb6fa5
      shift
Packit Service fb6fa5
      ;;
Packit Service fb6fa5
    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
Packit Service fb6fa5
        set fnord "$@"
Packit Service fb6fa5
        shift
Packit Service fb6fa5
        shift
Packit Service fb6fa5
        ;;
Packit Service fb6fa5
    *)
Packit Service fb6fa5
        set fnord "$@" "$arg"
Packit Service fb6fa5
        shift
Packit Service fb6fa5
        shift
Packit Service fb6fa5
        ;;
Packit Service fb6fa5
    esac
Packit Service fb6fa5
  done
Packit Service fb6fa5
  "$@" -E 2>/dev/null |
Packit Service fb6fa5
  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
Packit Service fb6fa5
  rm -f "$depfile"
Packit Service fb6fa5
  echo "$object : \\" > "$depfile"
Packit Service fb6fa5
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
Packit Service fb6fa5
  echo "$tab" >> "$depfile"
Packit Service fb6fa5
  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
Packit Service fb6fa5
  rm -f "$tmpdepfile"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
msvcmsys)
Packit Service fb6fa5
  # This case exists only to let depend.m4 do its work.  It works by
Packit Service fb6fa5
  # looking at the text of this script.  This case will never be run,
Packit Service fb6fa5
  # since it is checked for above.
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
none)
Packit Service fb6fa5
  exec "$@"
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
Packit Service fb6fa5
*)
Packit Service fb6fa5
  echo "Unknown depmode $depmode" 1>&2
Packit Service fb6fa5
  exit 1
Packit Service fb6fa5
  ;;
Packit Service fb6fa5
esac
Packit Service fb6fa5
Packit Service fb6fa5
exit 0
Packit Service fb6fa5
Packit Service fb6fa5
# Local Variables:
Packit Service fb6fa5
# mode: shell-script
Packit Service fb6fa5
# sh-indentation: 2
Packit Service fb6fa5
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service fb6fa5
# time-stamp-start: "scriptversion="
Packit Service fb6fa5
# time-stamp-format: "%:y-%02m-%02d.%02H"
Packit Service fb6fa5
# time-stamp-time-zone: "UTC0"
Packit Service fb6fa5
# time-stamp-end: "; # UTC"
Packit Service fb6fa5
# End: