xref: /titanic_41/usr/src/lib/libnisdb/Makefile (revision 7aec1d6e253b21f9e9b7ef68b4d81ab9859b51fe)
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 2004 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26# ident	"%Z%%M%	%I%	%E% SMI"
27#
28# lib/libnisdb/Makefile
29#
30
31LIBRARY= libnisdb.a
32VERS=	.2
33PROTOCOL_DIR= $(ROOT)/include/rpcsvc
34YPTOL_DIR= ./yptol
35
36SED=	sed
37
38OBJECTS = \
39	db_entry.o db_entry_c_xdr.o \
40	db_item.o db_item_c_xdr.o \
41	db_vers.o db_vers_c_xdr.o \
42	db_pickle.o \
43	db_table.o db_table_c_xdr.o \
44	db_index_entry.o db_index_entry_c.o \
45	db_index.o db_index_c_xdr.o \
46	db_scheme.o db_scheme_c_xdr.o \
47	db_query.o db_query_c_xdr.o \
48	db_mindex.o db_mindex2.o db_mindex3.o db_mindex_c_xdr.o \
49	db_log_entry.o db_log_entry_c_xdr.o \
50	db_log.o \
51	db.o \
52	xdr_nullptr.o \
53	db_dictionary.o db_dictionary_c_xdr.o \
54	db_dictxdr.o db_dictlog.o db_dictlog_c_xdr.o \
55	nis_db.o \
56	nisdb_mt.o nisdb_rw.o \
57	nis_hashitem.o nis_servlist.o \
58	ldap_attr.o ldap_cto.o ldap_glob.o ldap_ldap.o \
59	ldap_map.o ldap_nisdbquery.o ldap_nisplus.o \
60	ldap_op.o ldap_parse.o ldap_print.o ldap_ruleval.o \
61	ldap_util.o ldap_val.o ldap_xdr.o ldap_scheme.o \
62	nis_ldap.o \
63	nis_parse_ldap_attr.o nis_parse_ldap_conf.o \
64	nis_parse_ldap_map.o nis_parse_ldap_util.o \
65	nis_parse_ldap_yp_util.o	\
66	dit_access.o \
67	dit_access_utils.o \
68	lock_update.o \
69	map_conv.o \
70	map_ctrl.o \
71	yptol_utils.o \
72	shim.o \
73	shim_ancil.o \
74	shim_lockmap.o \
75	ttl_utils.o \
76	update.o \
77	shim_changepasswd.o \
78	stubs.o
79
80X_FILES= \
81    db_c.x             db_dictionary_c.x db_entry_c.x  db_index_c.x     \
82    db_index_entry_c.x db_item_c.x       db_log_c.x    db_log_entry_c.x \
83    db_mindex_c.x      db_query_c.x      db_scheme_c.x db_table_c.x     \
84    db_vers_c.x	       db_dictlog_c.x
85
86DERIVED_HEADERS= $(X_FILES:%_c.x=%_c.h) $(X_FILES:%_c.x=%.h)
87DERIVED_SOURCES= $(X_FILES:%_c.x=%_c_xdr.c)
88DERIVED_FILES= $(DERIVED_HEADERS) $(DERIVED_SOURCES)
89
90# delete the derived files when cleaning up
91CLEANFILES += $(DERIVED_FILES)
92
93# include library definitions
94include ../Makefile.lib
95
96MAPDIR=		./spec/$(MACH)
97MAPFILE=	$(MAPDIR)/mapfile
98CLOBBERFILES +=	$(MAPFILE)
99
100SRCS= db_dictionary_c_xdr.c db_dictlog_c_xdr.c db_dictxdr.c \
101db_entry_c_xdr.c db_index_c_xdr.c db_index_entry_c_xdr.c db_item_c_xdr.c \
102db_log_c_xdr.c db_log_entry_c_xdr.c db_mindex_c_xdr.c db_query_c_xdr.c \
103db_scheme_c_xdr.c db_table_c_xdr.c db_vers_c_xdr.c \
104$(YPTOL_DIR)/dit_access.c \
105$(YPTOL_DIR)/dit_access_utils.c \
106$(YPTOL_DIR)/lock_update.c \
107$(YPTOL_DIR)/map_conv.c \
108$(YPTOL_DIR)/map_ctrl.c \
109$(YPTOL_DIR)/yptol_utils.c \
110$(YPTOL_DIR)/shim.c \
111$(YPTOL_DIR)/shim_ancil.c \
112$(YPTOL_DIR)/shim_lockmap.c \
113$(YPTOL_DIR)/ttl_utils.c \
114$(YPTOL_DIR)/update.c \
115$(YPTOL_DIR)/shim_changepasswd.c \
116$(YPTOL_DIR)/stubs.c \
117#db_c_xdr.c xdr_nullptr.c
118
119# Libnisdb has grown large enough that there may be too many symbols
120# wanting `small' PIC references. Hence, compile some files with
121# `large' PIC references; the parser files are good candidates, since
122# they're only used at startup, and performance isn't too important.
123LARGESYMS=	nis_parse_ldap_conf.o \
124		nis_parse_ldap_attr.o \
125		nis_parse_ldap_yp_util.o \
126		nis_parse_ldap_map.o \
127		ldap_parse.o \
128		dit_access.o \
129		dit_access_utilis.o \
130		map_conv.o \
131		map_ctrl.o \
132		shim.o \
133		shim_ancil.o \
134		shim_changepasswd.o \
135		update.o \
136		stubs.o \
137		yptol_utils.o \
138		nis_parse_ldap_util.o
139LARGEPICS=	$(LARGESYMS:%=pics/%)
140$(LARGEPICS) :=	sparc_C_PICFLAGS = $(C_BIGPICFLAGS)
141$(LARGEPICS) :=	i386_C_PICFLAGS = $(C_BIGPICFLAGS)
142
143CPPFLAGS +=	-D_REENTRANT
144
145# Extra includes, from yp, for yptol files.
146CPPFLAGS += -I$(SRC)/cmd/ypcmd
147
148DYNFLAGS +=	-M$(MAPFILE)
149
150LIBS = $(DYNLIB)
151ZDEFS=
152LDLIBS += -lnsl -lldap -lcmd -lc
153
154all :=		TARGET= all
155clean :=	TARGET= clean
156clobber :=	TARGET= clobber
157install :=	TARGET= install
158lint :=		TARGET= lint
159
160.KEEP_STATE:
161
162all:	spec .WAIT $(DERIVED_FILES) $(LIBS)
163
164install: all $(ROOTLIBS) $(ROOTLINKS)
165
166lint: $(DERIVED_FILES) .WAIT lintcheck
167
168$(DYNLIB):	$(MAPFILE)
169
170$(MAPFILE):
171	@cd $(MAPDIR); $(MAKE) mapfile
172
173pics/%.o: %.c
174	$(COMPILE.c) -o $@ $<
175	$(POST_PROCESS_O)
176
177pics/%.o: %.cc
178	$(COMPILE.cc) -o $@ $<
179	$(POST_PROCESS_O)
180
181objs/%.o pics/%.o profs/%.o: $(YPTOL_DIR)/%.c
182	$(COMPILE.c) -o $@ $<
183	$(POST_PROCESS_O)
184
185#
186# Pattern matching rules that define how to build the derived files.
187#
188%_c.h: %_c.x
189	$(RM) $@
190	$(RPCGEN) -DUSINGC -h -o $@ $<
191
192%.h: %_c.x
193	$(RM) $@
194	$(RPCGEN) -h -o $@ $<
195
196%_c_xdr.c: %_c.x
197	$(RM) $@
198	$(RPCGEN) -DUSINGC -c -o $@ $<
199
200# rename the xdr_db_free_entry() in the db_table_c_xdr.c.  So the one
201# in db_index_entry_c is used instead.
202DB_TABLE=db_table_c
203
204$(DB_TABLE)_xdr.c:	$(DB_TABLE).x
205	$(RM) $@
206	$(RPCGEN) -DUSINGC -c $(DB_TABLE).x |\
207	$(SED) -e 's/^xdr_db_free_entry(/__OBSOLETED_xdr_db_free_entry(/' > $@
208
209clean clobber: spec
210
211spec:	FRC
212	@cd $@;pwd; $(MAKE) $(TARGET)
213
214
215# include library targets
216include ../Makefile.targ
217
218FRC:
219