#! /bin/sh
#
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
#
# 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, 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.
#

# This file is meant for authors or maintainers which want to
# internationalize their package with the help of GNU gettext.  For
# further information how to use it consult the GNU gettext manual.

echo=echo
progname=$0
force=0
configstatus=0
origdir=`pwd`
usage="\
Usage: gettextize [OPTION]... [package-dir]
  -h, --help           print this help and exit
  -v, --version        print version information and exit
  -c, --copy           copy files instead of making symlinks
  -f, --force          force writing of new files even if old exist"
package=@PACKAGE@
version=@VERSION@
aclocal_version=@ACLOCAL_VERSION@
try_ln_s=:

while test $# -gt 0; do
  case "$1" in
    -c | --copy | --c* )
      shift
      try_ln_s=false ;;
    -f | --force | --f* )
      shift
      force=1 ;;
    -r | --run | --r* )
      shift
      configstatus=1 ;;
    -h | --help | --h* )
      $echo "$usage"; exit 0 ;;
    --version | --v* )
      echo "$progname - GNU $package $version"; exit 0 ;;
    -- )	# Stop option prcessing
      shift; break ;;
    -* )
      $echo "$usage"; exit 1 ;;
    * )
      break ;;
  esac
done

if test $# -gt 1; then
  $echo "$usage"
  exit 1
fi

# Fill in the command line options value.
if test $# -eq 1; then
  srcdir=$1
  if cd $srcdir; then
    srcdir=`pwd`
  else
    $echo "Cannot change directory to \`$srcdir'"
    exit 1
  fi
else
  srcdir=$origdir
fi

# Directory where the sources are stored.
prefix=@prefix@
gettext_dir=@datadir@/gettext

test -f configure.in || {
  $echo "Missing configure.in, please cd to your package first."
  exit 1
}

if test -d intl && test $force -eq 0; then
  $echo "\
intl/ subdirectory exists: use option -f if you really want to delete it."
  exit 1
fi

if test -f po/Makefile.in.in && test $force -eq 0; then
  $echo "\
po/Makefile.in.in exists: use option -f if you really want to delete it."
  exit 1
fi

if test -f NLS && test $force -eq 0; then
  $echo "NLS exists: use option -f if you really want to delete it."
  exit 1
fi

rm -fr intl
mkdir intl || {
  $echo "failed to create intl/ subdirectory"
  exit 1;
}

test -d po || mkdir po || {
   $echo "failed to create po/ subdirectory"
   exit 1
}

# For simplicity we changed to the gettext source directory.
cd $gettext_dir

# Now copy all files.  Take care for the destination directories.
for file in *; do
  case $file in
    intl | po | demo)
      ;;
    *)
      rm -f $srcdir/$file
      ($try_ln_s && ln -s $gettext_dir/$file $srcdir/$file) 2>/dev/null ||
      cp $file $srcdir/$file
      ;;
  esac
done

# Copy files to intl/ subdirectory.
cd intl
for file in *; do
  rm -f $srcdir/intl/$file
  ($try_ln_s && ln -s $gettext_dir/intl/$file $srcdir/intl/$file) 2>/dev/null ||
  cp $file $srcdir/intl/$file
done

# Copy files to po/ subdirectory.
cd ../po
for file in *; do
  rm -f $srcdir/po/$file
  ($try_ln_s && ln -s $gettext_dir/po/$file $srcdir/po/$file) 2>/dev/null ||
  cp $file $srcdir/po/$file
done


# Check whether we can run config.status to produce intl/Makefile.in.
cd $origdir
if test -f ./config.status; then
  if test $configstatus -eq 0; then
    echo "Shall I run config.status? (y/N)"
    read ans
    case "$ans" in
      y* | Y* | 1* )
	configstatus=1 ;;
      * )
	;;
    esac
  fi

  test $configstatus -ne 0 &&
    (CONFIG_FILES=intl/Makefile CONFIG_HEADERS= ./config.status)
fi

merge=no
OLD_IFS="$IFS"
IFS="."
cntr=0
major=0; minor=0; subminor=0
for num in $aclocal_version; do
  case $cntr in
    0) major=$num;;
    1) minor=$num;;
    2) subminor=$num;;
  esac
  cntr=`expr $cntr + 1`
done
IFS="$OLD_IFS"

set `sed -e 's/.*Last updated for gettext-\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]\)*.*/\1 \2 \3/p' -e d aclocal.m4` >/dev/null


if test $# -lt 2 || test $# -gt 3; then
  merge=yes
else
  here_major=$1; here_minor=$2
  if test $# -eq 2; then
    here_subminor=0
  else
    here_subminor=$3
  fi

  if test $major -eq $here_major; then
    if test $minor -eq $here_minor; then
      if test $subminor -lt $here_subminor; then
	merge=gettext
      elif test $subminor -gt $here_subminor; then
	merge=yes
      fi
    else
      if test $minor -lt $here_minor; then
	merge=gettext
      else
	merge=yes
      fi
    fi
  else
    if test $major -lt $here_major; then
      merge=gettext
    else
      merge=yes
    fi
  fi
fi

if test "$merge" = "yes"; then
  $echo "You should update your own \`aclocal.m4' by merging into it"
  $echo "the contents of \`$gettext_dir/demo/aclocal.m4'"
elif test "$merge" = "gettext"; then
  $echo "Your \`aclocal.m4' file is newer than the installed gettext"
  $echo "program.  Consider upgrading to a recent GNU gettext version."
fi

exit 0
