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 "@(#)Makefile.msg.targ 1.4 05/06/08 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 48 BUILDPO.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 56 BUILDPO.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 76 pofile_MSGFILES: 77 $(BUILDPO.msgfiles) 78 79 pofile_POFILES: 80 $(BUILDPO.pofiles) 81