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