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]
23 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
28 # This Makefile defines the build rules for the directory uts/i86xpv
29 # and its children. These are the source files which are i86xpv
30 # "implementation architecture" dependent.
32 # The following two-level ordering must be maintained in this file.
34 # - Lines are sorted first in order of decreasing specificity based on
35 # the first directory component. That is, sun4u rules come before
36 # sparc rules come before common rules.
38 # - Lines whose initial directory components are equal are sorted
39 # alphabetically by the remaining components.
43 # We share many files with the i86pc implementation to reduce
44 # the amount of merge work
48 # Section 1a: C object build rules
50 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/conf/%.c
54 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/cpu/generic_cpu/%.c
58 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/io/%.c
62 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/ioat/%.c
66 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/pci/%.c
70 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/pciex/%.c
74 $(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/pciex/hotplug/%.c
78 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/io/psm/%.c
82 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/ml/%.s
85 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/os/%.c
89 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/vm/%.c
93 $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/boot/%.c
97 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/boot/%.c
101 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/gfx_private/%.c
102 $(COMPILE.c) -o $@ $<
105 $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/xsvc/%.c
106 $(COMPILE.c) -o $@ $<
109 $(OBJS_DIR)/%.o: $(UTSBASE)/common/io/pciex/%.c
110 $(COMPILE.c) -o $@ $<
113 # We need this one to make sure we share dtrace_subr.c with i86pc
114 # Otherwise we pick up common/os/dtrace_subr.c instead :(
115 # Note that only the non-commented versions of this hack end up
116 # in the lint section below.
118 $(OBJS_DIR)/dtrace_subr.o: $(UTSBASE)/i86pc/os/dtrace_subr.c
119 $(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c
123 $(OBJS_DIR)/%.o: $(UTSBASE)/common/cpr/%.c
124 $(COMPILE.c) -o $@ $<
127 $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/io/%.c
128 $(COMPILE.c) -o $@ $<
131 $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/os/%.c
132 $(COMPILE.c) -o $@ $<
135 $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/dtrace/%.c
136 $(COMPILE.c) -o $@ $<
140 # Section 1b: Lint `object' build rules
142 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/conf/%.c
143 @($(LHEAD) $(LINT.c) $< $(LTAIL))
145 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/io/%.c
146 @($(LHEAD) $(LINT.c) $< $(LTAIL))
148 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/io/psm/%.c
149 @($(LHEAD) $(LINT.c) $< $(LTAIL))
151 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/ml/%.s
152 @($(LHEAD) $(LINT.s) $< $(LTAIL))
154 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/os/%.c
155 @($(LHEAD) $(LINT.c) $< $(LTAIL))
157 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/vm/%.c
158 @($(LHEAD) $(LINT.c) $< $(LTAIL))
160 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/boot/%.c
161 @($(LHEAD) $(LINT.c) $< $(LTAIL))
163 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/boot/%.c
164 @($(LHEAD) $(LINT.c) $< $(LTAIL))
166 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/dtrace/%.c
167 @($(LHEAD) $(LINT.c) $< $(LTAIL))
171 $(LINTS_DIR)/dtrace_subr.ln: $(UTSBASE)/i86pc/os/dtrace_subr.c
172 @($(LHEAD) $(LINT.c) $(UTSBASE)/i86pc/os/dtrace_subr.c $(LTAIL))
177 # This is different from i86pc - uses 64 bit compiler for 64 bit
179 # Note that we *don't* want to use the definitions that have been augmented
180 # by various bits of the context of the kernel build environment; so we
181 # start constructing flags and things afresh.
183 DBOOT_OBJS_DIR= dboot/$(OBJS_DIR)
185 DBOOT_XARCH_32 = $(i386_XARCH)
186 DBOOT_XARCH_64 = $(amd64_XARCH)
187 DBOOT_CFLAGS = $(DBOOT_XARCH_$(CLASS)) $(CERRWARN) $(CCNOAUTOINLINE) -O
189 DBOOT_AS_XARCH_32 = $(i386_AS_XARCH)
190 DBOOT_AS_XARCH_64 = $(amd64_AS_XARCH)
191 DBOOT_ASFLAGS = $(DBOOT_AS_XARCH_$(CLASS)) -P -D_ASM
193 DBOOT_LINTFLAGS_i86xpv = $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS))
195 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/common/xen/os/%.c
196 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
198 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/boot/%.c
199 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
201 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/boot/%.c
202 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
204 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/dboot/%.c
205 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
207 $(DBOOT_OBJS_DIR)/%.o: $(COMMONBASE)/util/%.c
208 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
210 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/os/%.c
211 $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
213 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/ml/%.s
214 $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
216 $(DBOOT_OBJS_DIR)/%.o: $(COMMONBASE)/util/i386/%.s
217 $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
219 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/ml/%.s
220 $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
222 $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/dboot/%.s
223 $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
225 include $(UTSBASE)/i86pc/Makefile.rules
227 DBOOT_DEFS += -D__xpv
229 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/cpr/%.c
230 @($(LHEAD) $(LINT.c) $< $(LTAIL))
232 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/ioat/%.c
233 @($(LHEAD) $(LINT.c) $< $(LTAIL))
235 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/pci/%.c
236 @($(LHEAD) $(LINT.c) $< $(LTAIL))
238 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/pciex/%.c
239 @($(LHEAD) $(LINT.c) $< $(LTAIL))
241 $(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/pciex/hotplug/%.c
242 @($(LHEAD) $(LINT.c) $< $(LTAIL))
244 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/gfx_private/%.c
245 @($(LHEAD) $(LINT.c) $< $(LTAIL))
247 $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/xsvc/%.c
248 @($(LHEAD) $(LINT.c) $< $(LTAIL))
250 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/pciex/%.c
251 @($(LHEAD) $(LINT.c) $< $(LTAIL))
253 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/io/%.c
254 @($(LHEAD) $(LINT.c) $< $(LTAIL))
256 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/os/%.c
257 @($(LHEAD) $(LINT.c) $< $(LTAIL))
259 $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/ml/%.s
260 @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
262 $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/os/%.c
263 @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
265 $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/os/%.c
266 @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
268 $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/ml/%.s
269 @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
271 $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/boot/%.c
272 @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))