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