xref: /titanic_44/usr/src/cmd/fm/fmd/Makefile.fmd (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1*7c478bd9Sstevel@tonic-gate#
2*7c478bd9Sstevel@tonic-gate# CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate#
4*7c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate# with the License.
8*7c478bd9Sstevel@tonic-gate#
9*7c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate# and limitations under the License.
13*7c478bd9Sstevel@tonic-gate#
14*7c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate#
20*7c478bd9Sstevel@tonic-gate# CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate#
22*7c478bd9Sstevel@tonic-gate#
23*7c478bd9Sstevel@tonic-gate# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate# Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate#
26*7c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
27*7c478bd9Sstevel@tonic-gate#
28*7c478bd9Sstevel@tonic-gate
29*7c478bd9Sstevel@tonic-gate.KEEP_STATE:
30*7c478bd9Sstevel@tonic-gate
31*7c478bd9Sstevel@tonic-gateSRCS += fmd.c \
32*7c478bd9Sstevel@tonic-gate	fmd_api.c \
33*7c478bd9Sstevel@tonic-gate	fmd_alloc.c \
34*7c478bd9Sstevel@tonic-gate	fmd_asru.c \
35*7c478bd9Sstevel@tonic-gate	fmd_buf.c \
36*7c478bd9Sstevel@tonic-gate	fmd_builtin.c \
37*7c478bd9Sstevel@tonic-gate	fmd_case.c \
38*7c478bd9Sstevel@tonic-gate	fmd_ckpt.c \
39*7c478bd9Sstevel@tonic-gate	fmd_conf.c \
40*7c478bd9Sstevel@tonic-gate	fmd_ctl.c \
41*7c478bd9Sstevel@tonic-gate	fmd_dispq.c \
42*7c478bd9Sstevel@tonic-gate	fmd_dr.c \
43*7c478bd9Sstevel@tonic-gate	fmd_error.c \
44*7c478bd9Sstevel@tonic-gate	fmd_event.c \
45*7c478bd9Sstevel@tonic-gate	fmd_eventq.c \
46*7c478bd9Sstevel@tonic-gate	fmd_fmri.c \
47*7c478bd9Sstevel@tonic-gate	fmd_idspace.c \
48*7c478bd9Sstevel@tonic-gate	fmd_list.c \
49*7c478bd9Sstevel@tonic-gate	fmd_log.c \
50*7c478bd9Sstevel@tonic-gate	fmd_main.c \
51*7c478bd9Sstevel@tonic-gate	fmd_module.c \
52*7c478bd9Sstevel@tonic-gate	fmd_nv.c \
53*7c478bd9Sstevel@tonic-gate	fmd_proc.c \
54*7c478bd9Sstevel@tonic-gate	fmd_protocol.c \
55*7c478bd9Sstevel@tonic-gate	fmd_rpc.c \
56*7c478bd9Sstevel@tonic-gate	fmd_rpc_adm.c \
57*7c478bd9Sstevel@tonic-gate	fmd_rpc_api.c \
58*7c478bd9Sstevel@tonic-gate	fmd_rtld.c \
59*7c478bd9Sstevel@tonic-gate	fmd_scheme.c \
60*7c478bd9Sstevel@tonic-gate	fmd_self.c \
61*7c478bd9Sstevel@tonic-gate	fmd_serd.c \
62*7c478bd9Sstevel@tonic-gate	fmd_string.c \
63*7c478bd9Sstevel@tonic-gate	fmd_subr.c \
64*7c478bd9Sstevel@tonic-gate	fmd_svc_adm.c \
65*7c478bd9Sstevel@tonic-gate	fmd_svc_api.c \
66*7c478bd9Sstevel@tonic-gate	fmd_thread.c \
67*7c478bd9Sstevel@tonic-gate	fmd_time.c \
68*7c478bd9Sstevel@tonic-gate	fmd_timerq.c \
69*7c478bd9Sstevel@tonic-gate	fmd_trace.c \
70*7c478bd9Sstevel@tonic-gate	fmd_transport.c \
71*7c478bd9Sstevel@tonic-gate	fmd_ustat.c \
72*7c478bd9Sstevel@tonic-gate	fmd_xdr_adm.c \
73*7c478bd9Sstevel@tonic-gate	fmd_xdr_api.c
74*7c478bd9Sstevel@tonic-gate
75*7c478bd9Sstevel@tonic-gatePROG = fmd
76*7c478bd9Sstevel@tonic-gateMANIFEST = ../common/$(PROG).xml
77*7c478bd9Sstevel@tonic-gate
78*7c478bd9Sstevel@tonic-gateROOTPDIR = $(ROOT)/usr/lib/fm/$(PROG)
79*7c478bd9Sstevel@tonic-gateROOTVDIR = $(ROOT)/var/fm/$(PROG)
80*7c478bd9Sstevel@tonic-gateROOTVSUB = $(ROOTVDIR)/ckpt $(ROOTVDIR)/rsrc
81*7c478bd9Sstevel@tonic-gateROOTPROG = $(ROOTPDIR)/$(PROG)
82*7c478bd9Sstevel@tonic-gate
83*7c478bd9Sstevel@tonic-gateROOTMANIFESTDIR = $(ROOTSVCSYSTEM)
84*7c478bd9Sstevel@tonic-gateROOTMANIFEST = $(ROOTMANIFESTDIR)/$(PROG).xml
85*7c478bd9Sstevel@tonic-gate
86*7c478bd9Sstevel@tonic-gateOBJS = $(SRCS:%.c=%.o)
87*7c478bd9Sstevel@tonic-gateLINTFILES = $(SRCS:%.c=%.ln)
88*7c478bd9Sstevel@tonic-gate
89*7c478bd9Sstevel@tonic-gateCLEANFILES += ../common/fmd_rpc_api.h ../common/fmd_rpc_adm.h
90*7c478bd9Sstevel@tonic-gateCLEANFILES += fmd_svc_adm.c fmd_svc_api.c fmd_xdr_adm.c fmd_xdr_api.c
91*7c478bd9Sstevel@tonic-gateCLEANFILES += ../common/fmd_error.c
92*7c478bd9Sstevel@tonic-gate
93*7c478bd9Sstevel@tonic-gateDMOD = fmd.so
94*7c478bd9Sstevel@tonic-gateROOTDMOD = $(ROOT)/usr/lib/mdb/proc/$(DMOD)
95*7c478bd9Sstevel@tonic-gateDMOD_SRCS = fmd_mdb.c
96*7c478bd9Sstevel@tonic-gateDMOD_OBJS = $(DMOD_SRCS:%.c=%.o)
97*7c478bd9Sstevel@tonic-gateDMOD_LINT = $(DMOD_SRCS:%.c=%.ln)
98*7c478bd9Sstevel@tonic-gate
99*7c478bd9Sstevel@tonic-gateHDRS = fmd_api.h fmd_fmri.h
100*7c478bd9Sstevel@tonic-gateROOTCDIR = $(ROOT)/etc/fm/$(PROG)
101*7c478bd9Sstevel@tonic-gateROOTHDIR = $(ROOT)/usr/include/fm
102*7c478bd9Sstevel@tonic-gateROOTHDRS = $(HDRS:%=$(ROOTHDIR)/%)
103*7c478bd9Sstevel@tonic-gate
104*7c478bd9Sstevel@tonic-gate$(ROOTHDRS) := FILEMODE = 0644
105*7c478bd9Sstevel@tonic-gate$(ROOTVSUB) := DIRMODE = 0700
106*7c478bd9Sstevel@tonic-gate$(ROOTMANIFEST) := FILEMODE = 0444
107*7c478bd9Sstevel@tonic-gate
108*7c478bd9Sstevel@tonic-gate$(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
109*7c478bd9Sstevel@tonic-gateCPPFLAGS += -I. -I../common
110*7c478bd9Sstevel@tonic-gateCPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT
111*7c478bd9Sstevel@tonic-gateCFLAGS += $(CTF_FLAGS) $(CCVERBOSE) $(XSTRCONST)
112*7c478bd9Sstevel@tonic-gateLINTFLAGS += -mu
113*7c478bd9Sstevel@tonic-gateLDFLAGS += -R/usr/lib/fm
114*7c478bd9Sstevel@tonic-gateLDLIBS += -L$(ROOTLIB)/fm -ldiagcode -lsysevent -luuid -lnvpair
115*7c478bd9Sstevel@tonic-gateLDLIBS += -lexacct -lnsl -lrt -lumem
116*7c478bd9Sstevel@tonic-gate
117*7c478bd9Sstevel@tonic-gate$(DMOD) := CFLAGS += $(CC_PICFLAGS) -G $(XREGSFLAG)
118*7c478bd9Sstevel@tonic-gate$(DMOD) := LDFLAGS += $(ZTEXT) -z combreloc
119*7c478bd9Sstevel@tonic-gate
120*7c478bd9Sstevel@tonic-gate#
121*7c478bd9Sstevel@tonic-gate# rpcgen(1) produces code that wants to be in the foreground if we're compiled
122*7c478bd9Sstevel@tonic-gate# DEBUG, which isn't appropriate for our daemon.  Forcibly undefine this code.
123*7c478bd9Sstevel@tonic-gate# It also produces various lint warnings; turn these off for these files only.
124*7c478bd9Sstevel@tonic-gate# Unfortunately we also have to turn off IGNOR2 for pass2 lint as well.
125*7c478bd9Sstevel@tonic-gate#
126*7c478bd9Sstevel@tonic-gatefmd_svc_adm.o fmd_svc_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
127*7c478bd9Sstevel@tonic-gatefmd_xdr_adm.o fmd_xdr_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
128*7c478bd9Sstevel@tonic-gate
129*7c478bd9Sstevel@tonic-gatefmd_svc_adm.ln fmd_svc_api.ln fmd_xdr_adm.ln fmd_xdr_api.ln := LINTFLAGS += \
130*7c478bd9Sstevel@tonic-gate  -xerroff=E_FUNC_ARG_UNUSED -xerroff=E_FUNC_VAR_UNUSED -xerroff=E_STATIC_UNUSED
131*7c478bd9Sstevel@tonic-gate
132*7c478bd9Sstevel@tonic-gatelint_prog := LINTFLAGS += -xerroff=E_FUNC_RET_ALWAYS_IGNOR2
133*7c478bd9Sstevel@tonic-gate
134*7c478bd9Sstevel@tonic-gate#
135*7c478bd9Sstevel@tonic-gate# Reset STRIPFLAG to the empty string.  FMD is intentionally installed with
136*7c478bd9Sstevel@tonic-gate# a symbol table in order to help agent and diagnosis engine developers.
137*7c478bd9Sstevel@tonic-gate#
138*7c478bd9Sstevel@tonic-gateSTRIPFLAG =
139*7c478bd9Sstevel@tonic-gate
140*7c478bd9Sstevel@tonic-gate.NO_PARALLEL:
141*7c478bd9Sstevel@tonic-gate.PARALLEL: $(OBJS) $(LINTFILES)
142*7c478bd9Sstevel@tonic-gate
143*7c478bd9Sstevel@tonic-gateall: $(PROG) $(DMOD) install_h
144*7c478bd9Sstevel@tonic-gate
145*7c478bd9Sstevel@tonic-gate$(PROG): $(OBJS)
146*7c478bd9Sstevel@tonic-gate	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
147*7c478bd9Sstevel@tonic-gate	$(CTFMERGE) -L VERSION -o $@ $(OBJS)
148*7c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
149*7c478bd9Sstevel@tonic-gate
150*7c478bd9Sstevel@tonic-gate$(DMOD): $(DMOD_OBJS)
151*7c478bd9Sstevel@tonic-gate	$(LINK.c) $(DMOD_OBJS) -o $@
152*7c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
153*7c478bd9Sstevel@tonic-gate
154*7c478bd9Sstevel@tonic-gate%.o: ../common/%.c
155*7c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
156*7c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
157*7c478bd9Sstevel@tonic-gate
158*7c478bd9Sstevel@tonic-gate%.o: %.c
159*7c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
160*7c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
161*7c478bd9Sstevel@tonic-gate
162*7c478bd9Sstevel@tonic-gate../common/fmd_error.c: ../common/mkerror.sh ../common/fmd_error.h
163*7c478bd9Sstevel@tonic-gate	sh ../common/mkerror.sh < ../common/fmd_error.h > $@
164*7c478bd9Sstevel@tonic-gate
165*7c478bd9Sstevel@tonic-gate../common/fmd_rpc_%.c: ../common/fmd_rpc_%.h
166*7c478bd9Sstevel@tonic-gate
167*7c478bd9Sstevel@tonic-gate../common/fmd_rpc.c: ../common/fmd_rpc_adm.h ../common/fmd_rpc_api.h
168*7c478bd9Sstevel@tonic-gate
169*7c478bd9Sstevel@tonic-gate../common/fmd_rpc_%.h: ../common/fmd_rpc_%.x
170*7c478bd9Sstevel@tonic-gate	$(RPCGEN) -CMN -h -o $@ $<
171*7c478bd9Sstevel@tonic-gate
172*7c478bd9Sstevel@tonic-gatefmd_svc_%.c: ../common/fmd_rpc_%.h
173*7c478bd9Sstevel@tonic-gate	$(RPCGEN) -CMN -m -o $@ `echo $< | sed 's/h$$/x/'`
174*7c478bd9Sstevel@tonic-gate
175*7c478bd9Sstevel@tonic-gatefmd_xdr_%.c: ../common/fmd_rpc_%.h
176*7c478bd9Sstevel@tonic-gate	$(RPCGEN) -CMN -c -o $@ `echo $< | sed 's/h$$/x/'`
177*7c478bd9Sstevel@tonic-gate
178*7c478bd9Sstevel@tonic-gateclean:
179*7c478bd9Sstevel@tonic-gate	$(RM) $(OBJS) $(DMOD_OBJS) $(LINTFILES) $(DMOD_LINT)
180*7c478bd9Sstevel@tonic-gate	$(RM) $(CLEANFILES)
181*7c478bd9Sstevel@tonic-gate
182*7c478bd9Sstevel@tonic-gateclobber: clean
183*7c478bd9Sstevel@tonic-gate	$(RM) $(PROG) $(DMOD)
184*7c478bd9Sstevel@tonic-gate
185*7c478bd9Sstevel@tonic-gate%.ln: ../common/%.c
186*7c478bd9Sstevel@tonic-gate	$(LINT.c) -c $<
187*7c478bd9Sstevel@tonic-gate
188*7c478bd9Sstevel@tonic-gate%.ln: %.c
189*7c478bd9Sstevel@tonic-gate	$(LINT.c) -c $<
190*7c478bd9Sstevel@tonic-gate
191*7c478bd9Sstevel@tonic-gatelint_prog: $(LINTFILES)
192*7c478bd9Sstevel@tonic-gate	$(LINT) $(LINTFLAGS) $(LINTFILES) $(LDLIBS)
193*7c478bd9Sstevel@tonic-gate
194*7c478bd9Sstevel@tonic-gatelint_dmod: $(DMOD_LINT)
195*7c478bd9Sstevel@tonic-gate	$(LINT) $(LINTFLAGS) $(DMOD_LINT) $(LDLIBS)
196*7c478bd9Sstevel@tonic-gate
197*7c478bd9Sstevel@tonic-gatelint: lint_prog lint_dmod
198*7c478bd9Sstevel@tonic-gate
199*7c478bd9Sstevel@tonic-gate$(ROOT)/etc/fm:
200*7c478bd9Sstevel@tonic-gate	$(INS.dir)
201*7c478bd9Sstevel@tonic-gate
202*7c478bd9Sstevel@tonic-gate$(ROOTCDIR): $(ROOT)/etc/fm
203*7c478bd9Sstevel@tonic-gate	$(INS.dir)
204*7c478bd9Sstevel@tonic-gate
205*7c478bd9Sstevel@tonic-gate$(ROOTHDIR):
206*7c478bd9Sstevel@tonic-gate	$(INS.dir)
207*7c478bd9Sstevel@tonic-gate
208*7c478bd9Sstevel@tonic-gate$(ROOTHDIR)/%.h: ../common/%.h
209*7c478bd9Sstevel@tonic-gate	$(INS.file)
210*7c478bd9Sstevel@tonic-gate
211*7c478bd9Sstevel@tonic-gate$(ROOTMANIFESTDIR)/%.xml: ../common/%.xml
212*7c478bd9Sstevel@tonic-gate	$(INS.file)
213*7c478bd9Sstevel@tonic-gate
214*7c478bd9Sstevel@tonic-gate$(ROOT)/var/%:
215*7c478bd9Sstevel@tonic-gate	$(INS.dir)
216*7c478bd9Sstevel@tonic-gate
217*7c478bd9Sstevel@tonic-gate$(ROOTVDIR): $(ROOT)/var/fm
218*7c478bd9Sstevel@tonic-gate	$(INS.dir)
219*7c478bd9Sstevel@tonic-gate
220*7c478bd9Sstevel@tonic-gate$(ROOTVSUB): $(ROOTVDIR)
221*7c478bd9Sstevel@tonic-gate	$(INS.dir)
222*7c478bd9Sstevel@tonic-gate
223*7c478bd9Sstevel@tonic-gate$(ROOT)/usr/lib/%:
224*7c478bd9Sstevel@tonic-gate	$(INS.dir)
225*7c478bd9Sstevel@tonic-gate
226*7c478bd9Sstevel@tonic-gate$(ROOTPDIR): $(ROOT)/usr/lib/fm
227*7c478bd9Sstevel@tonic-gate	$(INS.dir)
228*7c478bd9Sstevel@tonic-gate
229*7c478bd9Sstevel@tonic-gate$(ROOTPROG): $(ROOTPDIR) $(PROG)
230*7c478bd9Sstevel@tonic-gate	$(RM) $@; $(INS) -s -m 0555 -f $(@D) $(PROG)
231*7c478bd9Sstevel@tonic-gate
232*7c478bd9Sstevel@tonic-gate$(ROOT)/usr/lib/mdb/proc: $(ROOT)/usr/lib/mdb
233*7c478bd9Sstevel@tonic-gate	$(INS.dir)
234*7c478bd9Sstevel@tonic-gate
235*7c478bd9Sstevel@tonic-gate$(ROOTDMOD): $(ROOT)/usr/lib/mdb/proc $(DMOD)
236*7c478bd9Sstevel@tonic-gate	$(RM) $@; $(INS) -s -m 0555 -f $(@D) $(DMOD)
237*7c478bd9Sstevel@tonic-gate
238*7c478bd9Sstevel@tonic-gateinstall_h: $(ROOTHDIR) $(ROOTHDRS)
239*7c478bd9Sstevel@tonic-gate
240*7c478bd9Sstevel@tonic-gateinstall: all install_h $(ROOTPROG) $(ROOTDMOD) \
241*7c478bd9Sstevel@tonic-gate	$(ROOTCDIR) $(ROOTVDIR) $(ROOTVSUB) $(ROOTMANIFEST)
242*7c478bd9Sstevel@tonic-gate
243*7c478bd9Sstevel@tonic-gatecheck: $(CHKMANIFEST)
244