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