Print this page
4266 remove Makefile*.shared nonsense in uts
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/sun4u/Makefile.sun4u
+++ new/usr/src/uts/sun4u/Makefile.sun4u
1 +#
1 2 # CDDL HEADER START
2 3 #
3 4 # The contents of this file are subject to the terms of the
4 -# Common Development and Distribution License, Version 1.0 only
5 -# (the "License"). You may not use this file except in compliance
6 -# with the License.
5 +# Common Development and Distribution License (the "License").
6 +# You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 -# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
21 +
22 +#
23 +# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
22 24 # Use is subject to license terms.
25 +# Copyright (c) 2013 Andrew Stormont. All rights reserved.
26 +#
27 +# This makefile contains the common definitions for the sun4u unix
28 +# and all sun4u implementation architecture dependent modules.
29 +#
30 +
31 +#
32 +# Machine type (implementation architecture):
33 +#
34 +PLATFORM = sun4u
35 +PROMIF = ieee1275
36 +PSMBASE = $(UTSBASE)/../psm
37 +
38 +#
39 +# uname -m value
40 +#
41 +UNAME_M = $(PLATFORM)
42 +
43 +#
44 +# Definitions for the platform-specific /platform directories.
45 +#
46 +# PLATFORMS designates those sun4u machines which have no platform
47 +# specific code.
48 +#
49 +# IMPLEMENTATIONS is used to designate sun4u machines which do have
50 +# platform specific modules (perhaps including their own unix). All
51 +# code specific to a given implementation resides in the appropriately
52 +# named subdirectory. This requires these platforms to have their
53 +# own Makefiles to define ROOT_PLAT_DIRS, USR_PLAT_DIRS, etc.
54 +#
55 +# So if we had an implementation named 'foo', we would need the following
56 +# Makefiles in the foo subdirectory:
57 +#
58 +# sun4u/foo/Makefile
59 +# sun4u/foo/Makefile.foo
60 +# sun4u/foo/Makefile.targ
61 +#
62 +
63 +#
64 +# /usr/platform/$(IMPLEMENTED_PLATFORM) is created as a directory that
65 +# all the $(LINKED_PLATFORMS) link to.
66 +#
67 +IMPLEMENTED_PLATFORM = SUNW,Ultra-2
68 +
69 +LINKED_PLATFORMS += SUNW,Ultra-30
70 +LINKED_PLATFORMS += SUNW,Ultra-60
71 +
72 +#
73 +# all PLATFORMS that do not belong in the $(IMPLEMENTATIONS) list
74 +# ie. all desktop platforms
75 +#
76 +PLATFORMS = $(IMPLEMENTED_PLATFORM)
77 +PLATFORMS += $(LINKED_PLATFORMS)
78 +
79 +ROOT_PLAT_DIRS = $(PLATFORMS:%=$(ROOT_PLAT_DIR)/%)
80 +USR_PLAT_DIRS = $(PLATFORMS:%=$(USR_PLAT_DIR)/%)
81 +
82 +USR_DESKTOP_DIR = $(USR_PLAT_DIR)/$(IMPLEMENTED_PLATFORM)
83 +USR_DESKTOP_INC_DIR = $(USR_DESKTOP_DIR)/include
84 +USR_DESKTOP_SBIN_DIR = $(USR_DESKTOP_DIR)/sbin
85 +USR_DESKTOP_LIB_DIR = $(USR_DESKTOP_DIR)/lib
86 +
87 +#
88 +# Welcome to SPARC V9.
89 +#
90 +
91 +#
92 +# Define supported builds
93 +#
94 +DEF_BUILDS = $(DEF_BUILDS64)
95 +ALL_BUILDS = $(ALL_BUILDS64)
96 +
97 +#
98 +# Everybody needs to know how to build modstubs.o and to locate unix.o
99 +#
100 +UNIX_DIR = $(UTSBASE)/$(PLATFORM)/unix
101 +GENLIB_DIR = $(UTSBASE)/$(PLATFORM)/genunix
102 +MODSTUBS_DIR = $(UNIX_DIR)
103 +DSF_DIR = $(UTSBASE)/$(PLATFORM)/genassym
104 +LINTS_DIR = $(OBJS_DIR)
105 +LINT_LIB_DIR = $(UTSBASE)/$(PLATFORM)/lint-libs/$(OBJS_DIR)
106 +
107 +DTRACESTUBS_O = $(OBJS_DIR)/dtracestubs.o
108 +DTRACESTUBS = $(OBJS_DIR)/libdtracestubs.so
109 +
110 +UNIX_O = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
111 +MODSTUBS_O = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
112 +GENLIB = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so
113 +
114 +LINT_LIB = $(LINT_LIB_DIR)/llib-lunix.ln
115 +GEN_LINT_LIB = $(LINT_LIB_DIR)/llib-lgenunix.ln
116 +
117 +LINT64_DIRS = $(LINT64_BUILDS:%=$(UTSBASE)/$(PLATFORM)/lint-libs/%)
118 +LINT64_FILES = $(LINT64_DIRS:%=%/llib-l$(MODULE).ln)
119 +
120 +#
121 +# cpu and platform modules need to know how to build their own symcheck module
122 +#
123 +PLATMOD = platmod
124 +PLATLIB = $(PLAT_DIR)/$(OBJS_DIR)/libplatmod.so
125 +
126 +CPUNAME = cpu
127 +CPULIB = $(CPU_DIR)/$(OBJS_DIR)/libcpu.so
128 +
129 +SYM_MOD = $(OBJS_DIR)/unix.sym
130 +
131 +#
132 +# Include the makefiles which define build rule templates, the
133 +# collection of files per module, and a few specific flags. Note
134 +# that order is significant, just as with an include path. The
135 +# first build rule template which matches the files name will be
136 +# used. By including these in order from most machine dependent
137 +# to most machine independent, we allow a machine dependent file
138 +# to be used in preference over a machine independent version
139 +# (Such as a machine specific optimization, which preserves the
140 +# interfaces.)
141 +#
142 +include $(UTSBASE)/sun4/Makefile.files
143 +include $(UTSBASE)/$(PLATFORM)/Makefile.files
144 +include $(UTSBASE)/sfmmu/Makefile.files
145 +include $(UTSBASE)/sparc/v9/Makefile.files
146 +include $(UTSBASE)/sparc/Makefile.files
147 +include $(UTSBASE)/sun/Makefile.files
148 +include $(SRC)/psm/promif/$(PROMIF)/common/Makefile.files
149 +include $(SRC)/psm/promif/$(PROMIF)/$(PLATFORM)/Makefile.files
150 +include $(UTSBASE)/common/Makefile.files
151 +
152 +#
153 +# Include machine independent rules. Note that this does not imply
154 +# that the resulting module from rules in Makefile.uts is machine
155 +# independent. Only that the build rules are machine independent.
156 +#
157 +include $(UTSBASE)/Makefile.uts
158 +
159 +# These come after Makefile.uts.
160 +IMPLEMENTATIONS = tazmo
161 +IMPLEMENTATIONS += starfire
162 +IMPLEMENTATIONS += javelin
163 +IMPLEMENTATIONS += darwin
164 +IMPLEMENTATIONS += quasar
165 +IMPLEMENTATIONS += grover
166 +IMPLEMENTATIONS += enchilada
167 +IMPLEMENTATIONS += taco
168 +IMPLEMENTATIONS += mpxu
169 +IMPLEMENTATIONS += excalibur
170 +IMPLEMENTATIONS += montecarlo
171 +IMPLEMENTATIONS += serengeti
172 +IMPLEMENTATIONS += littleneck
173 +IMPLEMENTATIONS += starcat
174 +IMPLEMENTATIONS += daktari
175 +IMPLEMENTATIONS += cherrystone
176 +IMPLEMENTATIONS += fjlite
177 +IMPLEMENTATIONS += snowbird
178 +IMPLEMENTATIONS += schumacher
179 +IMPLEMENTATIONS += blade
180 +IMPLEMENTATIONS += boston
181 +IMPLEMENTATIONS += seattle
182 +IMPLEMENTATIONS += chicago
183 +IMPLEMENTATIONS += sunfire
184 +IMPLEMENTATIONS += lw8
185 +IMPLEMENTATIONS += makaha
186 +IMPLEMENTATIONS += opl
187 +IMPLEMENTATIONS += lw2plus
188 +
189 +#
190 +# machine specific optimization, override default in Makefile.master
191 +#
192 +CC_XARCH = -m64 -xarch=sparcvis
193 +AS_XARCH = -xarch=v9a
194 +COPTIMIZE = -xO3
195 +CCMODE = -Xa
196 +
197 +CFLAGS = -xchip=ultra $(CCABS32) $(CCREGSYM)
198 +CFLAGS += $(CC_XARCH)
199 +CFLAGS += $(COPTIMIZE)
200 +CFLAGS += $(EXTRA_CFLAGS)
201 +CFLAGS += $(XAOPT)
202 +CFLAGS += $(INLINES) -D_ASM_INLINES
203 +CFLAGS += $(CCMODE)
204 +CFLAGS += $(SPACEFLAG)
205 +CFLAGS += $(CERRWARN)
206 +CFLAGS += $(CTF_FLAGS_$(CLASS))
207 +CFLAGS += $(C99MODE)
208 +CFLAGS += $(CCUNBOUND)
209 +CFLAGS += $(CCNOAUTOINLINE)
210 +CFLAGS += $(CCSTATICSYM)
211 +CFLAGS += $(CC32BITCALLERS)
212 +CFLAGS += $(IROPTFLAG)
213 +CFLAGS += $(CGLOBALSTATIC)
214 +CFLAGS += -xregs=no%float
215 +CFLAGS += -xstrconst
216 +CFLAGS += $(CSOURCEDEBUGFLAGS)
217 +CFLAGS += $(CUSERFLAGS)
218 +
219 +ASFLAGS += $(AS_XARCH)
220 +
221 +AS_INC_PATH += -I$(DSF_DIR)/$(OBJS_DIR)
222 +
223 +LINT_KMODS += $(GENUNIX_KMODS)
224 +
225 +LINT_DEFS = -m64
226 +
227 +#
228 +# The following must be defined for all implementations:
229 +#
230 +# MAPFILE: ld mapfile for the build of kernel/unix.
231 +# MODSTUBS: Module stubs source file.
232 +# GENCONST_SRC: genconst.c
233 +# OFFSETS: offsets.in
234 +# PLATFORM_OFFSETS: Platform specific mach_offsets.in
235 +# FDOFFSETS: fd_offsets.in
236 +#
237 +MAPFILE = $(UTSBASE)/sun4/conf/Mapfile
238 +MODSTUBS = $(UTSBASE)/sparc/ml/modstubs.s
239 +GENCONST_SRC = $(UTSBASE)/sun4/ml/genconst.c
240 +OFFSETS = $(UTSBASE)/sun4/ml/offsets.in
241 +PLATFORM_OFFSETS = $(UTSBASE)/sun4u/ml/mach_offsets.in
242 +FDOFFSETS = $(UTSBASE)/sun/io/fd_offsets.in
243 +
244 +#
245 +# Define the actual specific platforms
246 +#
247 +
248 +MACHINE_DEFS = -D$(PLATFORM) -D_MACHDEP -DSFMMU
249 +
250 +#
251 +# Software workarounds for hardware "features"
252 +#
253 +
254 +include $(UTSBASE)/$(PLATFORM)/Makefile.workarounds
255 +
23 256 #
24 -# ident "%Z%%M% %I% %E% SMI"
257 +# Debugging level
25 258 #
259 +# Special knowledge of which special debugging options effect which
260 +# file is used to optimize the build if these flags are changed.
261 +#
262 +# XXX: The above could possibly be done for more flags and files, but
263 +# is left as an experiment to the interested reader. Be forewarned,
264 +# that excessive use could lead to maintenance difficulties.
265 +#
266 +# Note: kslice can be enabled for the sun4u, but is disabled by default
267 +# in all cases.
268 +#
269 +
270 +DEBUG_DEFS_OBJ64 =
271 +DEBUG_DEFS_DBG64 = -DDEBUG
272 +DEBUG_DEFS = $(DEBUG_DEFS_$(BUILD_TYPE))
273 +
274 +DEBUG_COND_OBJ64 = $(POUND_SIGN)
275 +DEBUG_COND_DBG64 =
276 +IF_DEBUG_OBJ = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
277 +
278 +$(IF_DEBUG_OBJ)trap.o := DEBUG_DEFS += -DTRAPDEBUG
279 +$(IF_DEBUG_OBJ)mach_trap.o := DEBUG_DEFS += -DTRAPDEBUG
280 +$(IF_DEBUG_OBJ)syscall_trap.o := DEBUG_DEFS += -DSYSCALLTRACE
281 +$(IF_DEBUG_OBJ)clock.o := DEBUG_DEFS += -DKSLICE=0
282 +
283 +IF_TRAPTRACE_OBJ = $(IF_DEBUG_OBJ)
284 +# comment this out for a non-debug kernel with TRAPTRACE
285 +#IF_TRAPTRACE_OBJ = $(OBJS_DIR)/
286 +
287 +$(IF_TRAPTRACE_OBJ)mach_locore.o := DEBUG_DEFS += -DTRAPTRACE
288 +$(IF_TRAPTRACE_OBJ)mlsetup.o := DEBUG_DEFS += -DTRAPTRACE
289 +$(IF_TRAPTRACE_OBJ)syscall_trap.o := DEBUG_DEFS += -DTRAPTRACE
290 +$(IF_TRAPTRACE_OBJ)startup.o := DEBUG_DEFS += -DTRAPTRACE
291 +$(IF_TRAPTRACE_OBJ)mach_startup.o := DEBUG_DEFS += -DTRAPTRACE
292 +$(IF_TRAPTRACE_OBJ)mp_startup.o := DEBUG_DEFS += -DTRAPTRACE
293 +$(IF_TRAPTRACE_OBJ)cpu_states.o := DEBUG_DEFS += -DTRAPTRACE
294 +$(IF_TRAPTRACE_OBJ)mach_cpu_states.o := DEBUG_DEFS += -DTRAPTRACE
295 +$(IF_TRAPTRACE_OBJ)interrupt.o := DEBUG_DEFS += -DTRAPTRACE
296 +$(IF_TRAPTRACE_OBJ)mach_interrupt.o := DEBUG_DEFS += -DTRAPTRACE
297 +$(IF_TRAPTRACE_OBJ)sfmmu_asm.o := DEBUG_DEFS += -DTRAPTRACE
298 +$(IF_TRAPTRACE_OBJ)trap_table.o := DEBUG_DEFS += -DTRAPTRACE
299 +$(IF_TRAPTRACE_OBJ)xc.o := DEBUG_DEFS += -DTRAPTRACE
300 +$(IF_TRAPTRACE_OBJ)mach_xc.o := DEBUG_DEFS += -DTRAPTRACE
301 +$(IF_TRAPTRACE_OBJ)wbuf.o := DEBUG_DEFS += -DTRAPTRACE
302 +$(IF_TRAPTRACE_OBJ)trap.o := DEBUG_DEFS += -DTRAPTRACE
303 +$(IF_TRAPTRACE_OBJ)mach_trap.o := DEBUG_DEFS += -DTRAPTRACE
304 +$(IF_TRAPTRACE_OBJ)x_call.o := DEBUG_DEFS += -DTRAPTRACE
305 +$(IF_TRAPTRACE_OBJ)spitfire_asm.o := DEBUG_DEFS += -DTRAPTRACE
306 +$(IF_TRAPTRACE_OBJ)us3_common_asm.o := DEBUG_DEFS += -DTRAPTRACE
307 +$(IF_TRAPTRACE_OBJ)us3_cheetah_asm.o := DEBUG_DEFS += -DTRAPTRACE
308 +$(IF_TRAPTRACE_OBJ)us3_cheetahplus_asm.o := DEBUG_DEFS += -DTRAPTRACE
309 +$(IF_TRAPTRACE_OBJ)us3_jalapeno_asm.o := DEBUG_DEFS += -DTRAPTRACE
310 +$(IF_TRAPTRACE_OBJ)opl_olympus_asm.o := DEBUG_DEFS += -DTRAPTRACE
311 +
312 +# Comment these out if you don't want dispatcher lock statistics.
313 +
314 +#$(IF_DEBUG_OBJ)lock_prim.o := DEBUG_DEFS += -DDISP_LOCK_STATS
315 +#$(IF_DEBUG_OBJ)disp.o := DEBUG_DEFS += -DDISP_LOCK_STATS
316 +
317 +# Comment these out if you don't want dispatcher debugging
318 +
319 +#$(IF_DEBUG_OBJ)lock_prim.o := DEBUG_DEFS += -DDISP_DEBUG
320 +
321 +#
322 +# Collect the preprocessor definitions to be associated with *all*
323 +# files.
324 +#
325 +ALL_DEFS = $(MACHINE_DEFS) $(WORKAROUND_DEFS) $(DEBUG_DEFS) \
326 + $(OPTION_DEFS)
327 +GENCONST_DEFS = $(MACHINE_DEFS) $(OPTION_DEFS)
328 +
329 +#
330 +# ----- TRANSITIONAL SECTION --------------------------------------------------
331 +#
332 +
333 +#
334 +# Not everything which *should* be a module is a module yet. The
335 +# following is a list of such objects which are currently part of
336 +# the base kernel but should soon become kmods.
337 +#
338 +MACH_NOT_YET_KMODS = $(AUTOCONF_OBJS)
339 +
340 +#
341 +# ----- END OF TRANSITIONAL SECTION -------------------------------------------
342 +#
343 +
344 +#
345 +# The kernels modules which are "implementation architecture"
346 +# specific for this machine are enumerated below. Note that most
347 +# of these modules must exist (in one form or another) for each
348 +# architecture.
349 +#
350 +# Common Drivers (usually pseudo drivers) (/kernel/drv):
351 +#
352 +
353 +#
354 +# Machine Specific Driver Modules (/kernel/drv):
355 +#
356 +# XXX: How many of these are really machine specific?
357 +#
358 +DRV_KMODS += bbc_beep
359 +DRV_KMODS += cpc
360 +DRV_KMODS += fd
361 +DRV_KMODS += rootnex sbusmem upa64s zs zsh
362 +DRV_KMODS += sbus
363 +DRV_KMODS += pcisch pcipsy simba
364 +DRV_KMODS += px
365 +DRV_KMODS += ebus
366 +DRV_KMODS += su
367 +DRV_KMODS += tod
368 +DRV_KMODS += power
369 +DRV_KMODS += epic
370 +DRV_KMODS += grbeep
371 +DRV_KMODS += pcf8584 max1617 seeprom tda8444 pca9556
372 +DRV_KMODS += ics951601 adm1031
373 +DRV_KMODS += lm75 ltc1427 pcf8591 pcf8574 ssc050 ssc100
374 +DRV_KMODS += pic16f819
375 +DRV_KMODS += pic16f747
376 +DRV_KMODS += adm1026
377 +DRV_KMODS += us
378 +DRV_KMODS += ppm schppm jbusppm
379 +DRV_KMODS += mc-us3
380 +DRV_KMODS += mc-us3i
381 +DRV_KMODS += smbus
382 +DRV_KMODS += db21554
383 +DRV_KMODS += gpio_87317
384 +DRV_KMODS += isadma
385 +DRV_KMODS += sbbc
386 +DRV_KMODS += pmubus
387 +DRV_KMODS += pmugpio
388 +DRV_KMODS += pmc
389 +DRV_KMODS += trapstat
390 +DRV_KMODS += rmc_comm
391 +DRV_KMODS += rmcadm
392 +DRV_KMODS += rmclomv
393 +DRV_KMODS += sf
394 +DRV_KMODS += nxge
395 +DRV_KMODS += i2bsc
396 +DRV_KMODS += mem_cache
397 +
398 +#
399 +# Exec Class Modules (/kernel/exec):
400 +#
401 +EXEC_KMODS +=
402 +
403 +#
404 +# Scheduling Class Modules (/kernel/sched):
405 +#
406 +SCHED_KMODS +=
407 +
408 +#
409 +# File System Modules (/kernel/fs):
410 +#
411 +FS_KMODS +=
412 +
413 +#
414 +# Streams Modules (/kernel/strmod):
415 +#
416 +STRMOD_KMODS += kb
417 +
418 +#
419 +# 'System' Modules (/kernel/sys):
420 +#
421 +SYS_KMODS +=
422 +
423 +#
424 +# 'User' Modules (/kernel/misc):
425 +#
426 +MISC_KMODS += bignum
427 +MISC_KMODS += obpsym bootdev vis cpr platmod md5 sha1 i2c_svc
428 +MISC_KMODS += sbd
429 +
430 +MISC_KMODS += opl_cfg
431 +MISC_KMODS += zuluvm
432 +MISC_KMODS += gptwo_cpu gptwocfg
433 +MISC_KMODS += pcie
434 +
435 +#
436 +# Brand modules
437 +#
438 +BRAND_KMODS += sn1_brand s10_brand
26 439
27 -UTSTREE=$(UTSBASE)
440 +#
441 +# Software Cryptographic Providers (/kernel/crypto):
442 +#
443 +CRYPTO_KMODS += aes
444 +CRYPTO_KMODS += arcfour
445 +CRYPTO_KMODS += des
446 +
447 +#
448 +# generic-unix module (/kernel/genunix):
449 +#
450 +GENUNIX_KMODS += genunix
451 +
452 +# 'User' "Modules" excluded from the Full Kernel lint target:
453 +#
454 +
455 +#
456 +# Modules eXcluded from the product:
457 +#
458 +XMODS +=
28 459
29 -include $(UTSBASE)/sun4u/Makefile.sun4u.shared
460 +#
461 +# cpu modules
462 +#
463 +CPU_KMODS += cheetah cheetahplus jalapeno serrano spitfire hummingbird
464 +
465 +#
466 +# sun4u 'TOD' Modules (/platform/.../kernel/tod):
467 +#
468 +TOD_KMODS += todds1287 todds1337 todmostek todstarfire
469 +TOD_KMODS += todm5819 todblade todbq4802 todsg todopl
470 +TOD_KMODS += todm5819p_rmc todstarcat
471 +
472 +#
473 +# Performance Counter BackEnd Modules (/usr/kernel/pcbe):
474 +#
475 +PCBE_KMODS += us234_pcbe
476 +PCBE_KMODS += opl_pcbe
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX