xref: /illumos-gate/usr/src/lib/libnsl/Makefile (revision 36e852a1)
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# EXPORT DELETE START
136# CRYPT DELETE START
137# Special target to clean up the source tree for export distribution
138# Warning: This target changes the source tree
139EXPORT_SRC:
140	$(RM) Makefile+ des/des_crypt.c+ des/des_soft.c+ key/xcrypt.c+
141	$(SED) -e "/EXPORT DELETE START/,/EXPORT DELETE END/d" \
142		< des/des_crypt.c > des/des_crypt.c+
143	$(MV) des/des_crypt.c+ des/des_crypt.c
144	$(SED) -e "/EXPORT DELETE START/,/EXPORT DELETE END/d" \
145		< des/des_soft.c > des/des_soft.c+
146	$(MV) des/des_soft.c+ des/des_soft.c
147	$(SED) -e "/EXPORT DELETE START/,/EXPORT DELETE END/d" \
148		< key/xcrypt.c > key/xcrypt.c+
149	$(MV) key/xcrypt.c+ key/xcrypt.c
150	$(SED) -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \
151		< Makefile > Makefile+
152	$(MV) Makefile+ Makefile
153	$(CHMOD) 444 Makefile des/des_crypt.c des/des_soft.c key/xcrypt.c
154
155CRYPT_SRC:
156	$(RM) Makefile+
157	$(SED) -e "/^# CRYPT DELETE START/,/^# CRYPT DELETE END/d"	\
158			< Makefile 				\
159	   | $(SED) -e "/EXPORT DELETE/d"				\
160			> Makefile+
161	$(MV) Makefile+ Makefile
162	$(CHMOD) 444 Makefile
163
164# CRYPT DELETE END
165# EXPORT DELETE END
166
167_msg: $(MSGDOMAIN) $(POFILE)
168	$(RM) $(MSGDOMAIN)/$(POFILE)
169	$(CP) $(POFILE) $(MSGDOMAIN)
170
171$(POFILE): $(DERIVED_FILES) .WAIT $(POFILES)
172	$(RM) $@
173	$(CAT) $(POFILES) > $@
174
175_errlst.po:
176	$(RM) messages.po
177	$(XGETTEXT) -a nsl/_errlst.c
178	$(SED) -e '/^# msg/d' -e '/^domain/d' messages.po > $@
179	$(RM) messages.po
180
181generic.po:
182	$(RM) messages.po
183	$(XGETTEXT) $(XGETFLAGS) `$(GREP) -l gettext */*.[ch] nis/*/*.[ch]*`
184	$(SED) -e '/^# msg/d' -e '/^domain/d' messages.po > $@
185	$(RM) messages.po
186
187$(MSGDOMAIN):
188	$(INS.dir)
189
190$(SUBDIRS):	FRC
191	@cd $@; pwd; $(MAKE) $(TARGET)
192
193FRC:
194