1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21# 22# Copyright 2010 Sun Microsystems, Inc. All rights reserved. 23# Use is subject to license terms. 24# 25# Makefile.msg.targ 26# 27 28# 29# This file contains common targets for building message catalogues. 30# Over time, existing Makefiles should be rewritten to include this file 31# rather than use their own private copy of these rules. 32# 33 34.PARALLEL: $(POFILES) $(MSGFILES) 35 36$(MSGDOMAIN)% $(DCMSGDOMAIN)%: 37 $(INS.dir) 38 39$(MSGDOMAINPOFILE): $(MSGDOMAIN) $(POFILE) 40 $(RM) $@; $(CP) $(POFILE) $@ 41 42$(DCMSGDOMAINPOFILE): $(DCMSGDOMAIN) $(DCFILE) 43 $(RM) $@; $(CP) $(DCFILE) $@ 44 45BUILDPO.msgfiles = \ 46 $(RM) messages.po $(TEXT_DOMAIN).po; \ 47 $(TOUCH) $(TEXT_DOMAIN).po; \ 48 $(XGETTEXT) $(XGETFLAGS) $(MSGFILES); \ 49 $(SED) -e '/^\# msgid/,/^\# msgstr/d' -e '/^domain/d' \ 50 -e '/^\#$$/d' -e '/^\#, /d' \ 51 messages.po $(TEXT_DOMAIN).po > $(POFILE); \ 52 $(RM) messages.po $(TEXT_DOMAIN).po 53 54BUILDPO.pofiles = \ 55 $(RM) $(POFILE); \ 56 $(NAWK) '\ 57 FNR == 1 { print "\# Messages from " FILENAME; } \ 58 /^domain/ { next; } \ 59 /^msgid/, /^msgstr/ { msg = msg "\n" $$0; \ 60 if ( $$0 !~ /^msgstr/ ) next; \ 61 if (msg in messages) { \ 62 gsub(/\n/, "\n\# ", msg); \ 63 } else { \ 64 messages[msg] = 1; \ 65 } \ 66 sub(/^\n/, "", msg); \ 67 print msg; \ 68 msg = ""; \ 69 next; \ 70 } \ 71 /^\# [\.]*Messages/ { sub(/Messages/, "...Messages"); } \ 72 { print; }' $(POFILES) > $(POFILE) 73 74pofile_MSGFILES: 75 $(BUILDPO.msgfiles) 76 77pofile_POFILES: 78 $(BUILDPO.pofiles) 79