
1: # Copyright (C) 1996,1997,1998,1999,2001,2002,2006,2007 2: # Free Software Foundation, Inc. 3: # This file is part of the GNU C Library. 4: 5: # The GNU C Library is free software; you can redistribute it and/or 6: # modify it under the terms of the GNU Lesser General Public 7: # License as published by the Free Software Foundation; either 8: # version 2.1 of the License, or (at your option) any later version. 9: 10: # The GNU C Library 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 GNU 13: # Lesser General Public License for more details. 14: 15: # You should have received a copy of the GNU Lesser General Public 16: # License along with the GNU C Library; if not, write to the Free 17: # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18: # 02111-1307 USA. 19: 20: # Makefile for installing libc message catalogs. 21: 22: subdir := po 23: 24: # Add names of the languages with broken .po files here. 25: BROKEN_LINGUAS = 26: 27: # List of languages for which we have message catalogs of translations. 28: ALL_LINGUAS := $(filter-out $(BROKEN_LINGUAS),$(basename $(wildcard *.po))) 29: 30: # You can override this in configparms or the make command line to limit 31: # the languages which get installed. 32: ifdef LINGUAS 33: LINGUAS := $(filter $(addsuffix %,$(LINGUAS)),$(ALL_LINGUAS)) 34: else 35: LINGUAS = $(ALL_LINGUAS) 36: endif 37: 38: # Text domain name to install under; must match ../locale/SYS_libc.c string. 39: domainname = libc 40: 41: all: # Make this the default target; it will be defined in Rules. 42: 43: include ../Makeconfig 44: 45: # Pattern for where message catalog object for language % gets installed. 46: mo-installed = $(inst_msgcatdir)/%/LC_MESSAGES/$(domainname).mo 47: 48: # Files to install: a $(domainname).mo file for each language. 49: install-others = $(LINGUAS:%=$(mo-installed)) 50: 51: # Files to distribute: all the source and compiled binary translation files. 52: distribute = $(ALL_LINGUAS:=.po) $(BROKEN_LINGUAS:=.po) $(ALL_LINGUAS:=.mo) \ 53: libc.pot header.pot 54: 55: 56: include ../Rules 57: 58: # Generate the translation template from all the source files. 59: libc.pot: header.pot libc.pot.files 60: @rm -f $@.new 61: set `date -R`; disp="$$6"; \ 62: sed -e 's/VERSION/$(version)/' \ 63: -e "s/DATE/`date +'%Y-%m-%d %H:%M'$$disp`/" \ 64: $< > $@.new 65: cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \ 66: --add-comments=TRANS --flag=error:3:c-format \ 67: --sort-by-file --omit-header -E -n -d - \ 68: -f po/$(word 2,$^) >> po/$@.new 69: mv -f $@.new $@ 70: ifeq ($(with-cvs),yes) 71: test ! -d CVS || cvs $(CVSOPTS) ci -m'Regenerated from source files' $@ 72: endif 73: 74: po-sed-cmd = \ 75: '/\/tst-/d;$(foreach S,[ch] cxx sh bash,$(subst .,\.,/.$S\(.in\)*$$/p;))' 76: 77: # Omit tst-* files, and get only files with the given suffixes. 78: libc.pot.files: FORCE 79: $(..)scripts/list-sources.sh .. | sed -n $(po-sed-cmd) > $@.new 80: mv -f $@.new $@ 81: 82: .SUFFIXES: .mo .po .pot 83: 84: # Compile the binary message object files from the portable object source 85: # files of translations for each language. 86: %.mo: %.po 87: $(MSGFMT) -o $@ $< 88: 89: # Install the message object files as libc.po in the language directory. 90: $(mo-installed): %.mo $(+force); $(do-install) || exit 0 91: 92: .PHONY: linguas linguas.mo 93: linguas: $(ALL_LINGUAS:=.po) 94: linguas.mo: $(ALL_LINGUAS:=.mo) 95: 96: realclean: 97: rm -f $(ALL_LINGUAS:=.mo) 98: ^L 99: # Copy the PO files from the translation coordinator's repository. 100: 101: podir = /com/share/ftp/gnu/po/maint/glibc 102: 103: pofiles := $(wildcard $(podir)/*.po) 104: 105: ifneq (,$(pofiles)) 106: 107: %.po: $(podir)/%.po 108: cp -f $< $@ 109: chmod 444 $@ 110: 111: linguas: $(pofiles:$(podir)/%=%) 112: ifeq ($(with-cvs),yes) 113: test ! -d CVS || cvs $(CVSOPTS) commit -m'Copied from $(podir)' $^ 114: endif 115: linguas.mo: $(pofiles:$(podir)/%.po=%.mo) 116: 117: endif