glib-gettextize.in 5.33 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#! /bin/sh
#
# Copyright (C) 1995-1998, 2000, 2001 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.
#

# - Modified in October 2001 by jacob berkman <jacob@ximian.com> to
# work with glib's Makefile.in.in and po2tbl.sed.in, to not copy in
# intl/, and to not add ChangeLog entries to po/ChangeLog

# 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: glib-gettextize [OPTION]... [package-dir]
      --help           print this help and exit
      --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
Report bugs to http://bugzilla.gnome.org/."
package=@PACKAGE@
version=@VERSION@
try_ln_s=:

# Directory where the sources are stored.
prefix=@prefix@
46 47 48 49 50 51
case `uname` in
MINGW32*)
    prefix="`dirname $0`/.."
    ;;
esac

52 53 54
datadir=@datadir@
datarootdir=@datarootdir@

55
gettext_dir=$prefix/share/glib-2.0/gettext
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

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 ;;
    --help | --h* )
      $echo "$usage"; exit 0 ;;
    --version | --v* )
      echo "$progname (GNU $package) $version"
      $echo "Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
      $echo "Written by" "Ulrich Drepper"
      exit 0 ;;
    -- )	# Stop option prcessing
      shift; break ;;
    -* )
      $echo "glib-gettextize: unknown option $1"
      $echo "Try \`glib-gettextize --help' for more information."; 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
95
  if cd "$srcdir"; then
96 97 98 99 100 101 102 103 104 105 106 107 108 109
    srcdir=`pwd`
  else
    $echo "Cannot change directory to \`$srcdir'"
    exit 1
  fi
else
  srcdir=$origdir
fi

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

110 111 112 113 114 115 116 117 118 119 120 121 122 123
configure_in=NONE
if test -f configure.in; then
  configure_in=configure.in
else
  if test -f configure.ac; then
    configure_in=configure.ac
  fi
fi
# Check in which directory config.rpath, mkinstalldirs etc. belong.
auxdir=`cat "$configure_in" | grep '^AC_CONFIG_AUX_DIR' | sed -n -e 's/AC_CONFIG_AUX_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
if test -n "$auxdir"; then
  auxdir="$auxdir/"
fi

124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
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

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

# For simplicity we changed to the gettext source directory.
cd $gettext_dir || {
   $echo "gettext source directory '${gettext_dir}' doesn't exist"
   exit 1
}

# Now copy all files.  Take care for the destination directories.
for file in *; do
  case $file in
    intl | po)
      ;;
149 150 151 152 153
    mkinstalldirs)
      rm -f "$srcdir/$auxdir$file"
      ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$auxdir$file" && $echo "Symlinking file $file") 2>/dev/null ||
      { $echo "Copying file $file"; cp $file "$srcdir/$auxdir$file"; }
      ;;
154
    *)
155 156 157
      rm -f "$srcdir/$file"
      ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$file" && $echo "Symlinking file $file") 2>/dev/null ||
      { $echo "Copying file $file"; cp $file "$srcdir/$file"; }
158 159 160 161 162 163 164
      ;;
  esac
done

# Copy files to po/ subdirectory.
cd po
for file in *; do
165 166 167
  rm -f "$srcdir/po/$file"
  ($try_ln_s && ln -s $gettext_dir/po/$file "$srcdir/po/$file" && $echo "Symlinking file po/$file") 2>/dev/null ||
  { $echo "Copying file po/$file"; cp $file "$srcdir/po/$file"; }
168
done
169
if test -f "$srcdir/po/cat-id-tbl.c"; then
170
  $echo "Removing po/cat-id-tbl.c"
171
  rm -f "$srcdir/po/cat-id-tbl.c"
172
fi
173
if test -f "$srcdir/po/stamp-cat-id"; then
174
  $echo "Removing po/stamp-cat-id"
175
  rm -f "$srcdir/po/stamp-cat-id"
176 177 178 179 180 181
fi

echo
echo "Please add the files"
echo "  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4"
echo "  progtest.m4"
182
echo "from the $datadir/aclocal directory to your autoconf macro directory"
183 184 185 186 187 188
echo "or directly to your aclocal.m4 file."
echo "You will also need config.guess and config.sub, which you can get from"
echo "ftp://ftp.gnu.org/pub/gnu/config/."
echo

exit 0