#!/bin/sh

progname=`echo "$0" | sed 's%^.*/%%'`

PROGRAM=gtkdocize
PACKAGE=gtk-doc
VERSION=1.9

prefix=/usr
datarootdir=${prefix}/share
datadir=${datarootdir}

# options
docdir=.
copy=no
makefile=gtk-doc.make

while test $# -gt 0; do
  case "$1" in
  --help)
    echo "usage: $progname [ --copy ] [ --docdir DIR ] [ --flavour {legacy|no-tmpl} ]" 1>&2
    exit 1 ;;
  --version)
    echo "$PROGRAM ($PACKAGE) $VERSION"
    exit 0 ;;
  --copy)
    copy=yes
    shift ;;
  --docdir)
    shift
    docdir="$1"
    shift ;;
  --flavour)
    shift
    flavour="$1"
    case "$flavour" in
      legacy)
        ;;
      no-tmpl)
        makefile=gtk-doc.notmpl.make
        ;;
      *)
        echo "$progname: invalid value for --flavour" 1>&2
        echo "usage: $progname [ --copy ] [ --docdir DIR ] [--flavour {legacy|no-tmpl} ]" 1>&2
        exit 1 ;;
    esac
    shift ;;
  -*)
    echo "$progname: unrecognised option '$1'" 1>&2
    echo "usage: $progname [ --copy ] [ --docdir DIR ] [--flavour {legacy|no-tmpl} ]" 1>&2
    exit 1 ;;
  *)
    echo "$progname: too many arguments" 1>&2
    echo "usage: $progname [ --copy ] [ --docdir DIR ] [--flavour {legacy|no-tmpl} ]" 1>&2
    exit 1 ;;
  esac
done

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

if grep '^GTK_DOC_CHECK' $configure >/dev/null 2>&1; then
  :
else
  echo "$progname: GTK_DOC_CHECK not called in $configure" 1>&2
  exit 1
fi

# If the AC_CONFIG_MACRO_DIR() macro is used, copy gtk-doc.m4 from our
# prefix to that directory.  This makes sure that the M4 macro used
# matches the 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
  rm -f $m4dir/gtk-doc.m4
  if test "$copy" = yes; then
    cp -f $datadir/aclocal/gtk-doc.m4 $m4dir/ ||
      exit 1
  else
    ln -sf $datadir/aclocal/gtk-doc.m4 $m4dir/ ||
      cp -f $datadir/aclocal/gtk-doc.m4 $m4dir/ ||
      exit 1
  fi
fi

rm -f $docdir/gtk-doc.make
if test "$copy" = yes; then
  cp -f $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make ||
    exit 1
else
  ln -sf $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make ||
    cp -f $datadir/gtk-doc/data/$makefile $docdir/gtk-doc.make ||
    exit 1
fi
