xref: /illumos-gate/usr/src/msg/Makefile (revision e2e882f7e139a951a52c7f4b5af447c3e6e68398)
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#
23# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27include ../Makefile.master
28
29ROOTDIR=$(ROOT)/usr/lib/locale/C
30ROOTMSGDIR=$(ROOTDIR)/LC_MESSAGES
31ROOTTIMEDIR=$(ROOTDIR)/LC_TIME
32
33#
34# These files either need no build rules, because they're under SCM
35# in the current working directory, or they have explicit build rules
36# that aren't handled by the $(MSGDIRFILES_REMOTE) rule below.
37#
38MSGDIRFILES_LOCAL= \
39	SUNW_OST_LINFO \
40	uxlibc.src
41
42#
43# These files live somewhere else in the build tree (ie not in the
44# directory usr/src/msg).  Each entry here should be accompanied by an
45# explicit action telling where the file lives.  That action should
46# consist only of a dependency, but no action--the action is supplied
47# by the $(MSGDIRFILES_REMOTE) rule below.
48#
49MSGDIRFILES_REMOTE= \
50	magic \
51	mailx.help \
52	more.help \
53	priv_names
54
55MSGDIRFILES= $(MSGDIRFILES_LOCAL) $(MSGDIRFILES_REMOTE)
56
57ROOTMSGDIRFILES=$(MSGDIRFILES:%=$(ROOTMSGDIR)/%)
58
59PO_LABEL=' The following lines are contents of '
60
61.KEEP_STATE:
62
63all: $(MSGDIRFILES)
64
65install: all _msg
66
67clobber:
68	$(RM) $(MSGDIRFILES_REMOTE)
69
70#
71# The _msg target gathers the output of the top-level _msg target into
72# text-domain-specific message files under the ROOTMSGDIR for packaging.
73# It also processes time-message files in subdirectories of the LC_TIME
74# directory and copies or creates other files needed by this package.
75#
76
77$(ROOTTIMEDIR) $(ROOTMSGDIR):
78	$(INS.dir)
79
80$(ROOTMSGDIR)/%: $(ROOTMSGDIR) %
81	$(INS.file)
82
83magic: $(SRC)/cmd/file/magic
84
85priv_names: $(ROOT)/etc/security/priv_names
86
87mailx.help: $(SRC)/cmd/mailx/misc/mailx.help
88
89more.help: $(SRC)/cmd/more/more.help
90
91$(MSGDIRFILES_REMOTE):
92	$(RM) $@; $(CP) $? $@
93
94_msg: $(ROOTMSGDIR) .WAIT $(ROOTTIMEDIR) $(ROOTMSGDIRFILES) FRC
95	[ -d $(MSGROOT) ] || $(ECHO) "need to build _msg in $(SRC)"
96	(cd $(MSGROOT); \
97	for d in SUNW*;\
98	do \
99		x="`$(ECHO) $$d/*.po`"; \
100		y="$$d/"'*.po'; \
101		$(RM) $(ROOTMSGDIR)/$$d.po; \
102		if test "$$x" != "$$y"; then \
103		for f in $$d/*.po; \
104		do \
105			$(ECHO) '#'$(PO_LABEL)$$f >> $(ROOTMSGDIR)/$$d.po; \
106			$(SED) -e '/^# msg/d' -e '/^domain/d' $$f >> \
107			    $(ROOTMSGDIR)/$$d.po; \
108		done; \
109		$(CHMOD) $(FILEMODE) $(ROOTMSGDIR)/$$d.po; \
110		fi; \
111		x="`$(ECHO) $$d/*.msg`"; \
112		y="$$d/"'*.msg'; \
113		if test "$$x" != "$$y"; then \
114		for f in $$d/*.msg; \
115		do \
116			x="`basename $$f`"; \
117			$(RM) $(ROOTMSGDIR)/$$x; \
118			$(CP) $$f $(ROOTMSGDIR); \
119			$(CHMOD) $(FILEMODE) $(ROOTMSGDIR)/$$x; \
120		done; \
121		fi; \
122	done)
123	(cd $(MSGROOT)/LC_TIME; \
124	for d in SUNW*;\
125	do \
126		$(RM) $(ROOTTIMEDIR)/$$d.po; \
127		for f in $$d/*.po; \
128		do \
129			$(ECHO) '#'$(PO_LABEL)$$f >> $(ROOTTIMEDIR)/$$d.po; \
130			$(SED) -e '/^# msg/d' -e '/^domain/d' $$f >> \
131			    $(ROOTTIMEDIR)/$$d.po; \
132		done; \
133		$(CHMOD) $(FILEMODE) $(ROOTTIMEDIR)/$$d.po; \
134	done)
135
136FRC:
137