glib-gettextize.in revision d59c859aec6a80f4d9ed1c28487952929d7f19e8
1#! /bin/sh
2#
3# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2, or (at your option)
8# any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18#
19
20# - Modified in October 2001 by jacob berkman <jacob@ximian.com> to
21# work with glib's Makefile.in.in and po2tbl.sed.in, to not copy in
22# intl/, and to not add ChangeLog entries to po/ChangeLog
23
24# This file is meant for authors or maintainers which want to
25# internationalize their package with the help of GNU gettext.  For
26# further information how to use it consult the GNU gettext manual.
27
28echo=echo
29progname=$0
30force=0
31configstatus=0
32origdir=`pwd`
33usage="\
34Usage: glib-gettextize [OPTION]... [package-dir]
35      --help           print this help and exit
36      --version        print version information and exit
37  -c, --copy           copy files instead of making symlinks
38  -f, --force          force writing of new files even if old exist
39Report bugs to http://bugzilla.gnome.org/."
40package=@PACKAGE@
41version=@VERSION@
42try_ln_s=:
43
44# Directory where the sources are stored.
45prefix=@prefix@
46gettext_dir=@prefix@/share/glib-2.0/gettext
47
48while test $# -gt 0; do
49  case "$1" in
50    -c | --copy | --c* )
51      shift
52      try_ln_s=false ;;
53    -f | --force | --f* )
54      shift
55      force=1 ;;
56    -r | --run | --r* )
57      shift
58      configstatus=1 ;;
59    --help | --h* )
60      $echo "$usage"; exit 0 ;;
61    --version | --v* )
62      echo "$progname (GNU $package) $version"
63      $echo "Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
64This is free software; see the source for copying conditions.  There is NO
65warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
66      $echo "Written by" "Ulrich Drepper"
67      exit 0 ;;
68    -- )	# Stop option prcessing
69      shift; break ;;
70    -* )
71      $echo "glib-gettextize: unknown option $1"
72      $echo "Try \`glib-gettextize --help' for more information."; exit 1 ;;
73    * )
74      break ;;
75  esac
76done
77
78if test $# -gt 1; then
79  $echo "$usage"
80  exit 1
81fi
82
83# Fill in the command line options value.
84if test $# -eq 1; then
85  srcdir=$1
86  if cd $srcdir; then
87    srcdir=`pwd`
88  else
89    $echo "Cannot change directory to \`$srcdir'"
90    exit 1
91  fi
92else
93  srcdir=$origdir
94fi
95
96test -f configure.in || test -f configure.ac || {
97  $echo "Missing configure.in or configure.ac, please cd to your package first."
98  exit 1
99}
100
101if test -f po/Makefile.in.in && test $force -eq 0; then
102  $echo "\
103po/Makefile.in.in exists: use option -f if you really want to delete it."
104  exit 1
105fi
106
107if test -f po/po2tbl.sed.in && test $force -eq 0; then
108  $echo "\
109po/po2tbl.sed.in exists: use option -f if you really want to delete it."
110  exit 1
111fi
112
113test -d po || {
114  $echo "Creating po/ subdirectory"
115  mkdir po || {
116    $echo "failed to create po/ subdirectory"
117    exit 1
118  }
119}
120
121# For simplicity we changed to the gettext source directory.
122cd $gettext_dir || {
123   $echo "gettext source directory '${gettext_dir}' doesn't exist"
124   exit 1
125}
126
127# Now copy all files.  Take care for the destination directories.
128for file in *; do
129  case $file in
130    intl | po)
131      ;;
132    *)
133      rm -f $srcdir/$file
134      ($try_ln_s && ln -s $gettext_dir/$file $srcdir/$file && $echo "Symlinking file $file") 2>/dev/null ||
135      { $echo "Copying file $file"; cp $file $srcdir/$file; }
136      ;;
137  esac
138done
139
140# Copy files to po/ subdirectory.
141cd po
142for file in *; do
143  rm -f $srcdir/po/$file
144  ($try_ln_s && ln -s $gettext_dir/po/$file $srcdir/po/$file && $echo "Symlinking file po/$file") 2>/dev/null ||
145  { $echo "Copying file po/$file"; cp $file $srcdir/po/$file; }
146done
147if test -f $srcdir/po/cat-id-tbl.c; then
148  $echo "Removing po/cat-id-tbl.c"
149  rm -f $srcdir/po/cat-id-tbl.c
150fi
151if test -f $srcdir/po/stamp-cat-id; then
152  $echo "Removing po/stamp-cat-id"
153  rm -f $srcdir/po/stamp-cat-id
154fi
155
156echo
157echo "Please add the files"
158echo "  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4"
159echo "  progtest.m4"
160echo "from the @datadir@/aclocal directory to your autoconf macro directory"
161echo "or directly to your aclocal.m4 file."
162echo "You will also need config.guess and config.sub, which you can get from"
163echo "ftp://ftp.gnu.org/pub/gnu/config/."
164echo
165
166exit 0
167