xref: /illumos-gate/usr/src/lib/libnsl/Makefile (revision d7c57852794a9ac50d4b6a9c4161cb10919658aa)
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 2009 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25#
26
27PROTOCOL_DIR= $(ROOTHDRDIR)/rpcsvc
28PROTOCOL_SRCDIR= $(SRC)/head/rpcsvc
29PROTOCOL_UTS_SRCDIR= $(SRC)/uts/common/rpc
30
31SUBDIRS =	$(MACH)
32$(BUILD64)SUBDIRS += $(MACH64)
33
34# objects are listed by source directory
35
36# common utility code used in more than one directory
37RPC_DERIVED_FILES=
38
39GEN_DERIVED_FILES= \
40	nis/gen/nis_clnt.h
41
42
43PROTOCOL_FILES= \
44	$(PROTOCOL_DIR)/daemon_utils.h	\
45	$(PROTOCOL_DIR)/nis.x		\
46	$(PROTOCOL_DIR)/nis.h		\
47	$(PROTOCOL_DIR)/nis_object.x
48
49PROTOCOL_FILES_UTS= \
50	$(PROTOCOL_DIR)/key_prot.x
51
52DERIVED_FILES= $(GEN_DERIVED_FILES) $(RPC_DERIVED_FILES)
53
54#
55# Make sure they get cleaned when necessary
56#
57CLEANFILES += $(DERIVED_FILES)
58
59# include library definitions
60include ../Makefile.lib
61
62# header file delivered to /usr/include; internal to ON build process
63HDRS =		nss.h
64HDRDIR =	nss
65
66LIBRARY= libnsl.a
67TEXT_DOMAIN= SUNW_OST_NETRPC
68POFILE= $(LIBRARY:.a=.po)
69POFILES= generic.po _errlst.po
70
71all :=		TARGET= all
72clean :=	TARGET= clean
73clobber :=	TARGET= clobber
74delete :=	TARGET= delete
75install :=	TARGET= install
76lint :=		TARGET= lint
77_msg :=		TARGET= _msg
78package :=	TARGET= package
79
80
81.KEEP_STATE:
82
83all:		$(PROTOCOL_DIR) $(DERIVED_FILES) .WAIT $(SUBDIRS)
84
85headers:	$(PROTOCOL_DIR) .WAIT $(PROTOCOL_FILES) $(PROTOCOL_FILES_UTS) \
86		$(DERIVED_FILES)
87
88install:	all .WAIT $(SUBDIRS)
89
90install_h:	$(ROOTHDRS)
91
92# nss.h isn't delivered; no reason to check
93check:
94
95clean clobber delete lint package:	$(SUBDIRS)
96
97$(PROTOCOL_DIR):
98	$(INS.dir)
99
100$(PROTOCOL_DIR)/%.h:	$(PROTOCOL_SRCDIR)/%.h
101	$(INS.file)
102
103$(PROTOCOL_DIR)/nis.h:	$(PROTOCOL_SRCDIR)/nis.x $(PROTOCOL_SRCDIR)/nis_object.x
104	$(RPCGEN) -C -h $(PROTOCOL_SRCDIR)/nis.x > nis-tmp.h
105	$(SED) -e '/EDIT_START/,$$ d' < nis-tmp.h > nis.h
106	$(RM) $@
107	$(INS) -s -m $(FILEMODE) -f $(@D) nis.h
108	$(RM) nis.h nis-tmp.h
109
110$(PROTOCOL_DIR)/%.x:	$(PROTOCOL_SRCDIR)/%.x
111	$(INS.file)
112
113$(PROTOCOL_DIR)/%.x:	$(PROTOCOL_UTS_SRCDIR)/%.x
114	$(INS.file)
115
116#
117# Rules for building the derived files
118#
119# Derived header files
120#
121nis/gen/nis_clnt.h: $(PROTOCOL_DIR)/nis.x $(PROTOCOL_DIR)/nis_object.x
122	$(RPCGEN) -C -h $(PROTOCOL_DIR)/nis.x > nis_clnt-gen.h
123	$(SED) -n -e '/EDIT_START/,$$ p' < nis_clnt-gen.h |\
124	$(SED) -e 's/_3_svc/_svc/' |\
125	$(SED) -e 's/_3/_clnt/' > $@
126	$(RM) nis_clnt-gen.h
127
128#
129# Derived source files
130#
131
132# include library targets
133include ../Makefile.targ
134
135_msg: $(MSGDOMAIN) $(POFILE)
136	$(RM) $(MSGDOMAIN)/$(POFILE)
137	$(CP) $(POFILE) $(MSGDOMAIN)
138
139$(POFILE): $(DERIVED_FILES) .WAIT $(POFILES)
140	$(RM) $@
141	$(CAT) $(POFILES) > $@
142
143_errlst.po:
144	$(RM) messages.po
145	$(XGETTEXT) -a nsl/_errlst.c
146	$(SED) -e '/^# msg/d' -e '/^domain/d' messages.po > $@
147	$(RM) messages.po
148
149generic.po:
150	$(RM) messages.po
151	$(XGETTEXT) $(XGETFLAGS) `$(GREP) -l gettext */*.[ch] nis/*/*.[ch]*`
152	$(SED) -e '/^# msg/d' -e '/^domain/d' messages.po > $@
153	$(RM) messages.po
154
155$(MSGDOMAIN):
156	$(INS.dir)
157
158$(SUBDIRS):	FRC
159	@cd $@; pwd; $(MAKE) $(TARGET)
160
161FRC:
162