glib-gettextize [was: Re: libfoo2 vs. libfoo]



On Mon, 2001-10-15 at 15:26, Havoc Pennington wrote:
> 
> Maciej Stachowiak <mjs noisehavoc org> writes: 
> > Is there any way to do this without checking in a modified
> > po/Makefile.in.in? Some autogen.sh scripts run gettextize and will
> > overwrite this file. It also doesn't seem very robust against gettext
> > version changes.
> 
> We shouldn't be running gettextize anyway. It creates the "intl"
> subdir, which is _entirely_ useless throughout all of GNOME, because
> GLib requires an actual gettext, you can't use the intl subdir. 
> All configure.in should be using AM_GLIB_GNU_GETTEXT which handles
> this correctly. Not to mention gettextize's busted-ass insistence on
> modifying po/ChangeLog.
> 
> If we don't want to cut-and-paste the po/Makefile.in.in around, we
> should just have a "glib-gettexttize" that creates that file.

ok - this includes a couple of fixes for po2tbl.sed.  does this look ok
to go in?

jacob 
-- 
"Beat mixing is 10000 times more fun than even video games."
	-- bt
Index: configure.in
===================================================================
RCS file: /cvs/gnome/glib/configure.in,v
retrieving revision 1.239
diff -u -r1.239 configure.in
--- configure.in	2001/10/25 18:51:57	1.239
+++ configure.in	2001/10/27 20:01:54
@@ -2136,6 +2136,7 @@
 gobject-2.0.pc
 gobject-2.0-uninstalled.pc
 glib.spec
+glib-gettextize
 Makefile
 build/Makefile
 build/win32/Makefile
Index: Makefile.am
===================================================================
RCS file: /cvs/gnome/glib/Makefile.am,v
retrieving revision 1.92
diff -u -r1.92 Makefile.am
--- Makefile.am	2001/09/26 19:37:07	1.92
+++ Makefile.am	2001/10/27 20:01:54
@@ -4,6 +4,9 @@
 
 SUBDIRS = . m4macros glib gobject gmodule gthread docs tests build po
 
+bin_SCRIPTS=glib-gettextize
+glib-gettextize: glib-gettextize.in
+
 INCLUDES = -DG_LOG_DOMAIN=g_log_domain_glib @GLIB_DEBUG_FLAGS@ \
 	-DG_DISABLE_DEPRECATED -DGLIB_COMPILATION
 
Index: po/Makefile.in.in
===================================================================
RCS file: /cvs/gnome/glib/po/Makefile.in.in,v
retrieving revision 1.5
diff -u -r1.5 Makefile.in.in
--- po/Makefile.in.in	2001/09/26 19:37:08	1.5
+++ po/Makefile.in.in	2001/10/27 20:01:54
@@ -11,6 +11,7 @@
 #
 
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
 VERSION = @VERSION@
 
 SHELL = /bin/sh
@@ -25,7 +26,7 @@
 datadir = $(prefix)/@DATADIRNAME@
 localedir = $(datadir)/locale
 gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
+gettextsrcdir = $(prefix)/share/glib-2.0/gettext/po
 subdir = po
 
 INSTALL = @INSTALL@
@@ -155,7 +156,7 @@
 	    fi; \
 	  fi; \
 	done
-	if test "$(GETTEXT_PACKAGE)" = "gettext"; then \
+	if test "$(PACKAGE)" = "glib"; then \
 	  if test -r "$(MKINSTALLDIRS)"; then \
 	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
 	  else \
@@ -163,6 +164,8 @@
 	  fi; \
 	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
 			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
+	  $(INSTALL_DATA) $(srcdir)/po2tbl.sed.in \
+			  $(DESTDIR)$(gettextsrcdir)/po2tbl.sed.in; \
 	else \
 	  : ; \
 	fi
#! /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.
#

# 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@
gettext_dir= prefix@/share/glib-2.0/gettext

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
  if cd $srcdir; then
    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
}

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 po/po2tbl.sed.in && test $force -eq 0; then
  $echo "\
po/po2tbl.sed.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)
      ;;
    *)
      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; }
      ;;
  esac
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 && $echo "Symlinking file po/$file") 2>/dev/null ||
  { $echo "Copying file po/$file"; cp $file $srcdir/po/$file; }
done
if test -f $srcdir/po/cat-id-tbl.c; then
  $echo "Removing po/cat-id-tbl.c"
  rm -f $srcdir/po/cat-id-tbl.c
fi
if test -f $srcdir/po/stamp-cat-id; then
  $echo "Removing po/stamp-cat-id"
  rm -f $srcdir/po/stamp-cat-id
fi

echo
echo "Please add the files"
echo "  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4"
echo "  progtest.m4"
echo "from the @datadir@/aclocal directory to your autoconf macro directory"
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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]