2006-01-07 Roland McGrath <roland@redhat.com>
authorroland <roland>
Sun, 8 Jan 2006 06:44:06 +0000 (06:44 +0000)
committerroland <roland>
Sun, 8 Jan 2006 06:44:06 +0000 (06:44 +0000)
* scripts/list-sources.sh: New file.
* Makefile (TAGS): New target.
* po/Makefile (libc.pot, libc.pot.files): New targets.
* Makeconfig (XGETTEXT): New variable.
* Makerules ($(..)po/%.pot): Rule removed.
(TAGS): Target removed.
* Rules (subdir_TAGS): Target removed.
* MakeTAGS: File removed.

Rules
po/Makefile
scripts/list-sources.sh [new file with mode: 0755]

diff --git a/Rules b/Rules
index 5758611..74b80e8 100644 (file)
--- a/Rules
+++ b/Rules
@@ -1,4 +1,5 @@
-# Copyright (C) 1991-2000,2002,2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1991-2000,2002,2003,2004,2005,2006
+#      Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -165,10 +166,9 @@ distclean: clean
 .PHONY: subdir_install
 subdir_install: install-no-libc.a lib-noranlib stubs
 
-.PHONY: subdir_objs subdir_stubs subdir_TAGS
+.PHONY: subdir_objs subdir_stubs
 subdir_objs: objs
 subdir_stubs: stubs
-subdir_TAGS: TAGS
 
 # Target required by the Hurd to ensure that all the MiG-generated
 # headers are in place before building a subdirectory.
index fa26aec..cbbd9ab 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
+# Copyright (C) 1996,1997,1998,1999,2001,2002,2006
+#      Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +22,7 @@
 subdir := po
 
 # Add names of the languages with broken .po files here.
-BROKEN_LINGUAS = 
+BROKEN_LINGUAS =
 
 # List of languages for which we have message catalogs of translations.
 ALL_LINGUAS := $(filter-out $(BROKEN_LINGUAS),$(basename $(wildcard *.po)))
@@ -54,6 +55,28 @@ distribute = $(ALL_LINGUAS:=.po) $(BROKEN_LINGUAS:=.po) $(ALL_LINGUAS:=.mo) \
 
 include ../Rules
 
+# Generate the translation template from all the source files.
+libc.pot: header.pot libc.pot.files
+       @rm -f $@.new
+       set `date -R`; disp="$$6"; \
+       sed -e 's/VERSION/$(version)/' \
+           -e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \
+           $< > $@.new
+       cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \
+                          --add-comments=TRANS --flag=error:3:c-format \
+                          --sort-by-file --omit-header -E -n -d - \
+                          -f po/$(word 2,$^) >> po/$@.new
+       mv -f $@.new $@
+ifeq ($(with-cvs),yes)
+       test ! -d CVS || cvs $(CVSOPTS) ci -m'Regenerated from source files' $@
+endif
+
+# Omit tst-* files, and get only files with the given suffixes.
+libc.pot.files: FORCE
+       $(..)scripts/list-sources.sh .. | sed -n '/\/tst-/d;\
+         $(foreach S,[ch] cxx sh bash,$(subst .,\.,/.$S\(.in\)*$$/p;))' \
+         > $@.new
+       mv -f $@.new $@
 
 .SUFFIXES: .mo .po .pot
 
diff --git a/scripts/list-sources.sh b/scripts/list-sources.sh
new file mode 100755 (executable)
index 0000000..41c8b9e
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# List all the files under version control in the source tree.
+#
+
+case $# in
+0) ;;
+1) cd "$1" ;;
+*) echo >&2 "Usage: $0 [top_srcdir]"; exit 2 ;;
+esac
+
+if [ -r CVS/Entries ]; then
+
+  ${CVS:-cvs} status 2>&1 | ${AWK:-awk} '
+NF >= 2 && $(NF - 1) == "Examining" { dir = $NF }
+$1 == "File:" { print (dir == ".") ? $2 : (dir "/" $2) }'
+  exit $?
+
+elif [ -r .svn/entries ]; then
+
+  ${SVN:-svn} ls -R | sed '/\/$/d'
+  exit $?
+
+elif [ -r MT/options ]; then
+
+  exec ${MONOTONE:-monotone} list known
+
+elif [ -r .git/HEAD ]; then
+
+  exec ${GIT:-git} ls-files
+
+fi
+
+echo >&2 'Cannot list sources without some version control system in use.'
+exit 1