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 (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
23 # Copyright (c) 2018, Joyent, Inc.
24 #
25 # Makefile for name service cache daemon
26 #
27
28 PROG= nscd
29 MANIFEST= name-service-cache.xml
30 SVCMETHOD= svc-nscd
31
32 include ../Makefile.cmd
33
34 ROOTMANIFESTDIR= $(ROOTSVCSYSTEM)
35
36 OBJS= server.o getpw.o getgr.o gethost.o getnode.o \
37 getether.o getrpc.o getproto.o getnet.o \
38 getbootp.o getauth.o getserv.o \
39 getnetmasks.o getprinter.o getproject.o \
40 getexec.o getprof.o getuser.o cache.o \
41 nscd_biggest.o nscd_wait.o \
42 nscd_init.o nscd_access.o nscd_cfgfile.o nscd_config.o \
43 nscd_dbimpl.o nscd_getentctx.o nscd_intaddr.o \
44 nscd_log.o nscd_nswconfig.o nscd_nswstate.o nscd_nswcfgst.o \
45 nscd_seqnum.o nscd_smfmonitor.o \
46 nscd_switch.o nscd_nswparse.o nscd_initf.o nscd_selfcred.o \
47 nscd_frontend.o nscd_admin.o nscd_door.o \
48 gettnrhtp.o gettnrhdb.o
49
50 CLOBBERFILES= nscd
51
52 SRCS= ${OBJS:%.o=%.c}
53
54 CFLAGS += $(CCVERBOSE)
55 CPPFLAGS += -D_REENTRANT -DSUN_THREADS \
56 -I../../lib/libc/port/gen -I../../lib/libc/inc \
57 -I../../lib/libsldap/common
58 LINTFLAGS += -erroff=E_GLOBAL_COULD_BE_STATIC2
59 LINTFLAGS += -erroff=E_NAME_USED_NOT_DEF2
60 LINTFLAGS += -erroff=E_NAME_DEF_NOT_USED2
61
62 CERRWARN += -_gcc=-Wno-switch
63 CERRWARN += $(CNOWARN_UNINIT)
64 CERRWARN += -_gcc=-Wno-parentheses
65 CERRWARN += -_gcc=-Wno-type-limits
66
67 # not linted
68 SMATCH=off
69
70 # nscd interposes on many symbols, and must export others for its own dlsym()
71 # use, and dlsym() calls from libc. Itemizing the interfaces within a mapfile
72 # is error-prone, so establish the whole object as an interposer.
73 LDFLAGS += $(ZINTERPOSE)
74
75 # TCOV_FLAG= -ql
76
77 PROGLIBS= $(LDLIBS) -lresolv -lnsl -lsocket -lumem -lscf -lavl
78
79 # install macros and rule
80 #
81 ROOTPROG= ${ROOTUSRSBIN}/nscd
82
83 .KEEP_STATE:
84
85 all: $(PROG) $(NISPROG)
86
87 ${PROG}: ${OBJS}
88 ${LINK.c} ${OPT} -o $@ ${OBJS} ${PROGLIBS}
89 ${POST_PROCESS}
90
91 lint:
92 $(LINT.c) ${SRCS} ${PROGLIBS}
93
94 cstyle:
95 ${CSTYLE} ${SRCS}
96
97 install: all $(ROOTPROG) $(ROOTMANIFEST) $(ROOTSVCMETHOD)
98
99 check: $(CHKMANIFEST)
100
101 clean:
102 ${RM} ${OBJS}
103
104 ${ROOTUSRSBIN}/%: %
105 ${INS.file}
106
107 ${ROOTUSRLIB}/%: %
108 ${INS.file}
109
110 include ../Makefile.targ