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 45 BUILDPO.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 54 BUILDPO.pofiles = \ 55 $(RM) $(POFILE); \ 56 $(AWK) '\ 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 74 pofile_MSGFILES: 75 $(BUILDPO.msgfiles) 76 77 pofile_POFILES: 78 $(BUILDPO.pofiles)