move 32-bit libs to lib/i386 subdirs & 64-bit libs to lib/
[unleashed.git] / usr / src / cmd / fm / fmd / Makefile.fmd
blobfedadfde74f2dc23d101dc2ac279394a4930b0de
2 # CDDL HEADER START
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.
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.
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]
19 # CDDL HEADER END
22 # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
23 # Copyright 2015 RackTop Systems.
24 # Copyright (c) 2018, Joyent, Inc.
27 .KEEP_STATE:
29 SRCS += fmd.c \
30         fmd_api.c \
31         fmd_alloc.c \
32         fmd_asru.c \
33         fmd_buf.c \
34         fmd_builtin.c \
35         fmd_case.c \
36         fmd_ckpt.c \
37         fmd_conf.c \
38         fmd_ctl.c \
39         fmd_dispq.c \
40         fmd_dr.c \
41         fmd_error.c \
42         fmd_event.c \
43         fmd_eventq.c \
44         fmd_fmri.c \
45         fmd_idspace.c \
46         fmd_list.c \
47         fmd_log.c \
48         fmd_main.c \
49         fmd_module.c \
50         fmd_nv.c \
51         fmd_proc.c \
52         fmd_protocol.c \
53         fmd_rpc.c \
54         fmd_rpc_adm.c \
55         fmd_rpc_api.c \
56         fmd_rtld.c \
57         fmd_scheme.c \
58         fmd_self.c \
59         fmd_serd.c \
60         fmd_string.c \
61         fmd_subr.c \
62         fmd_svc_adm.c \
63         fmd_svc_api.c \
64         fmd_sysevent.c \
65         fmd_thread.c \
66         fmd_time.c \
67         fmd_timerq.c \
68         fmd_topo.c \
69         fmd_trace.c \
70         fmd_ustat.c \
71         fmd_xdr_adm.c \
72         fmd_xdr_api.c \
73         fmd_xprt.c
75 PROG = fmd
76 MANIFEST = ../common/$(PROG).xml
78 MAPFILE-DMOD = $(SRC)/cmd/mdb/common/modules/conf/mapfile-extern
81 LOGADMFILE =    $(PROG).logadm.conf
82 LOGADMDIR =     $(ROOT)/etc/logadm.d
83 LOGADMENT =     $(LOGADMDIR)/$(LOGADMFILE)
84 $(LOGADMENT) := FILEMODE = 444
86 ROOTPDIR = $(ROOT)/usr/lib/fm/$(PROG)
87 ROOTVDIR = $(ROOT)/var/fm/$(PROG)
88 ROOTVSUB = $(ROOTVDIR)/ckpt $(ROOTVDIR)/rsrc $(ROOTVDIR)/xprt
89 ROOTPROG = $(ROOTPDIR)/$(PROG)
91 ROOTMANIFESTDIR = $(ROOTSVCSYSTEM)
92 ROOTMANIFEST = $(ROOTMANIFESTDIR)/$(PROG).xml
94 OBJS = $(SRCS:%.c=%.o)
96 CLEANFILES += ../common/fmd_rpc_api.h ../common/fmd_rpc_adm.h
97 CLEANFILES += fmd_svc_adm.c fmd_svc_api.c fmd_xdr_adm.c fmd_xdr_api.c
98 CLEANFILES += ../common/fmd_error.c
100 DMOD = fmd.so
101 ROOTDMOD = $(ROOT)/usr/lib/mdb/proc/$(DMOD)
102 DMOD_SRCS = fmd_mdb.c
103 DMOD_OBJS = $(DMOD_SRCS:%.c=%.o)
105 HDRS = fmd_api.h fmd_fmri.h
106 ROOTCDIR = $(ROOT)/etc/fm/$(PROG)
107 ROOTHDIR = $(ROOT)/usr/include/fm
108 ROOTHDRS = $(HDRS:%=$(ROOTHDIR)/%)
110 $(ROOTHDRS) := FILEMODE = 0644
111 $(ROOTVSUB) := DIRMODE = 0755
112 $(ROOTMANIFEST) := FILEMODE = 0444
114 $(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
115 CPPFLAGS += -I. -I../common
116 CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS
117 CFLAGS64 += $(CTF_FLAGS)
118 CERRWARN += -Wno-switch
119 CERRWARN += -Wno-parentheses
120 CERRWARN += -Wno-uninitialized
121 CERRWARN += -Wno-unused-variable
122 CERRWARN += -Wno-clobbered
124 # not linted
125 SMATCH=off
127 $(PROG) := LDFLAGS64 += -R/usr/lib/fm
128 $(PROG) := LDLIBS64 += -L$(ROOTLIB64)/fm -ltopo -ldiagcode -lsysevent -lsmbios \
129                 -luuid -lnvpair -lexacct -lumem -ldevinfo -lfmd_msg
131 $(DMOD) := CFLAGS64 += $(CC_PICFLAGS) $(GSHARED) $(XREGSFLAG)
132 $(DMOD) := LDFLAGS64 += $(ZTEXT) $(ZDEFS) $(MAPFILE-DMOD:%=-Wl,-M%)
135 # rpcgen(1) produces code that wants to be in the foreground if we're compiled
136 # DEBUG, which isn't appropriate for our daemon.  Forcibly undefine this code.
138 fmd_svc_adm.o fmd_svc_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
139 fmd_xdr_adm.o fmd_xdr_api.o := CPPFLAGS += -UDEBUG -URPC_SVC_FG
141 .NO_PARALLEL:
142 .PARALLEL: $(OBJS)
144 all: $(PROG) $(DMOD) install_h
146 $(LOGADMDIR):
147         $(INS.dir)
149 $(LOGADMDIR)/%.conf: ../common/%.conf
150         $(INS.file)
152 $(PROG): $(OBJS)
153         $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
154         $(CTFMERGE) -L VERSION -o $@ $(OBJS)
155         $(POST_PROCESS)
157 $(DMOD): $(DMOD_OBJS)
158         $(LINK.c) $(DMOD_OBJS) -o $@ $(LDLIBS) -lc
159         $(POST_PROCESS)
161 %.o: ../common/%.c
162         $(COMPILE.c) $<
163         $(CTFCONVERT_O)
165 %.o: %.c
166         $(COMPILE.c) $<
167         $(CTFCONVERT_O)
169 ../common/fmd_error.c: ../common/mkerror.sh ../common/fmd_error.h
170         sh ../common/mkerror.sh < ../common/fmd_error.h > $@
172 ../common/fmd_rpc_%.c: ../common/fmd_rpc_%.h
174 ../common/fmd_rpc.c: ../common/fmd_rpc_adm.h ../common/fmd_rpc_api.h
176 ../common/fmd_rpc_%.h: ../common/fmd_rpc_%.x
177         $(RPCGEN) -CMN -h -o $@ $<
179 fmd_svc_%.c: ../common/fmd_rpc_%.h
180         $(RPCGEN) -CMN -m -o $@ `echo $< | sed 's/h$$/x/'`
182 fmd_xdr_%.c: ../common/fmd_rpc_%.h
183         $(RPCGEN) -CMN -c -o $@ `echo $< | sed 's/h$$/x/'`
185 clean:
186         $(RM) $(OBJS) $(DMOD_OBJS)
187         $(RM) $(CLEANFILES)
189 clobber: clean
190         $(RM) $(PROG) $(DMOD)
192 $(ROOT)/etc/fm:
193         $(INS.dir)
195 $(ROOTCDIR): $(ROOT)/etc/fm
196         $(INS.dir)
198 $(ROOTHDIR):
199         $(INS.dir)
201 $(ROOTHDIR)/%.h: ../common/%.h
202         $(INS.file)
204 $(ROOTMANIFESTDIR)/%.xml: ../common/%.xml
205         $(INS.file)
207 $(ROOT)/var/%:
208         $(INS.dir)
210 $(ROOTVDIR): $(ROOT)/var/fm
211         $(INS.dir)
213 $(ROOTVSUB): $(ROOTVDIR)
214         $(INS.dir)
216 $(ROOT)/usr/lib/fm:
217         $(INS.dir)
219 $(ROOTPDIR): $(ROOT)/usr/lib/fm
220         $(INS.dir)
222 $(ROOTPROG): $(ROOTPDIR) $(PROG)
223         $(INS) -m 0555 $(PROG) $@
225 $(ROOT)/usr/lib/mdb/proc: $(ROOT)/usr/lib/mdb
226         $(INS.dir)
228 $(ROOTDMOD): $(ROOT)/usr/lib/mdb/proc $(DMOD)
229         $(INS) -m 0555 $(DMOD) $@
231 install_h: $(ROOTHDIR) $(ROOTHDRS)
233 install: all install_h $(ROOTPROG) $(ROOTDMOD) $(LOGADMDIR) $(LOGADMENT) \
234         $(ROOTCDIR) $(ROOTVDIR) $(ROOTVSUB) $(ROOTMANIFEST)
236 check: $(CHKMANIFEST)