xref: /illumos-gate/usr/src/cmd/allocate/Makefile (revision 4445fffbbb1ea25fd0e9ea68b9380dd7a6709025)
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#
23# Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
24#
25
26ETCTSOLFILES =	devalloc_defaults
27
28include		../Makefile.cmd
29
30ROOTSEC =	$(ROOTETC)/security
31ROOTSECDEV =	$(ROOTSEC)/dev
32ROOTSECLIB =	$(ROOTSEC)/lib
33ROOTSECAUD =	$(ROOTSEC)/audio
34ROOTDIRS =	$(ROOTSECDEV) $(ROOTSECLIB) $(ROOTSECAUD)
35
36ROOTMANIFESTDIR=	$(ROOTSVCSYSTEMDEVICE)
37SVCMETHOD =	svc-allocate
38MANIFEST =	allocate.xml
39
40RTLCKS =	audio fd0 sr0 st0 st1
41CLEANfd =	fd_clean
42CLEANsr =	sr_clean
43CLEANst =	st_clean
44CLEANaudio =	audio_clean
45CLEANdisk =	disk_clean
46CLEAN_SCRIPTS =	$(CLEANfd) $(CLEANsr) $(CLEANst) $(CLEANaudio) $(CLEANdisk)
47WDW_SCRIPTS =	wdwmsg wdwwrapper
48WDW_LINKS =	$(CLEANaudio) $(CLEANdisk) $(CLEANst)
49SCRIPTS =	$(CLEAN_SCRIPTS) $(WDW_SCRIPTS)
50ALLSCRIPTS =	allscripts.sh
51
52PROGalloc =	allocate
53PROGmkdevalloc =	mkdevalloc
54PROGdminfo =	dminfo
55PROGaddalloc =	add_allocatable
56PROG =		$(PROGalloc) $(PROGmkdevalloc) $(PROGdminfo) \
57	$(PROGaddalloc)
58
59LINKPROGalloc =	deallocate list_devices
60LINKPROGmkdevalloc = mkdevmaps
61LINKPROGaddalloc = remove_allocatable
62
63POFILE =	allocate_all.po
64POFILES =	$(OBJS:%.o=%.po) $(ALLSCRIPTS:%.sh=%.po)
65
66DFLAGS +=	-D_REENTRANT
67CPPFLAGS +=	$(DFLAGS)
68
69ROOTLOCKS =	$(RTLCKS:%=$(ROOTSECDEV)/%)
70ROOTSCRIPTS =	$(SCRIPTS:%=$(ROOTSECLIB)/%)
71ROOTWDWLINKS =	$(WDW_LINKS:%=$(ROOTSECLIB)/%.windowing)
72
73ROOTPROG =	$(PROGallocate:%=$(ROOTUSRSBIN)/%) \
74		$(PROGmkdevalloc:%=$(ROOTUSRSBIN)/%) \
75		$(PROGdminfo:%=$(ROOTUSRSBIN)/%) \
76		$(PROGaddaloc:%=$(ROOTUSRSBIN)/%)
77ROOTLINKalloc =	$(LINKPROGalloc:%=$(ROOTUSRSBIN)/%)
78ROOTLINKmkdevalloc = $(LINKPROGmkdevalloc:%=$(ROOTUSRSBIN)/%)
79ROOTLINKaddalloc = $(LINKPROGaddalloc:%=$(ROOTUSRSBIN)/%)
80ROOTLINKS =	$(ROOTLINKalloc) $(ROOTLINKmkdevalloc) $(ROOTLINKaddalloc)
81
82PROGallocOBJS =		allocate.o allocate3.o
83PROGmkdevallocOBJS =	mkdevalloc.o
84PROGdminfoOBJS =	dminfo.o
85PROGaddallocOBJS =	add_allocatable.o
86
87OBJS =		$(PROGallocOBJS) \
88		$(PROGmkdevallocOBJS) \
89		$(PROGdminfoOBJS) \
90		$(PROGaddallocOBJS)
91
92SRCS =		$(OBJS:%.o=%.c)
93
94$(ROOTUSRSBIN)/% :=	FILEMODE = 555
95$(ROOTUSRSBIN)/allocate :=	FILEMODE = 4555
96$(ROOTSECDEV)/% :=	FILEMODE = 0400
97$(ROOTSECLIB)/% :=	FILEMODE = 0555
98
99lint :=			LDLIBS += -lbsm -lsec -lsecdb -ldevinfo -ltsol
100
101$(PROGalloc) :=		LDLIBS += -lbsm -lsec -lsecdb -ldevinfo -ltsol
102$(PROGmkdevalloc) :=	LDLIBS += -lbsm
103$(PROGdminfo) :=	LDLIBS += -lbsm
104$(PROGaddalloc) :=	LDLIBS += -lbsm -lsecdb -ltsol
105
106CLOBBERFILES +=	$(SCRIPTS)
107
108.KEEP_STATE:
109
110all :		$(PROG) $(RTLCKS) $(SCRIPTS)
111
112install :	$(PROG) $(ROOTDIRS) $(ROOTPROG) $(ROOTLOCKS) \
113		$(ROOTSCRIPTS) $(ROOTLINKS) $(ROOTWDWLINKS) \
114		$(ROOTETCTSOLFILES) $(ROOTMANIFEST) $(ROOTSVCMETHOD)
115$(RTLCKS):
116		$(TOUCH) $@
117
118$(ROOTSECLIB)/%: %.sh
119		$(INS.rename)
120
121$(PROGalloc) :	$(PROGallocOBJS)
122		$(LINK.c) $(PROGallocOBJS) -o $@ $(LDLIBS)
123		$(POST_PROCESS)
124
125$(PROGaddalloc) :	$(PROGaddallocOBJS)
126		$(LINK.c) $(PROGaddallocOBJS) -o $@ $(LDLIBS)
127		$(POST_PROCESS)
128
129$(PROGmkdevalloc) :	$(PROGmkdevallocOBJS)
130			$(LINK.c) $(PROGmkdevallocOBJS) -o $@ $(LDLIBS)
131			$(POST_PROCESS)
132
133$(PROGdminfo) :	$(PROGdminfoOBJS)
134		$(LINK.c) $(PROGdminfoOBJS) -o $@ $(LDLIBS)
135		$(POST_PROCESS)
136
137$(ROOTDIRS) :
138		$(INS.dir)
139
140$(ROOTSECDEV)/%: %
141		$(INS.file)
142
143$(ROOTSECLIB)/%: %
144		$(RM) $@
145		$(INS.file)
146
147$(ROOTLINKalloc) :	$(PROGalloc:%=$(ROOTUSRSBIN)/%)
148			$(RM) $@
149			$(LN) $(PROGalloc:%=$(ROOTUSRSBIN)/%) $@
150
151$(ROOTLINKaddalloc) :	$(PROGaddalloc:%=$(ROOTUSRSBIN)/%)
152			$(RM) $@
153			$(LN) $(PROGaddalloc:%=$(ROOTUSRSBIN)/%) $@
154
155$(ROOTLINKmkdevalloc) :	$(PROGmkdevalloc:%=$(ROOTUSRSBIN)/%)
156			$(RM) $@
157			$(LN) $(PROGmkdevalloc:%=$(ROOTUSRSBIN)/%) $@
158
159
160$(ROOTETCSECLIB)/%.windowing: %
161	$(RM) $@
162	$(SYMLINK) $< $@
163
164$(POFILE):      $(POFILES)
165		$(RM) $@
166		$(CAT) $(POFILES) > $@
167
168#
169# Concatenate all the scripts into one before we build the catalogue.
170# Done to shrink the catalogue since some messages are shared between
171# the various scripts.
172#
173$(ALLSCRIPTS):	$(SCRIPTS:%=%.sh)
174		$(CAT) $(SCRIPTS:%=%.sh) > $@
175
176clean :
177		$(RM) $(PROG) $(RTLCKS) $(OBJS) \
178		$(SCRIPTS) $(ALLSCRIPTS) $(POFILE) $(POFILES)
179
180lint :		lint_SRCS
181
182strip :
183		$(STRIP) $(PROG)
184
185include		../Makefile.targ
186