#! /bin/sh
# gnome-doc-prepare - Prepare a package to use gnome-doc-utils.
# tools/gnome-doc-prepare.  Generated from gnome-doc-prepare.in by configure.
# Copyright (C) 1996-1999 Free Software Foundation, Inc.
# Copyright (C) 2001 Eazel, Inc.
# Copyright (C) 2004 Danilo Segan <danilo@gnome.org>.
#
# Originally based on libtoolize by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# Modified for xml-i18n-tools by Maciej Stachowiak <mjs@noisehavoc.org>
#
# Modified for gnome-doc-utils by Danilo Šegan <danilo@gnome.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# The name of this program.
progname=`echo "$0" | sed 's%^.*/%%'`

# Constants.
PROGRAM=gnome-doc-prepare
PACKAGE=gnome-doc-utils
VERSION=0.20.10

# Directory names.
prefix=/usr/local
datarootdir=${prefix}/share
datadir=${datarootdir}
pkgdatadir=${datarootdir}/gnome-doc-utils

# FIXME: I want this through pkg-config
gdu_m4="${datadir}/aclocal/gnome-doc-utils.m4"
gdu_make="${pkgdatadir}/gnome-doc-utils.make"
omf_template="${pkgdatadir}/template.omf.in"
xml_template="${pkgdatadir}/template-document.xml"
makefile_template="${pkgdatadir}/template.make"

dry_run=no
help="Try '$progname --help' for more information."
rm="rm -f"
rm_rec="rm -rf"
ln_s="ln -s"
cp="cp -f"
mkdir="mkdir"
sed="sed"
mkinstalldirs="mkinstalldirs"

# Global variables.
automake=
copy=
force=
status=0

for arg
do
  case "$arg" in
  --help)
    cat <<EOF
Usage: $progname [OPTION]...

Prepare a package to use gnome-doc-utils.

    --automake        work silently, and assume that Automake is in use
-c, --copy            copy files rather than symlinking them
    --new-document DOCUMENT
                      initialize help/DOCUMENT/*
    --debug           enable verbose shell tracing
-n, --dry-run         print commands rather than running them
-f, --force           replace existing files
    --help            display this message and exit
    --version         print version information and exit

You must 'cd' to the top directory of your package before you run
'$progname'.
EOF
    exit 0
    ;;

  --version)
    echo "$PROGRAM (GNU $PACKAGE) $VERSION"
    exit 0
    ;;

  --automake)
    automake=yes
    ;;

  --new-document)
    shift
    docname=yes
    ;;

  -c | --copy)
    ln_s=
    ;;

  --debug)
    echo "$progname: enabling shell trace mode"
    set -x
    ;;

  -n | --dry-run)
    if test "$dry_run" != yes; then
      dry_run=yes
      rm="echo $rm"
      rm_rec="echo $rm_rec"
      test -n "$ln_s" && ln_s="echo $ln_s"
      cp="echo $cp"
      mkdir="echo mkdir"
      mkinstalldirs="echo $mkinstalldirs"
      sed="echo $sed"
    fi
    ;;

  -f | --force)
    force=yes
    ;;

  -*)
    echo "$progname: unrecognized option '$arg'" 1>&2
    echo "$help" 1>&2
    exit 1
    ;;

  *)
    if [ "x$docname" = "xyes" ]
    then
      newdocument="$arg" 
      docname=no
    else
      echo "$progname: too many arguments" 1>&2
      echo "$help" 1>&2
      exit 1
    fi
    ;;
  esac
done

if test -f configure.ac; then
    configure="configure.ac"
else
    if test -f configure.in; then
	configure="configure.in"
    else
	echo "$progname: neither 'configure.ac' nor 'configure.in' exists" 1>&2
	echo "$help" 1>&2
	exit 1
    fi
fi


files='gnome-doc-utils.make'

auxdir=.
auxdirline=`egrep '^AC_CONFIG_AUX_DIR' $configure 2>/dev/null`
if test -n "$auxdirline"; then
  # Handle explicit AC_CONFIG_AUX_DIR settings.
  auxdir=`echo "$auxdirline" | sed 's/^AC_CONFIG_AUX_DIR(\([^)]*\)).*$/\1/'`

  if test "$auxdir" = "$auxdirline"; then
    echo "$progname: invalid AC_CONFIG_AUX_DIR syntax: $auxdirline" 1>&2
    exit 1
  else
    # Strip any quote brackets.
    auxdir=`echo "$auxdir" | sed 's/^\[\(.*\)\]$/\1/g'`
    case "$auxdir" in
    *\$*)
      echo "$progname: cannot handle variables in AC_CONFIG_AUX_DIR" 1>&2
      exit 1
      ;;
    *)
    ;;
    esac
  fi
else
  # Try to discover auxdir the same way it is discovered by configure.
  # Note that we default to the current directory.
  for dir in . .. ../..; do
    if test -f $dir/install-sh; then
      auxdir=$dir
      break
    elif test -f $dir/install.sh; then
      auxdir=$dir
      break
    fi
  done
fi

if test -z "$automake"; then
  if egrep '^GNOME_DOC_INIT' $configure >/dev/null 2>&1; then :
  else
    echo "Remember to add 'GNOME_DOC_INIT' to $configure."
  fi

  if grep 'generated automatically by aclocal' aclocal.m4 >/dev/null 2>&1; then
    updatemsg="update your 'aclocal.m4' by running aclocal"
  else
    updatemsg="add the contents of '$gdu_m4' to 'aclocal.m4'"
  fi

  if egrep '^AC_DEFUN\(GNOME_DOC_INIT' aclocal.m4 >/dev/null 2>&1; then
    # Check the version number on gnome-doc-utils.m4 and the one used in aclocal.m4.
    instserial=`grep '^# serial ' $gdu_m4 | grep 'GNOME_DOC_INIT' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`

    if test -z "$instserial"; then
      echo "$progname: warning: no serial number on '$gdu_m4'" 1>&2
    else
      # If the local macro has no serial number, we assume it's ancient.
      localserial=`grep '^# serial ' aclocal.m4 | grep 'GNOME_DOC_INIT' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`

      test -z "$localserial" && localserial=0

      if test "$localserial" -lt "$instserial"; then
	echo "You should $updatemsg."
      elif test "$localserial" -gt "$instserial"; then
	echo "$progname: '$gdu_m4' is serial $instserial, less than $localserial in 'aclocal.m4'" 1>&2
	if test -z "$force"; then
	  echo "Use '--force' to replace newer gnome-doc-utils files with this version." 1>&2
	  exit 1
	fi
	echo "To remain compatible, you should $updatemsg."
      fi
    fi
  else
    echo "You should $updatemsg."
  fi
fi



# Change to the auxiliary directory.
(
cur=`pwd`
if test "$auxdir" != .; then
  test -z "$automake" && echo "Putting files in AC_CONFIG_AUX_DIR, '$auxdir'."
  cd $auxdir || exit 1
fi

for file in $files; do
  if test -f "$file" && test -z "$force"; then
    test -z "$automake" && echo "$progname: '$file' exists: use '--force' to overwrite" 1>&2
    continue
  fi

  $rm $file
  if test -n "$ln_s" && $ln_s $pkgdatadir/`basename $file` $file; then :
  elif $cp $pkgdatadir/`basename $file` $file; then :
  else
    echo "$progname: cannot copy '$pkgdatadir/`basename $file`' to '$file'" 1>&2
    status=1
  fi
done

exit $status
# make sure this subshell exits with the exit value if it failed
) || exit $?

# Adapted from gtkdocize:
# If the AC_CONFIG_MACRO_DIR() macro is used, copy gnome-doc-utils.m4 
# from our prefix to that directory.  This makes sure that the M4 macro
# used matches the automake fragment.
# If AC_CONFIG_MACRO_DIR is not used, the macro won't be copied, and
# the correct flags must be passed to aclocal for it to find the macro.
m4dir=`cat "$configure" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`

if test -n "$m4dir"; then
(
cur=`pwd`
if test "$m4dir" != .; then
  test -z "$automake" && echo "Putting files in AC_CONFIG_MACRO_DIR, '$m4dir'."
  cd $m4dir || exit 1
fi

files='gnome-doc-utils.m4'

for file in $files; do
  if test -f "$file" && test -z "$force"; then
    test -z "$automake" && echo "$progname: '$file' exists: use '--force' to overwrite" 1>&2
    continue
  fi

  $rm $file
  if test -n "$ln_s" && $ln_s $datadir/aclocal/$file $file; then :
  elif $cp $datadir/aclocal/$file $file; then :
  else
    echo "$progname: cannot copy '$datadir/aclocal/$file' to '$file'" 1>&2
    status=1
  fi
done

exit $status
# make sure this subshell exits with the exit value if it failed
) || exit $?
fi


# FIXME: This probably does not work w/ builddir != srcdir because it
# gets at source files relative to the current directory.


if [ "x$newdocument" != "x" ]
then
    MYDATE="`date -I`"
    MYYEAR="`date +%Y`"
    MYUSERNAME="`whoami`"
    MYDOMAIN="`hostname -d`"
    MYSERIESID="`scrollkeeper-gen-seriesid`"
    MYDOCUMENT="$newdocument"

    ( # FIXME: check if any of these already exist, and overwrite only if $force
    mkdir -p "help/$newdocument/C" && \
	sed \
	-e 's/@DATE@/$MYDATE/g' \
	-e 's/@YEAR@/$MYYEAR/g' \
	-e 's/@USERNAME@/$MYUSERNAME/g' \
	-e 's/@DOMAIN@/$MYDOMAIN/g' \
	-e 's/@DOCUMENT@/$MYDOCUMENT/g' \
	< $xml_template > "help/$newdocument/C/$newdocument.xml" && \
	$sed \
	-e 's/@DATE@/$MYDATE/g' \
	-e 's/@SERIESID@/$MYSERIESID/g' \
	< $omf_template > "help/$newdocument/$newdocument.omf.in" && \
	sed \
	-e 's/@DOCUMENT@/$MYDOCUMENT/g' \
	< $makefile_template > "help/$newdocument/Makefile.am"
    )
fi

exit $status

# Local Variables:
# mode:shell-script
# sh-indentation:2
# End:
