xref: /illumos-gate/usr/src/cmd/fm/fmd/Makefile.fmd (revision d17be682)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
582d33c01Sav# Common Development and Distribution License (the "License").
682d33c01Sav# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
217c478bd9Sstevel@tonic-gate#
22f6e214c7SGavin Maltby# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
23d50bcaaeSAndrew Stormont# Copyright 2015 RackTop Systems.
2432e09e17SJohn Levon# Copyright 2019, Joyent, Inc.
257c478bd9Sstevel@tonic-gate#
267c478bd9Sstevel@tonic-gate
277c478bd9Sstevel@tonic-gate.KEEP_STATE:
287c478bd9Sstevel@tonic-gate
297c478bd9Sstevel@tonic-gateSRCS += fmd.c \
307c478bd9Sstevel@tonic-gate	fmd_api.c \
317c478bd9Sstevel@tonic-gate	fmd_alloc.c \
327c478bd9Sstevel@tonic-gate	fmd_asru.c \
337c478bd9Sstevel@tonic-gate	fmd_buf.c \
347c478bd9Sstevel@tonic-gate	fmd_builtin.c \
357c478bd9Sstevel@tonic-gate	fmd_case.c \
367c478bd9Sstevel@tonic-gate	fmd_ckpt.c \
377c478bd9Sstevel@tonic-gate	fmd_conf.c \
387c478bd9Sstevel@tonic-gate	fmd_ctl.c \
397c478bd9Sstevel@tonic-gate	fmd_dispq.c \
407c478bd9Sstevel@tonic-gate	fmd_dr.c \
417c478bd9Sstevel@tonic-gate	fmd_error.c \
427c478bd9Sstevel@tonic-gate	fmd_event.c \
437c478bd9Sstevel@tonic-gate	fmd_eventq.c \
447c478bd9Sstevel@tonic-gate	fmd_fmri.c \
457c478bd9Sstevel@tonic-gate	fmd_idspace.c \
467c478bd9Sstevel@tonic-gate	fmd_list.c \
477c478bd9Sstevel@tonic-gate	fmd_log.c \
487c478bd9Sstevel@tonic-gate	fmd_main.c \
497c478bd9Sstevel@tonic-gate	fmd_module.c \
507c478bd9Sstevel@tonic-gate	fmd_nv.c \
517c478bd9Sstevel@tonic-gate	fmd_proc.c \
527c478bd9Sstevel@tonic-gate	fmd_protocol.c \
537c478bd9Sstevel@tonic-gate	fmd_rpc.c \
547c478bd9Sstevel@tonic-gate	fmd_rpc_adm.c \
557c478bd9Sstevel@tonic-gate	fmd_rpc_api.c \
567c478bd9Sstevel@tonic-gate	fmd_rtld.c \
577c478bd9Sstevel@tonic-gate	fmd_scheme.c \
587c478bd9Sstevel@tonic-gate	fmd_self.c \
597c478bd9Sstevel@tonic-gate	fmd_serd.c \
607c478bd9Sstevel@tonic-gate	fmd_string.c \
617c478bd9Sstevel@tonic-gate	fmd_subr.c \
627c478bd9Sstevel@tonic-gate	fmd_svc_adm.c \
637c478bd9Sstevel@tonic-gate	fmd_svc_api.c \
64d9638e54Smws	fmd_sysevent.c \
657c478bd9Sstevel@tonic-gate	fmd_thread.c \
667c478bd9Sstevel@tonic-gate	fmd_time.c \
677c478bd9Sstevel@tonic-gate	fmd_timerq.c \
680eb822a1Scindi	fmd_topo.c \
697c478bd9Sstevel@tonic-gate	fmd_trace.c \
707c478bd9Sstevel@tonic-gate	fmd_ustat.c \
717c478bd9Sstevel@tonic-gate	fmd_xdr_adm.c \
72d9638e54Smws	fmd_xdr_api.c \
73d9638e54Smws	fmd_xprt.c
747c478bd9Sstevel@tonic-gate
757c478bd9Sstevel@tonic-gatePROG = fmd
767c478bd9Sstevel@tonic-gateMANIFEST = ../common/$(PROG).xml
777c478bd9Sstevel@tonic-gate
7867e3a03eSrieMAPFILE-DMOD = $(SRC)/cmd/mdb/common/modules/conf/mapfile-extern
7967e3a03eSrie
8067e3a03eSrie
81f6e214c7SGavin MaltbyLOGADMFILE =	$(PROG).logadm.conf
82f6e214c7SGavin MaltbyLOGADMDIR =	$(ROOT)/etc/logadm.d
83f6e214c7SGavin MaltbyLOGADMENT =	$(LOGADMDIR)/$(LOGADMFILE)
84f6e214c7SGavin Maltby$(LOGADMENT) :=	FILEMODE = 444
85f6e214c7SGavin Maltby
867c478bd9Sstevel@tonic-gateROOTPDIR = $(ROOT)/usr/lib/fm/$(PROG)
877c478bd9Sstevel@tonic-gateROOTVDIR = $(ROOT)/var/fm/$(PROG)
88d9638e54SmwsROOTVSUB = $(ROOTVDIR)/ckpt $(ROOTVDIR)/rsrc $(ROOTVDIR)/xprt
897c478bd9Sstevel@tonic-gateROOTPROG = $(ROOTPDIR)/$(PROG)
907c478bd9Sstevel@tonic-gate
917c478bd9Sstevel@tonic-gateROOTMANIFESTDIR = $(ROOTSVCSYSTEM)
927c478bd9Sstevel@tonic-gateROOTMANIFEST = $(ROOTMANIFESTDIR)/$(PROG).xml
937c478bd9Sstevel@tonic-gate
947c478bd9Sstevel@tonic-gateOBJS = $(SRCS:%.c=%.o)
957c478bd9Sstevel@tonic-gate
967c478bd9Sstevel@tonic-gateCLEANFILES += ../common/fmd_rpc_api.h ../common/fmd_rpc_adm.h
977c478bd9Sstevel@tonic-gateCLEANFILES += fmd_svc_adm.c fmd_svc_api.c fmd_xdr_adm.c fmd_xdr_api.c
987c478bd9Sstevel@tonic-gateCLEANFILES += ../common/fmd_error.c
997c478bd9Sstevel@tonic-gate
1007c478bd9Sstevel@tonic-gateDMOD = fmd.so
1017c478bd9Sstevel@tonic-gateROOTDMOD = $(ROOT)/usr/lib/mdb/proc/$(DMOD)
1027c478bd9Sstevel@tonic-gateDMOD_SRCS = fmd_mdb.c
1037c478bd9Sstevel@tonic-gateDMOD_OBJS = $(DMOD_SRCS:%.c=%.o)
1047c478bd9Sstevel@tonic-gate
1057c478bd9Sstevel@tonic-gateHDRS = fmd_api.h fmd_fmri.h
1067c478bd9Sstevel@tonic-gateROOTCDIR = $(ROOT)/etc/fm/$(PROG)
1077c478bd9Sstevel@tonic-gateROOTHDIR = $(ROOT)/usr/include/fm
1087c478bd9Sstevel@tonic-gateROOTHDRS = $(HDRS:%=$(ROOTHDIR)/%)
1097c478bd9Sstevel@tonic-gate
1107c478bd9Sstevel@tonic-gate$(ROOTHDRS) := FILEMODE = 0644
111540db9a9SStephen Hanson$(ROOTVSUB) := DIRMODE = 0755
1127c478bd9Sstevel@tonic-gate$(ROOTMANIFEST) := FILEMODE = 0444
1137c478bd9Sstevel@tonic-gate
1147c478bd9Sstevel@tonic-gate$(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
1157c478bd9Sstevel@tonic-gateCPPFLAGS += -I. -I../common
1167c478bd9Sstevel@tonic-gateCPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT
117*d17be682SRichard LoweCFLAGS += $(CTF_FLAGS) $(CCVERBOSE)
1187014882cSRichard LoweCERRWARN += -_gcc=-Wno-switch
1197014882cSRichard LoweCERRWARN += -_gcc=-Wno-parentheses
120d3b5f563SJohn LevonCERRWARN += $(CNOWARN_UNINIT)
1217014882cSRichard LoweCERRWARN += -_gcc=-Wno-clobbered
12232e09e17SJohn Levon$(RELEASE_BUILD)CERRWARN += -_gcc=-Wno-unused-but-set-variable
12332e09e17SJohn LevonCERRWARN += -_gcc=-Wno-unused-variable
12467e3a03eSrie
1255661bb76SJohn Levon# not linted
1265661bb76SJohn LevonSMATCH=off
1275661bb76SJohn Levon
12867e3a03eSrie$(PROG) := LDFLAGS += -R/usr/lib/fm
12967e3a03eSrie$(PROG) := LDLIBS += -L$(ROOTLIB)/fm -ltopo -ldiagcode -lsysevent -lsmbios \
13088045cffSRobert Johnston		-luuid -lnvpair -lexacct -lnsl -lumem -ldevinfo -lfmd_msg
1317c478bd9Sstevel@tonic-gate
132*d17be682SRichard Lowe$(DMOD) := CFLAGS += $(CC_PICFLAGS) $(GSHARED)
13385f4cb87SRichard Lowe$(DMOD) := LDFLAGS += $(ZTEXT) $(ZDEFS) $(MAPFILE-DMOD:%=-Wl,-M%)
1347c478bd9Sstevel@tonic-gate
1357c478bd9Sstevel@tonic-gate#
1367c478bd9Sstevel@tonic-gate# rpcgen(1) produces code that wants to be in the foreground if we're compiled
1377c478bd9Sstevel@tonic-gate# DEBUG, which isn't appropriate for our daemon.  Forcibly undefine this code.
1387c478bd9Sstevel@tonic-gate#
1397c478bd9Sstevel@tonic-gatefmd_svc_adm.o fmd_svc_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
1407c478bd9Sstevel@tonic-gatefmd_xdr_adm.o fmd_xdr_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
1417c478bd9Sstevel@tonic-gate
1427c478bd9Sstevel@tonic-gate.NO_PARALLEL:
14385f4cb87SRichard Lowe.PARALLEL: $(OBJS)
1447c478bd9Sstevel@tonic-gate
1457c478bd9Sstevel@tonic-gateall: $(PROG) $(DMOD) install_h
1467c478bd9Sstevel@tonic-gate
147f6e214c7SGavin Maltby$(LOGADMDIR):
148f6e214c7SGavin Maltby	$(INS.dir)
149f6e214c7SGavin Maltby
150f6e214c7SGavin Maltby$(LOGADMDIR)/%.conf: ../common/%.conf
151f6e214c7SGavin Maltby	$(INS.file)
152f6e214c7SGavin Maltby
1537c478bd9Sstevel@tonic-gate$(PROG): $(OBJS)
1547c478bd9Sstevel@tonic-gate	$(LINK.c) $(OBJS) -o $@ $(LDLIBS)
1557c478bd9Sstevel@tonic-gate	$(CTFMERGE) -L VERSION -o $@ $(OBJS)
1567c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1577c478bd9Sstevel@tonic-gate
1587c478bd9Sstevel@tonic-gate$(DMOD): $(DMOD_OBJS)
159d50bcaaeSAndrew Stormont	$(LINK.c) $(DMOD_OBJS) -o $@ $(LDLIBS) -lc
1607c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1617c478bd9Sstevel@tonic-gate
1627c478bd9Sstevel@tonic-gate%.o: ../common/%.c
1637c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
1647c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1657c478bd9Sstevel@tonic-gate
1667c478bd9Sstevel@tonic-gate%.o: %.c
1677c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
1687c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1697c478bd9Sstevel@tonic-gate
1707c478bd9Sstevel@tonic-gate../common/fmd_error.c: ../common/mkerror.sh ../common/fmd_error.h
1717c478bd9Sstevel@tonic-gate	sh ../common/mkerror.sh < ../common/fmd_error.h > $@
1727c478bd9Sstevel@tonic-gate
1737c478bd9Sstevel@tonic-gate../common/fmd_rpc_%.c: ../common/fmd_rpc_%.h
1747c478bd9Sstevel@tonic-gate
1757c478bd9Sstevel@tonic-gate../common/fmd_rpc.c: ../common/fmd_rpc_adm.h ../common/fmd_rpc_api.h
1767c478bd9Sstevel@tonic-gate
1777c478bd9Sstevel@tonic-gate../common/fmd_rpc_%.h: ../common/fmd_rpc_%.x
1787c478bd9Sstevel@tonic-gate	$(RPCGEN) -CMN -h -o $@ $<
1797c478bd9Sstevel@tonic-gate
1803b379e2aSMarcel Telkafmd_svc_%.c: ../common/fmd_rpc_%.x
1813b379e2aSMarcel Telka	$(RPCGEN) -CMN -m -o $@ $<
1827c478bd9Sstevel@tonic-gate
1833b379e2aSMarcel Telkafmd_xdr_%.c: ../common/fmd_rpc_%.x
1843b379e2aSMarcel Telka	$(RPCGEN) -CMN -c -o $@ $<
1857c478bd9Sstevel@tonic-gate
1867c478bd9Sstevel@tonic-gateclean:
18785f4cb87SRichard Lowe	$(RM) $(OBJS) $(DMOD_OBJS)
1887c478bd9Sstevel@tonic-gate	$(RM) $(CLEANFILES)
1897c478bd9Sstevel@tonic-gate
1907c478bd9Sstevel@tonic-gateclobber: clean
1917c478bd9Sstevel@tonic-gate	$(RM) $(PROG) $(DMOD)
1927c478bd9Sstevel@tonic-gate
1937c478bd9Sstevel@tonic-gate$(ROOT)/etc/fm:
1947c478bd9Sstevel@tonic-gate	$(INS.dir)
1957c478bd9Sstevel@tonic-gate
1967c478bd9Sstevel@tonic-gate$(ROOTCDIR): $(ROOT)/etc/fm
1977c478bd9Sstevel@tonic-gate	$(INS.dir)
1987c478bd9Sstevel@tonic-gate
1997c478bd9Sstevel@tonic-gate$(ROOTHDIR):
2007c478bd9Sstevel@tonic-gate	$(INS.dir)
2017c478bd9Sstevel@tonic-gate
2027c478bd9Sstevel@tonic-gate$(ROOTHDIR)/%.h: ../common/%.h
2037c478bd9Sstevel@tonic-gate	$(INS.file)
2047c478bd9Sstevel@tonic-gate
2057c478bd9Sstevel@tonic-gate$(ROOTMANIFESTDIR)/%.xml: ../common/%.xml
2067c478bd9Sstevel@tonic-gate	$(INS.file)
2077c478bd9Sstevel@tonic-gate
2087c478bd9Sstevel@tonic-gate$(ROOT)/var/%:
2097c478bd9Sstevel@tonic-gate	$(INS.dir)
2107c478bd9Sstevel@tonic-gate
2117c478bd9Sstevel@tonic-gate$(ROOTVDIR): $(ROOT)/var/fm
2127c478bd9Sstevel@tonic-gate	$(INS.dir)
2137c478bd9Sstevel@tonic-gate
2147c478bd9Sstevel@tonic-gate$(ROOTVSUB): $(ROOTVDIR)
2157c478bd9Sstevel@tonic-gate	$(INS.dir)
2167c478bd9Sstevel@tonic-gate
217162ba6eaSmws$(ROOT)/usr/lib/fm:
2187c478bd9Sstevel@tonic-gate	$(INS.dir)
2197c478bd9Sstevel@tonic-gate
2207c478bd9Sstevel@tonic-gate$(ROOTPDIR): $(ROOT)/usr/lib/fm
2217c478bd9Sstevel@tonic-gate	$(INS.dir)
2227c478bd9Sstevel@tonic-gate
2237c478bd9Sstevel@tonic-gate$(ROOTPROG): $(ROOTPDIR) $(PROG)
2247c478bd9Sstevel@tonic-gate	$(RM) $@; $(INS) -s -m 0555 -f $(@D) $(PROG)
2257c478bd9Sstevel@tonic-gate
2267c478bd9Sstevel@tonic-gate$(ROOT)/usr/lib/mdb/proc: $(ROOT)/usr/lib/mdb
2277c478bd9Sstevel@tonic-gate	$(INS.dir)
2287c478bd9Sstevel@tonic-gate
2297c478bd9Sstevel@tonic-gate$(ROOTDMOD): $(ROOT)/usr/lib/mdb/proc $(DMOD)
2307c478bd9Sstevel@tonic-gate	$(RM) $@; $(INS) -s -m 0555 -f $(@D) $(DMOD)
2317c478bd9Sstevel@tonic-gate
2327c478bd9Sstevel@tonic-gateinstall_h: $(ROOTHDIR) $(ROOTHDRS)
2337c478bd9Sstevel@tonic-gate
234f6e214c7SGavin Maltbyinstall: all install_h $(ROOTPROG) $(ROOTDMOD) $(LOGADMDIR) $(LOGADMENT) \
2357c478bd9Sstevel@tonic-gate	$(ROOTCDIR) $(ROOTVDIR) $(ROOTVSUB) $(ROOTMANIFEST)
2367c478bd9Sstevel@tonic-gate
2377c478bd9Sstevel@tonic-gatecheck: $(CHKMANIFEST)
238