FreeBSD/Linux Kernel Cross Reference
sys/sun4v/Makefile
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 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 # Use is subject to license terms.
24 #
25 # This makefile drives the production of all implementation architecture
26 # dependent modules for the sun4v architecture.
27 #
28
29 UTSBASE = ..
30
31 include Makefile.sun4v
32 include Makefile.stpaul
33 include Makefile.huron
34 include Makefile.maramba
35 include Makefile.thunder
36 include Makefile.turgo
37 include Makefile.congo
38 include Makefile.monza
39
40 USR_GLENDALE_DIR = $(USR_PLAT_DIR)/SUNW,Sun-Blade-T6320
41 USR_GLENDALE_SBIN_DIR = $(USR_GLENDALE_DIR)/sbin
42 USR_GLENDALE_LIB_DIR = $(USR_GLENDALE_DIR)/lib
43
44
45 #
46 # The following are SPARC specific (rather than sun4v) specific modules
47 # which are required for the sun4v kernel to completely lint. They are
48 # not involved in the build in any other way. In order to minimize
49 # build time, it is assumed that they are up to date. But since sun4v
50 # is really a separate architecture we cannot use the v7 sparc modules.
51 #
52 SPARC_LIB_DIR = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
53
54 SPARC_LINTS =
55
56 #
57 #
58 #
59 LINT_LIBS = $(LINT_LIB) \
60 $(LINT_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
61 $(CLOSED_LINT_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
62 $(SPARC_LINTS:%=$(SPARC_LIB_DIR)/llib-l%.ln)
63
64 def := TARGET= def
65 all := TARGET= all
66 install := TARGET= install
67 install_h := TARGET= install_h
68 clean := TARGET= clean
69 clobber := TARGET= clobber
70 lint := TARGET= lint
71 lintlib := TARGET= lintlib
72 modlintlib := TARGET= modlintlib
73 modlist := TARGET= modlist
74 modlist modlist.sparc := NO_STATE= -K $$MODSTATE$$$$
75 clean.lint := TARGET= clean.lint
76 check := TARGET= check
77
78 .KEEP_STATE:
79
80 .PARALLEL: $(PARALLEL_KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
81 modlist modlist.sparc
82
83 # Override for CPU_KMODS... they cannot be built
84 # in parallel
85 .NO_PARALLEL: $(CPU_KMODS)
86
87 def all clean clobber clean.lint: genassym unix .WAIT \
88 $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS)
89
90 # list the modules under sun4v.
91 modlist: unix $(KMODS) $(CLOSED_KMODS) $(XMODS) $(CLOSED_XMODS) \
92 $(IMPLEMENTATIONS)
93
94 # list the modules for Install -k sun4v.
95 modlist.karch: modlist modlist.sparc
96
97 modlist.sparc:
98 @cd $(SRC)/uts/sparc; pwd; $(MAKE) $(NO_STATE) modlist
99
100 install: install_platforms genassym unix .WAIT $(KMODS) $(CLOSED_KMODS) \
101 $(XMODS) $(CLOSED_XMODS) $(IMPLEMENTATIONS)
102
103 lintlib: unix
104
105 modlintlib: $(LINT_KMODS) $(CLOSED_LINT_KMODS)
106
107 genassym unix $(KMODS): FRC
108 @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
109
110 $(IMPLEMENTATIONS): FRC
111 @cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET)
112
113 $(XMODS): FRC
114 @if [ -f $@/Makefile ]; then \
115 cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
116 else \
117 true; \
118 fi
119
120 $(CLOSED_XMODS): FRC
121 @if [ -f $(CLOSED)/uts/sun4v/$@/Makefile ]; then \
122 cd $(CLOSED)/uts/sun4v/$@; pwd; \
123 $(MAKE) $(NO_STATE) $(TARGET); \
124 else \
125 true; \
126 fi
127
128 $(CLOSED_KMODS): FRC
129 cd $(CLOSED)/uts/sun4v/$@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
130
131 install_h check: install_platforms $(IMPLEMENTATIONS) FRC
132 @cd sys; pwd; $(MAKE) $(TARGET)
133 @cd vm; pwd; $(MAKE) $(TARGET)
134
135 #
136 # Rules for the /platforms directories. This is hardwired here because
137 # the first stage of the project (KBI) only implements the userland
138 # changes, but the only reasonable place to record the aliases is
139 # here in kernel land.
140 #
141 $(ROOT_PLAT_DIRS): $(ROOT_PLAT_DIR)
142 -$(INS.dir)
143
144 $(LINKED_PLATFORMS:%=$(ROOT_PLAT_DIR)/%): $(ROOT_PLAT_DIR)
145 $(INS.slink1)
146
147 #
148 # create directories in /usr/platform/ for the implementations that are
149 # defined in $(IMPLEMENTED_PLATFORM)
150 #
151
152 # Foreach $(IMPLEMENTED_PLATFORM) there can be a list of $(LINKED_PLATFORMS)
153 # that are linked to it.
154 #
155 $(USR_PLAT_DIR)/$(IMPLEMENTED_PLATFORM): $(USR_PLAT_DIR)
156 -$(INS.dir)
157
158 #
159 # create the links in /usr/platform/ foreach $(LINKED_PLATFORMS)
160 # to it's corresponding $(IMPLEMENTED_PLATFORM).
161 #
162 PLATFORMS = $(LINKED_PLATFORMS)
163
164 $(USR_PLAT_DIRS): $(USR_PLAT_DIR)
165 $(INS.slink3)
166
167 PLATFORMS += $(IMPLEMENTED_PLATFORM)
168
169
170 #
171 # Make the /platforms directories. This is hardwired here because
172 # the first stage of the project (KBI) only implements the userland
173 # changes, but the only reasonable place to record the aliases is
174 # here in kernel land.
175 #
176
177 install_platforms: $(ROOT_PSM_DIR) $(USR_PSM_DIR) \
178 $(ROOT_PLAT_DIRS) $(USR_PLAT_DIRS) \
179 $(LINKED_PLATFORMS:%=$(ROOT_PLAT_DIR)/%) \
180 $(USR_DESKTOP_DIR) $(USR_DESKTOP_INC_DIR) \
181 $(USR_DESKTOP_SBIN_DIR) $(USR_DESKTOP_LIB_DIR) \
182 $(USR_STPAUL_DIR) $(USR_STPAUL_SBIN_DIR) \
183 $(USR_STPAUL_LIB_DIR) \
184 $(USR_GLENDALE_DIR) $(USR_GLENDALE_SBIN_DIR) \
185 $(USR_GLENDALE_LIB_DIR) \
186 $(USR_HURON_DIR) \
187 $(USR_HURON_SBIN_DIR) $(USR_HURON_LIB_DIR) \
188 $(USR_MARAMBA_DIR) $(USR_MARAMBA_SBIN_DIR) \
189 $(USR_MARAMBA_LIB_DIR) \
190 $(USR_THUNDER_DIR) $(USR_THUNDER_SBIN_DIR) \
191 $(USR_THUNDER_LIB_DIR) \
192 $(USR_TURGO_DIR) $(USR_TURGO_SBIN_DIR) \
193 $(USR_TURGO_LIB_DIR) \
194 $(USR_CONGO_DIR) $(USR_CONGO_SBIN_DIR) \
195 $(USR_CONGO_LIB_DIR) \
196 $(USR_MONZA_DIR) \
197 $(USR_MONZA_SBIN_DIR) $(USR_MONZA_SBIN_LINKS)
198
199
200 #
201 # rules for making include, sbin, lib dirs/links in
202 # /usr/platform/$(PLATFORM)/ for desktop platforms
203 #
204 $(USR_DESKTOP_INC_DIR): $(USR_DESKTOP_DIR)
205 $(INS.slink4)
206
207 $(USR_DESKTOP_SBIN_DIR): $(USR_DESKTOP_DIR)
208 $(INS.slink5)
209
210 $(USR_DESKTOP_LIB_DIR): $(USR_DESKTOP_DIR)
211 -$(INS.dir)
212
213 $(USR_STPAUL_DIR): $(USR_SUN4V_PLAT_DIR)
214 -$(INS.dir)
215
216 $(USR_STPAUL_SBIN_DIR): $(USR_STPAUL_DIR)
217 $(INS.slink5)
218
219 $(USR_STPAUL_LIB_DIR): $(USR_STPAUL_DIR)
220 -$(INS.dir)
221
222 $(USR_HURON_DIR): $(USR_SUN4V_PLAT_DIR)
223 -$(INS.dir)
224
225 $(USR_HURON_SBIN_DIR): $(USR_HURON_DIR)
226 $(INS.slink5)
227
228 $(USR_HURON_LIB_DIR): $(USR_HURON_DIR)
229 -$(INS.dir)
230
231 $(USR_GLENDALE_DIR): $(USR_SUN4V_PLAT_DIR)
232 -$(INS.dir)
233
234 $(USR_GLENDALE_SBIN_DIR): $(USR_GLENDALE_DIR)
235 $(INS.slink5)
236
237 $(USR_GLENDALE_LIB_DIR): $(USR_GLENDALE_DIR)
238 -$(INS.dir)
239
240 $(USR_MARAMBA_DIR): $(USR_SUN4V_PLAT_DIR)
241 -$(INS.dir)
242
243 $(USR_MARAMBA_SBIN_DIR): $(USR_MARAMBA_DIR)
244 $(INS.slink5)
245
246 $(USR_MARAMBA_LIB_DIR): $(USR_MARAMBA_DIR)
247 -$(INS.dir)
248
249 $(USR_THUNDER_DIR): $(USR_SUN4V_PLAT_DIR)
250 -$(INS.dir)
251
252 $(USR_THUNDER_SBIN_DIR): $(USR_THUNDER_DIR)
253 $(INS.slink5)
254
255 $(USR_THUNDER_LIB_DIR): $(USR_THUNDER_DIR)
256 -$(INS.dir)
257
258 $(USR_TURGO_DIR): $(USR_SUN4V_PLAT_DIR)
259 -$(INS.dir)
260
261 $(USR_TURGO_SBIN_DIR): $(USR_TURGO_DIR)
262 $(INS.slink5)
263
264 $(USR_TURGO_LIB_DIR): $(USR_TURGO_DIR)
265 -$(INS.dir)
266
267 $(USR_CONGO_DIR): $(USR_SUN4V_PLAT_DIR)
268 -$(INS.dir)
269
270 $(USR_CONGO_SBIN_DIR): $(USR_CONGO_DIR)
271 $(INS.slink5)
272
273 $(USR_CONGO_LIB_DIR): $(USR_CONGO_DIR)
274 -$(INS.dir)
275
276 $(USR_MONZA_DIR): $(USR_SUN4V_PLAT_DIR)
277 -$(INS.dir)
278
279 $(USR_MONZA_SBIN_DIR): $(USR_MONZA_DIR)
280 -$(INS.dir)
281
282 $(USR_MONZA_SBIN_LINKS): $(USR_MONZA_SBIN_DIR)
283 $(INS.slink7)
284
285 #
286 # Full kernel lint target.
287 #
288 LINT_TARGET = globallint
289
290 globallint:
291 @-$(ECHO) "\nSUN4V KERNEL: global crosschecks:"
292 @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
293
294 lint: lintlib .WAIT modlintlib .WAIT $(SPARC_LINTS) $(LINT_DEPS) \
295 $(IMPLEMENTATIONS) $(LINT_CPU_KMODS)
296
297 # EXPORT DELETE START
298
299 EXPORT_SRC:
300 $(RM) Makefile+
301 sed -e "/^# EXPORT DELETE START/,/^# EXPORT DELETE END/d" \
302 < Makefile > Makefile+
303 $(MV) Makefile+ Makefile
304 $(CHMOD) 444 Makefile
305
306 # EXPORT DELETE END
307
308 include ../Makefile.targ
309
310 #
311 # Cross-reference customization: build a cross-reference over all of the
312 # sun4v-related directories.
313 #
314 SHARED_XRDIRS = ../sun4v ../sun4 ../sfmmu ../sparc ../sun ../common
315 CLOSED_XRDIRS = $(SHARED_XRDIRS:../%=../% ../../../closed/uts/%)
316 XRDIRS = $(SHARED_XRDIRS)
317 $(CLOSED_BUILD)XRDIRS = $(CLOSED_XRDIRS:../../../closed/uts/sfmmu=)
318
319 XRPRUNE = i86pc sun4u intel
320
321 cscope.out tags: FRC
322 $(XREF) -x $@
Cache object: 23ff069445842b9acbe48f3eef0dd18a
|