xref: /illumos-gate/usr/src/uts/Makefile.targ (revision 7c478bd95313f5f23a4c958a745db2134aa0324)
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 2004 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#	This Makefiles contains the common targets and definitions for
29*7c478bd9Sstevel@tonic-gate#	all kernels. It is to be included in the Makefiles for specific
30*7c478bd9Sstevel@tonic-gate#	implementation architectures and processor architecture dependent
31*7c478bd9Sstevel@tonic-gate#	modules: i.e.: all driving kernel Makefiles.
32*7c478bd9Sstevel@tonic-gate#
33*7c478bd9Sstevel@tonic-gate
34*7c478bd9Sstevel@tonic-gate#
35*7c478bd9Sstevel@tonic-gate#	Default rule for building the lint library directory:
36*7c478bd9Sstevel@tonic-gate#
37*7c478bd9Sstevel@tonic-gate$(LINT_LIB_DIR):
38*7c478bd9Sstevel@tonic-gate	-@mkdir -p $@ 2> /dev/null
39*7c478bd9Sstevel@tonic-gate
40*7c478bd9Sstevel@tonic-gate#
41*7c478bd9Sstevel@tonic-gate#	All C objects depend on inline files. However, cc(1) doesn't generate
42*7c478bd9Sstevel@tonic-gate#	the correct dependency info. Also, these Makefiles don't contain a
43*7c478bd9Sstevel@tonic-gate#	separate list of C-derived object files (but it is light weight to
44*7c478bd9Sstevel@tonic-gate#	let the assembler files think they depend upon this when they don't).
45*7c478bd9Sstevel@tonic-gate#	Fortunately, the inline files won't change very often. So, for now,
46*7c478bd9Sstevel@tonic-gate#	all objects depend on the inline files. Remove this when the inliner
47*7c478bd9Sstevel@tonic-gate#	is fixed to drop correct dependency information.
48*7c478bd9Sstevel@tonic-gate#
49*7c478bd9Sstevel@tonic-gate$(OBJECTS): $(INLINES)
50*7c478bd9Sstevel@tonic-gate
51*7c478bd9Sstevel@tonic-gate#
52*7c478bd9Sstevel@tonic-gate#	Partially link .o files to generate the kmod. The fake dependency
53*7c478bd9Sstevel@tonic-gate#	on modstubs simplifies things...
54*7c478bd9Sstevel@tonic-gate#	ELFSIGN_MOD is defined in the individual KCF plug-in modules Makefiles,
55*7c478bd9Sstevel@tonic-gate#	and will sign the ELF objects using elfsign(1).
56*7c478bd9Sstevel@tonic-gate#
57*7c478bd9Sstevel@tonic-gate$(BINARY):		$(OBJECTS)
58*7c478bd9Sstevel@tonic-gate	$(LD) -r $(LDFLAGS) -o $@ $(OBJECTS)
59*7c478bd9Sstevel@tonic-gate	$(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
60*7c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
61*7c478bd9Sstevel@tonic-gate	$(ELFSIGN_MOD)
62*7c478bd9Sstevel@tonic-gate
63*7c478bd9Sstevel@tonic-gate#
64*7c478bd9Sstevel@tonic-gate#	This target checks each kmod for undefined entry points. It does not
65*7c478bd9Sstevel@tonic-gate#	modify the kmod in any way.
66*7c478bd9Sstevel@tonic-gate#
67*7c478bd9Sstevel@tonic-gate$(MODULE).check:	FRC
68*7c478bd9Sstevel@tonic-gate	@BUILD_TYPE=DBG32 $(MAKE) $(MODULE).check.targ
69*7c478bd9Sstevel@tonic-gate
70*7c478bd9Sstevel@tonic-gate$(MODULE).check.targ:	$(BINARY) $(OBJECTS) $(EXTRA_CHECK_OBJS) $(UNIX_O) $(MODSTUBS_O) $(GENLIB)
71*7c478bd9Sstevel@tonic-gate	$(LD) -o /dev/null $(OBJECTS) $(EXTRA_CHECK_OBJS) $(UNIX_O) $(MODSTUBS_O) $(GENLIB)
72*7c478bd9Sstevel@tonic-gate
73*7c478bd9Sstevel@tonic-gate#
74*7c478bd9Sstevel@tonic-gate#	Module lint library construction targets.
75*7c478bd9Sstevel@tonic-gate#
76*7c478bd9Sstevel@tonic-gateMOD_LINT_LIB	= $(LINT_LIB_DIR)/llib-l$(LINT_MODULE).ln
77*7c478bd9Sstevel@tonic-gate
78*7c478bd9Sstevel@tonic-gate$(MOD_LINT_LIB):	$(LINT_LIB_DIR) $(LINTS)
79*7c478bd9Sstevel@tonic-gate	@-$(ECHO) "\n$(OBJS_DIR)/$(MODULE): (library construction):"
80*7c478bd9Sstevel@tonic-gate	@$(LINT) -o $(LINT_MODULE) $(LINTFLAGS) $(LINTS)
81*7c478bd9Sstevel@tonic-gate	@$(MV) $(@F) $@
82*7c478bd9Sstevel@tonic-gate
83*7c478bd9Sstevel@tonic-gate$(LINT_MODULE).lint:	$(MOD_LINT_LIB) $(LINT_LIB) $(GEN_LINT_LIB)
84*7c478bd9Sstevel@tonic-gate	@-$(ECHO) "\n$(OBJS_DIR)/$(LINT_MODULE): global crosschecks:"
85*7c478bd9Sstevel@tonic-gate	@$(LINT) $(LINTFLAGS) $(MOD_LINT_LIB) $(LINT_LIB) $(GEN_LINT_LIB)
86*7c478bd9Sstevel@tonic-gate
87*7c478bd9Sstevel@tonic-gate#
88*7c478bd9Sstevel@tonic-gate# Since assym.h is a derived file, the dependency must be explicit for
89*7c478bd9Sstevel@tonic-gate# all files including this file. (This is only actually required in the
90*7c478bd9Sstevel@tonic-gate# instance when the .nse_depinfo file does not exist.) It may seem that
91*7c478bd9Sstevel@tonic-gate# the lint targets should also have a similar dependency, but they don't
92*7c478bd9Sstevel@tonic-gate# since only C headers are included when #defined(lint) is true. The
93*7c478bd9Sstevel@tonic-gate# actual lists are defined in */Makefile.files.
94*7c478bd9Sstevel@tonic-gate#
95*7c478bd9Sstevel@tonic-gate$(ASSYM_DEPS:%=$(OBJS_DIR)/%):	$(DSF_DIR)/$(OBJS_DIR)/assym.h
96*7c478bd9Sstevel@tonic-gate
97*7c478bd9Sstevel@tonic-gate#
98*7c478bd9Sstevel@tonic-gate#	Everybody need to know how to create a modstubs.o built with the
99*7c478bd9Sstevel@tonic-gate#	appropriate flags and located in the appropriate location.
100*7c478bd9Sstevel@tonic-gate#
101*7c478bd9Sstevel@tonic-gate$(MODSTUBS_O):	$(MODSTUBS)
102*7c478bd9Sstevel@tonic-gate	$(COMPILE.s) -o $@ $(MODSTUBS)
103*7c478bd9Sstevel@tonic-gate
104*7c478bd9Sstevel@tonic-gate$(LINTS_DIR)/modstubs.ln:	$(MODSTUBS)
105*7c478bd9Sstevel@tonic-gate	@($(LHEAD) $(LINT.s) $(MODSTUBS) $(LTAIL))
106*7c478bd9Sstevel@tonic-gate
107*7c478bd9Sstevel@tonic-gate#
108*7c478bd9Sstevel@tonic-gate# Build the source file which contains the kernel's utsname,
109*7c478bd9Sstevel@tonic-gate# with release, version and machine set as follows:
110*7c478bd9Sstevel@tonic-gate#
111*7c478bd9Sstevel@tonic-gate#	release: contents of $(RELEASE) (Spaces replaced by '_')
112*7c478bd9Sstevel@tonic-gate#	version: contents of $(PATCHID) (Spaces replaced by '_')
113*7c478bd9Sstevel@tonic-gate#	machine: contents of $(PLATFORM)
114*7c478bd9Sstevel@tonic-gate#
115*7c478bd9Sstevel@tonic-gate# Build environment information is only contained in the comment section.
116*7c478bd9Sstevel@tonic-gate#
117*7c478bd9Sstevel@tonic-gate# The version string, normally the variable VERSION, is set to display
118*7c478bd9Sstevel@tonic-gate# environmental information temporarily while in development because
119*7c478bd9Sstevel@tonic-gate# it provides a little more useful information.
120*7c478bd9Sstevel@tonic-gate#
121*7c478bd9Sstevel@tonic-gateVERSION_STRING	= ($(ECHO) $$LOGNAME [\`basename $$CODEMGR_WS\`] \\\c; date +%D)
122*7c478bd9Sstevel@tonic-gate$(INTERNAL_RELEASE_BUILD)VERSION_STRING = $(ECHO) $(PATCHID)
123*7c478bd9Sstevel@tonic-gate
124*7c478bd9Sstevel@tonic-gate$(OBJS_DIR)/vers.o: $(OBJECTS)
125*7c478bd9Sstevel@tonic-gate	$(COMPILE.c) -DUTS_RELEASE=\"`$(ECHO) $(RELEASE) | sed -e 's/ /_/g'`\" \
126*7c478bd9Sstevel@tonic-gate	    -DUTS_VERSION=\"`$(VERSION_STRING) | sed -e 's/ /_/g'`\" \
127*7c478bd9Sstevel@tonic-gate	    -DUTS_PLATFORM=\"$(PLATFORM)\" -o $@ $(SRC)/uts/common/os/vers.c
128*7c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
129*7c478bd9Sstevel@tonic-gate	$(POST_PROCESS_O)
130*7c478bd9Sstevel@tonic-gate
131*7c478bd9Sstevel@tonic-gate$(LINTS_DIR)/vers.ln: $(SRC)/uts/common/os/vers.c
132*7c478bd9Sstevel@tonic-gate	@($(LHEAD) $(LINT.c) -DUTS_RELEASE=\"\" -DUTS_VERSION=\"\" \
133*7c478bd9Sstevel@tonic-gate	    -DUTS_PLATFORM=\"\" $(SRC)/uts/common/os/vers.c $(LTAIL))
134*7c478bd9Sstevel@tonic-gate
135*7c478bd9Sstevel@tonic-gate#
136*7c478bd9Sstevel@tonic-gate#	Installation targets and rules:
137*7c478bd9Sstevel@tonic-gate#
138*7c478bd9Sstevel@tonic-gate$(ROOT_MOD_DIR) $(USR_MOD_DIR):
139*7c478bd9Sstevel@tonic-gate	-$(INS.dir.root.sys)
140*7c478bd9Sstevel@tonic-gate
141*7c478bd9Sstevel@tonic-gate$(ROOT_MOD_DIRS_32):	$(ROOT_MOD_DIR)
142*7c478bd9Sstevel@tonic-gate	-$(INS.dir.root.sys)
143*7c478bd9Sstevel@tonic-gate
144*7c478bd9Sstevel@tonic-gate$(USR_MOD_DIRS_32):	$(USR_MOD_DIR)
145*7c478bd9Sstevel@tonic-gate	-$(INS.dir.root.sys)
146*7c478bd9Sstevel@tonic-gate
147*7c478bd9Sstevel@tonic-gate$(ROOT_MOD_DIR)/%:	$(OBJS_DIR)/% $(ROOT_MOD_DIR) FRC
148*7c478bd9Sstevel@tonic-gate	$(INS.file)
149*7c478bd9Sstevel@tonic-gate
150*7c478bd9Sstevel@tonic-gate$(ROOT_DRV_DIR)/%:	$(OBJS_DIR)/% $(ROOT_DRV_DIR) FRC
151*7c478bd9Sstevel@tonic-gate	$(INS.file)
152*7c478bd9Sstevel@tonic-gate
153*7c478bd9Sstevel@tonic-gate$(ROOT_DTRACE_DIR)/%:	$(OBJS_DIR)/% $(ROOT_DTRACE_DIR) FRC
154*7c478bd9Sstevel@tonic-gate	$(INS.file)
155*7c478bd9Sstevel@tonic-gate
156*7c478bd9Sstevel@tonic-gate$(ROOT_EXEC_DIR)/%:	$(OBJS_DIR)/% $(ROOT_EXEC_DIR) FRC
157*7c478bd9Sstevel@tonic-gate	$(INS.file)
158*7c478bd9Sstevel@tonic-gate
159*7c478bd9Sstevel@tonic-gate$(ROOT_FS_DIR)/%:	$(OBJS_DIR)/% $(ROOT_FS_DIR) FRC
160*7c478bd9Sstevel@tonic-gate	$(INS.file)
161*7c478bd9Sstevel@tonic-gate
162*7c478bd9Sstevel@tonic-gate$(ROOT_SCHED_DIR)/%:	$(OBJS_DIR)/% $(ROOT_SCHED_DIR) FRC
163*7c478bd9Sstevel@tonic-gate	$(INS.file)
164*7c478bd9Sstevel@tonic-gate
165*7c478bd9Sstevel@tonic-gate$(ROOT_STRMOD_DIR)/%:	$(OBJS_DIR)/% $(ROOT_STRMOD_DIR) FRC
166*7c478bd9Sstevel@tonic-gate	$(INS.file)
167*7c478bd9Sstevel@tonic-gate
168*7c478bd9Sstevel@tonic-gate$(ROOT_IPP_DIR)/%:	$(OBJS_DIR)/% $(ROOT_IPP_DIR) FRC
169*7c478bd9Sstevel@tonic-gate	$(INS.file)
170*7c478bd9Sstevel@tonic-gate
171*7c478bd9Sstevel@tonic-gate$(ROOT_SYS_DIR)/%:	$(OBJS_DIR)/% $(ROOT_SYS_DIR) FRC
172*7c478bd9Sstevel@tonic-gate	$(INS.file)
173*7c478bd9Sstevel@tonic-gate
174*7c478bd9Sstevel@tonic-gate$(ROOT_MISC_DIR)/%:	$(OBJS_DIR)/% $(ROOT_MISC_DIR) FRC
175*7c478bd9Sstevel@tonic-gate	$(INS.file)
176*7c478bd9Sstevel@tonic-gate
177*7c478bd9Sstevel@tonic-gate$(ROOT_DACF_DIR)/%:	$(OBJS_DIR)/% $(ROOT_DACF_DIR) FRC
178*7c478bd9Sstevel@tonic-gate	$(INS.file)
179*7c478bd9Sstevel@tonic-gate
180*7c478bd9Sstevel@tonic-gate$(ROOT_CRYPTO_DIR)/%:	$(OBJS_DIR)/% $(ROOT_CRYPTO_DIR) FRC
181*7c478bd9Sstevel@tonic-gate	$(INS.file)
182*7c478bd9Sstevel@tonic-gate
183*7c478bd9Sstevel@tonic-gate$(ROOT_KGSS_DIR)/%:	$(OBJS_DIR)/% $(ROOT_KGSS_DIR) FRC
184*7c478bd9Sstevel@tonic-gate	$(INS.file)
185*7c478bd9Sstevel@tonic-gate
186*7c478bd9Sstevel@tonic-gate$(ROOT_MACH_DIR)/%:	$(OBJS_DIR)/% $(ROOT_MACH_DIR) FRC
187*7c478bd9Sstevel@tonic-gate	$(INS.file)
188*7c478bd9Sstevel@tonic-gate
189*7c478bd9Sstevel@tonic-gate$(ROOT_FONT_DIR)/%:	$(OBJS_DIR)/% $(ROOT_MOD_DIR) $(ROOT_FONT_DIR) FRC
190*7c478bd9Sstevel@tonic-gate	$(INS.file)
191*7c478bd9Sstevel@tonic-gate
192*7c478bd9Sstevel@tonic-gate$(USR_DRV_DIR)/%:	$(OBJS_DIR)/% $(USR_DRV_DIR) FRC
193*7c478bd9Sstevel@tonic-gate	$(INS.file)
194*7c478bd9Sstevel@tonic-gate
195*7c478bd9Sstevel@tonic-gate$(USR_EXEC_DIR)/%:	$(OBJS_DIR)/% $(USR_EXEC_DIR) FRC
196*7c478bd9Sstevel@tonic-gate	$(INS.file)
197*7c478bd9Sstevel@tonic-gate
198*7c478bd9Sstevel@tonic-gate$(USR_FS_DIR)/%:	$(OBJS_DIR)/% $(USR_FS_DIR) FRC
199*7c478bd9Sstevel@tonic-gate	$(INS.file)
200*7c478bd9Sstevel@tonic-gate
201*7c478bd9Sstevel@tonic-gate$(USR_SCHED_DIR)/%:	$(OBJS_DIR)/% $(USR_SCHED_DIR) FRC
202*7c478bd9Sstevel@tonic-gate	$(INS.file)
203*7c478bd9Sstevel@tonic-gate
204*7c478bd9Sstevel@tonic-gate$(USR_STRMOD_DIR)/%:	$(OBJS_DIR)/% $(USR_STRMOD_DIR) FRC
205*7c478bd9Sstevel@tonic-gate	$(INS.file)
206*7c478bd9Sstevel@tonic-gate
207*7c478bd9Sstevel@tonic-gate$(USR_SYS_DIR)/%:	$(OBJS_DIR)/% $(USR_SYS_DIR) FRC
208*7c478bd9Sstevel@tonic-gate	$(INS.file)
209*7c478bd9Sstevel@tonic-gate
210*7c478bd9Sstevel@tonic-gate$(USR_MISC_DIR)/%:	$(OBJS_DIR)/% $(USR_MISC_DIR) FRC
211*7c478bd9Sstevel@tonic-gate	$(INS.file)
212*7c478bd9Sstevel@tonic-gate
213*7c478bd9Sstevel@tonic-gate$(USR_DACF_DIR)/%:	$(OBJS_DIR)/% $(USR_DACF_DIR) FRC
214*7c478bd9Sstevel@tonic-gate	$(INS.file)
215*7c478bd9Sstevel@tonic-gate
216*7c478bd9Sstevel@tonic-gate$(USR_PCBE_DIR)/%:	$(OBJS_DIR)/% $(USR_PCBE_DIR) FRC
217*7c478bd9Sstevel@tonic-gate	$(INS.file)
218*7c478bd9Sstevel@tonic-gate
219*7c478bd9Sstevel@tonic-gateinclude $(SRC)/Makefile.psm.targ
220*7c478bd9Sstevel@tonic-gate
221*7c478bd9Sstevel@tonic-gate#
222*7c478bd9Sstevel@tonic-gate#	Target for 64b modules
223*7c478bd9Sstevel@tonic-gate#
224*7c478bd9Sstevel@tonic-gate$(ROOT_KERN_DIR_64):
225*7c478bd9Sstevel@tonic-gate	-$(INS.dir.root.sys)
226*7c478bd9Sstevel@tonic-gate
227*7c478bd9Sstevel@tonic-gate$(ROOT_KERN_DIR_64)/%:	$(OBJS_DIR)/% $(ROOT_KERN_DIR_64) FRC
228*7c478bd9Sstevel@tonic-gate	$(INS.file)
229*7c478bd9Sstevel@tonic-gate
230*7c478bd9Sstevel@tonic-gate%/$(SUBDIR64):		%
231*7c478bd9Sstevel@tonic-gate	-$(INS.dir.root.sys)
232*7c478bd9Sstevel@tonic-gate
233*7c478bd9Sstevel@tonic-gate#
234*7c478bd9Sstevel@tonic-gate#	Targets for '.conf' file installation.
235*7c478bd9Sstevel@tonic-gate#
236*7c478bd9Sstevel@tonic-gate$(ROOT_CONFFILE):	$(SRC_CONFFILE)	$(ROOT_CONFFILE:%/$(CONFFILE)=%)
237*7c478bd9Sstevel@tonic-gate	$(INS.conffile)
238*7c478bd9Sstevel@tonic-gate
239*7c478bd9Sstevel@tonic-gate#
240*7c478bd9Sstevel@tonic-gate#	Targets for creating links between common platforms. ROOT_PLAT_LINKS
241*7c478bd9Sstevel@tonic-gate#	are are the /platform level while ROOT_PLAT_LINKS_2 are one level
242*7c478bd9Sstevel@tonic-gate#	down (/platform/`uname -i`/{lib|sbin|kernel}.
243*7c478bd9Sstevel@tonic-gate#
244*7c478bd9Sstevel@tonic-gate$(ROOT_PLAT_LINKS):
245*7c478bd9Sstevel@tonic-gate	$(INS.slink1)
246*7c478bd9Sstevel@tonic-gate
247*7c478bd9Sstevel@tonic-gate$(ROOT_PLAT_LINKS_2):
248*7c478bd9Sstevel@tonic-gate	$(INS.slink2)
249*7c478bd9Sstevel@tonic-gate
250*7c478bd9Sstevel@tonic-gate$(USR_PLAT_LINKS):
251*7c478bd9Sstevel@tonic-gate	$(INS.slink1)
252*7c478bd9Sstevel@tonic-gate
253*7c478bd9Sstevel@tonic-gate$(USR_PLAT_LINKS_2):
254*7c478bd9Sstevel@tonic-gate	$(INS.slink2)
255*7c478bd9Sstevel@tonic-gate
256*7c478bd9Sstevel@tonic-gate#
257*7c478bd9Sstevel@tonic-gate# multiple builds support
258*7c478bd9Sstevel@tonic-gate#
259*7c478bd9Sstevel@tonic-gatedef $(DEF_DEPS)			:= TARGET = def
260*7c478bd9Sstevel@tonic-gateall $(ALL_DEPS)			:= TARGET = all
261*7c478bd9Sstevel@tonic-gateclean $(CLEAN_DEPS)		:= TARGET = clean
262*7c478bd9Sstevel@tonic-gateclobber $(CLOBBER_DEPS)		:= TARGET = clobber
263*7c478bd9Sstevel@tonic-gatelint $(LINT_DEPS)		:= TARGET = lint
264*7c478bd9Sstevel@tonic-gatemodlintlib $(MODLINTLIB_DEPS)	:= TARGET = modlintlib
265*7c478bd9Sstevel@tonic-gateclean.lint $(CLEAN_LINT_DEPS)	:= TARGET = clean.lint
266*7c478bd9Sstevel@tonic-gateinstall $(INSTALL_DEPS)		:= TARGET = install
267*7c478bd9Sstevel@tonic-gatesymcheck $(SYM_DEPS)		:= TARGET = symcheck
268*7c478bd9Sstevel@tonic-gate
269*7c478bd9Sstevel@tonic-gate
270*7c478bd9Sstevel@tonic-gateALL_TARGS	= def all clean clobber lint modlintlib clean.lint lintlib install symcheck
271*7c478bd9Sstevel@tonic-gate
272*7c478bd9Sstevel@tonic-gateALL_OBJ32	= $(ALL_TARGS:%=%.obj32)
273*7c478bd9Sstevel@tonic-gate
274*7c478bd9Sstevel@tonic-gate$(ALL_OBJ32):	FRC
275*7c478bd9Sstevel@tonic-gate	@BUILD_TYPE=OBJ32 VERSION='$(VERSION)' $(MAKE) $(TARGET).targ
276*7c478bd9Sstevel@tonic-gate
277*7c478bd9Sstevel@tonic-gateALL_DEBUG32	= $(ALL_TARGS:%=%.debug32)
278*7c478bd9Sstevel@tonic-gate
279*7c478bd9Sstevel@tonic-gate$(ALL_DEBUG32):	FRC
280*7c478bd9Sstevel@tonic-gate	@BUILD_TYPE=DBG32 VERSION='$(VERSION)' $(MAKE) $(TARGET).targ
281*7c478bd9Sstevel@tonic-gate
282*7c478bd9Sstevel@tonic-gateALL_OBJ64	= $(ALL_TARGS:%=%.obj64)
283*7c478bd9Sstevel@tonic-gate
284*7c478bd9Sstevel@tonic-gate$(ALL_OBJ64):	FRC
285*7c478bd9Sstevel@tonic-gate	@BUILD_TYPE=OBJ64 VERSION='$(VERSION)' $(MAKE) $(TARGET).targ
286*7c478bd9Sstevel@tonic-gate
287*7c478bd9Sstevel@tonic-gateALL_DEBUG64	= $(ALL_TARGS:%=%.debug64)
288*7c478bd9Sstevel@tonic-gate
289*7c478bd9Sstevel@tonic-gate$(ALL_DEBUG64):	FRC
290*7c478bd9Sstevel@tonic-gate	@BUILD_TYPE=DBG64 VERSION='$(VERSION)' $(MAKE) $(TARGET).targ
291*7c478bd9Sstevel@tonic-gate
292*7c478bd9Sstevel@tonic-gate
293*7c478bd9Sstevel@tonic-gate$(OBJS_DIR):
294*7c478bd9Sstevel@tonic-gate	-@mkdir -p $@ 2> /dev/null
295*7c478bd9Sstevel@tonic-gate
296*7c478bd9Sstevel@tonic-gatedef.targ:		$(OBJS_DIR) $(ALL_TARGET)
297*7c478bd9Sstevel@tonic-gate
298*7c478bd9Sstevel@tonic-gateall.targ:		$(OBJS_DIR) $(ALL_TARGET)
299*7c478bd9Sstevel@tonic-gate
300*7c478bd9Sstevel@tonic-gatelint.targ:		$(OBJS_DIR) $(LINT_TARGET)
301*7c478bd9Sstevel@tonic-gate
302*7c478bd9Sstevel@tonic-gatemodlintlib.targ:	$(OBJS_DIR) $(MOD_LINT_LIB)
303*7c478bd9Sstevel@tonic-gate
304*7c478bd9Sstevel@tonic-gateinstall.targ:		$(OBJS_DIR) $(INSTALL_TARGET)
305*7c478bd9Sstevel@tonic-gate
306*7c478bd9Sstevel@tonic-gate#
307*7c478bd9Sstevel@tonic-gate#	Cleanliness is next to ...
308*7c478bd9Sstevel@tonic-gate#
309*7c478bd9Sstevel@tonic-gateclean.targ:
310*7c478bd9Sstevel@tonic-gate	-$(RM) $(CLEANFILES) Nothing_to_remove
311*7c478bd9Sstevel@tonic-gate
312*7c478bd9Sstevel@tonic-gateclobber.targ:
313*7c478bd9Sstevel@tonic-gate	-$(RM) $(CLOBBERFILES) Nothing_to_remove
314*7c478bd9Sstevel@tonic-gate
315*7c478bd9Sstevel@tonic-gateclean.lint.targ:
316*7c478bd9Sstevel@tonic-gate	-$(RM) $(CLEANLINTFILES) Nothing_to_remove
317*7c478bd9Sstevel@tonic-gate
318*7c478bd9Sstevel@tonic-gate#
319*7c478bd9Sstevel@tonic-gate#	Create fake lintlibs in the 64b dirs so
320*7c478bd9Sstevel@tonic-gate#	global linting works
321*7c478bd9Sstevel@tonic-gate#
322*7c478bd9Sstevel@tonic-gatelint64:
323*7c478bd9Sstevel@tonic-gate	@$(ECHO) $(MODULE) fake lints
324*7c478bd9Sstevel@tonic-gate	@for dir in $(LINT64_DIRS); do \
325*7c478bd9Sstevel@tonic-gate		if [ ! -d $$dir ]; then mkdir $$dir; fi \
326*7c478bd9Sstevel@tonic-gate	done
327*7c478bd9Sstevel@tonic-gate	@for file in $(LINT64_FILES); do \
328*7c478bd9Sstevel@tonic-gate		if [ ! -f $$file ]; then touch $$file; fi \
329*7c478bd9Sstevel@tonic-gate	done
330*7c478bd9Sstevel@tonic-gate
331*7c478bd9Sstevel@tonic-gate#
332*7c478bd9Sstevel@tonic-gate#	In some places we also need to create fake lintlibs for 32b
333*7c478bd9Sstevel@tonic-gate#	dirs so global linting works
334*7c478bd9Sstevel@tonic-gate#
335*7c478bd9Sstevel@tonic-gatelint32:
336*7c478bd9Sstevel@tonic-gate	@$(ECHO) $(MODULE) fake lints
337*7c478bd9Sstevel@tonic-gate	@for dir in $(LINT32_DIRS); do \
338*7c478bd9Sstevel@tonic-gate		if [ ! -d $$dir ]; then mkdir $$dir; fi \
339*7c478bd9Sstevel@tonic-gate	done
340*7c478bd9Sstevel@tonic-gate	@for file in $(LINT32_FILES); do \
341*7c478bd9Sstevel@tonic-gate		if [ ! -f $$file ]; then touch $$file; fi \
342*7c478bd9Sstevel@tonic-gate	done
343*7c478bd9Sstevel@tonic-gateFRC:
344