xref: /illumos-gate/usr/src/uts/i86xpv/Makefile.rules (revision 5d9d9091)
1843e1988Sjohnlev#
2843e1988Sjohnlev# CDDL HEADER START
3843e1988Sjohnlev#
4843e1988Sjohnlev# The contents of this file are subject to the terms of the
5843e1988Sjohnlev# Common Development and Distribution License (the "License").
6843e1988Sjohnlev# You may not use this file except in compliance with the License.
7843e1988Sjohnlev#
8843e1988Sjohnlev# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9843e1988Sjohnlev# or http://www.opensolaris.org/os/licensing.
10843e1988Sjohnlev# See the License for the specific language governing permissions
11843e1988Sjohnlev# and limitations under the License.
12843e1988Sjohnlev#
13843e1988Sjohnlev# When distributing Covered Code, include this CDDL HEADER in each
14843e1988Sjohnlev# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15843e1988Sjohnlev# If applicable, add the following below this CDDL HEADER, with the
16843e1988Sjohnlev# fields enclosed by brackets "[]" replaced with your own identifying
17843e1988Sjohnlev# information: Portions Copyright [yyyy] [name of copyright owner]
18843e1988Sjohnlev#
19843e1988Sjohnlev# CDDL HEADER END
20843e1988Sjohnlev#
21843e1988Sjohnlev
22843e1988Sjohnlev#
2326947304SEvan Yan# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24843e1988Sjohnlev# Use is subject to license terms.
25843e1988Sjohnlev#
26843e1988Sjohnlev
27843e1988Sjohnlev#
28843e1988Sjohnlev#	This Makefile defines the build rules for the directory uts/i86xpv
29843e1988Sjohnlev#	and its children. These are the source files which are i86xpv
30843e1988Sjohnlev#	"implementation architecture" dependent.
31843e1988Sjohnlev#
32843e1988Sjohnlev#	The following two-level ordering must be maintained in this file.
33843e1988Sjohnlev#
34843e1988Sjohnlev#	- Lines are sorted first in order of decreasing specificity based on
35843e1988Sjohnlev#	  the first directory component.  That is, sun4u rules come before
36843e1988Sjohnlev#	  sparc rules come before common rules.
37843e1988Sjohnlev#
38843e1988Sjohnlev#	- Lines whose initial directory components are equal are sorted
39843e1988Sjohnlev#	  alphabetically by the remaining components.
40843e1988Sjohnlev#
41843e1988Sjohnlev
42843e1988Sjohnlev#
43843e1988Sjohnlev#	We share many files with the i86pc implementation to reduce
44843e1988Sjohnlev#	the amount of merge work
45843e1988Sjohnlev#
46843e1988Sjohnlev
47843e1988Sjohnlev#
48843e1988Sjohnlev#	Section 1a: C object build rules
49843e1988Sjohnlev#
50843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/conf/%.c
51843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
52843e1988Sjohnlev	$(CTFCONVERT_O)
53843e1988Sjohnlev
54e4b86885SCheng Sean Ye$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/cpu/generic_cpu/%.c
55e4b86885SCheng Sean Ye	$(COMPILE.c) -o $@ $<
56e4b86885SCheng Sean Ye	$(CTFCONVERT_O)
57e4b86885SCheng Sean Ye
58843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/io/%.c
59843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
60843e1988Sjohnlev	$(CTFCONVERT_O)
61843e1988Sjohnlev
6217169044Sbrutus$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/ioat/%.c
6317169044Sbrutus	$(COMPILE.c) -o $@ $<
6417169044Sbrutus	$(CTFCONVERT_O)
6517169044Sbrutus
66843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pci/%.c
67843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
68843e1988Sjohnlev	$(CTFCONVERT_O)
69843e1988Sjohnlev
70843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pciex/%.c
71843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
72843e1988Sjohnlev	$(CTFCONVERT_O)
73843e1988Sjohnlev
7426947304SEvan Yan$(OBJS_DIR)/%.o:		$(UTSBASE)/intel/io/pciex/hotplug/%.c
7526947304SEvan Yan	$(COMPILE.c) -o $@ $<
7626947304SEvan Yan	$(CTFCONVERT_O)
7726947304SEvan Yan
78843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/io/psm/%.c
79843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
80843e1988Sjohnlev	$(CTFCONVERT_O)
81843e1988Sjohnlev
82*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/ml/%.S
83843e1988Sjohnlev	$(COMPILE.s) -o $@ $<
84843e1988Sjohnlev
85843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/os/%.c
86843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
87843e1988Sjohnlev	$(CTFCONVERT_O)
88843e1988Sjohnlev
89843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/vm/%.c
90843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
91843e1988Sjohnlev	$(CTFCONVERT_O)
92843e1988Sjohnlev
939e3aeadeSAndy Fiddaman$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/promif/%.c
949e3aeadeSAndy Fiddaman	$(COMPILE.c) -o $@ $<
959e3aeadeSAndy Fiddaman	$(CTFCONVERT_O)
969e3aeadeSAndy Fiddaman
97843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/boot/%.c
98843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
99843e1988Sjohnlev	$(CTFCONVERT_O)
100843e1988Sjohnlev
101843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
102843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
103843e1988Sjohnlev	$(CTFCONVERT_O)
104843e1988Sjohnlev
105843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/gfx_private/%.c
106843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
107843e1988Sjohnlev	$(CTFCONVERT_O)
108843e1988Sjohnlev
109843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/xsvc/%.c
110843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
111843e1988Sjohnlev	$(CTFCONVERT_O)
112843e1988Sjohnlev
113c0da6274SZhi-Jun Robin Fu$(OBJS_DIR)/%.o:		$(UTSBASE)/common/io/pciex/%.c
114c0da6274SZhi-Jun Robin Fu	$(COMPILE.c) -o $@ $<
115c0da6274SZhi-Jun Robin Fu	$(CTFCONVERT_O)
116c0da6274SZhi-Jun Robin Fu
117843e1988Sjohnlev#	We need this one to make sure we share dtrace_subr.c with i86pc
118843e1988Sjohnlev#	Otherwise we pick up common/os/dtrace_subr.c instead :(
119843e1988Sjohnlev
120843e1988Sjohnlev$(OBJS_DIR)/dtrace_subr.o:	$(UTSBASE)/i86pc/os/dtrace_subr.c
121843e1988Sjohnlev	$(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c
122843e1988Sjohnlev	$(CTFCONVERT_O)
123843e1988Sjohnlev
124843e1988Sjohnlev#
125843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/common/cpr/%.c
126843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
127843e1988Sjohnlev	$(CTFCONVERT_O)
128843e1988Sjohnlev
129843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/io/%.c
130843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
131843e1988Sjohnlev	$(CTFCONVERT_O)
132843e1988Sjohnlev
133843e1988Sjohnlev$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
134843e1988Sjohnlev	$(COMPILE.c) -o $@ $<
135843e1988Sjohnlev	$(CTFCONVERT_O)
136843e1988Sjohnlev
137c7158ae9Stariq$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/dtrace/%.c
138c7158ae9Stariq	$(COMPILE.c) -o $@ $<
139c7158ae9Stariq	$(CTFCONVERT_O)
140843e1988Sjohnlev
141843e1988SjohnlevDBOOT_OBJS_DIR= dboot/$(OBJS_DIR)
142843e1988Sjohnlev
143551bc2a6Smrj$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
144551bc2a6Smrj	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
145551bc2a6Smrj
146cbc8e155SToomas Soome$(DBOOT_OBJS_DIR)/%.o:		$(SRC)/common/font/%.c
147898c3fecSToomas Soome	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
148898c3fecSToomas Soome
149898c3fecSToomas Soome$(DBOOT_OBJS_DIR)/%.o:		$(DBOOT_OBJS_DIR)/%.c
150898c3fecSToomas Soome	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
151898c3fecSToomas Soome
152843e1988Sjohnlev$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/boot/%.c
153843e1988Sjohnlev	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
154843e1988Sjohnlev
155843e1988Sjohnlev$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
156843e1988Sjohnlev	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
157843e1988Sjohnlev
158843e1988Sjohnlev$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.c
159843e1988Sjohnlev	$(CC) $(DBOOT_CFLAGS)  $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
160843e1988Sjohnlev
161843e1988Sjohnlev$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/%.c
162843e1988Sjohnlev	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
163843e1988Sjohnlev
164843e1988Sjohnlev$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/os/%.c
165843e1988Sjohnlev	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
166843e1988Sjohnlev
167*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/intel/ml/%.S
168*5d9d9091SRichard Lowe	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -c -o $@ $<
169551bc2a6Smrj
170*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/i386/%.S
171*5d9d9091SRichard Lowe	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -c -o $@ $<
172843e1988Sjohnlev
173*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/ml/%.S
174*5d9d9091SRichard Lowe	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -c -o $@ $<
175843e1988Sjohnlev
176*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.S
177*5d9d9091SRichard Lowe	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -c -o $@ $<
178843e1988Sjohnlev
179843e1988Sjohnlevinclude $(UTSBASE)/i86pc/Makefile.rules
180843e1988Sjohnlev
181*5d9d9091SRichard Lowe# This is different from i86pc - uses 64 bit compiler for 64 bit
182*5d9d9091SRichard Lowe#
183*5d9d9091SRichard Lowe# Note that we *don't* want to use the definitions that have been augmented
184*5d9d9091SRichard Lowe# by various bits of the context of the kernel build environment; so we
185*5d9d9091SRichard Lowe# start constructing flags and things afresh.
186*5d9d9091SRichard Lowe
187843e1988SjohnlevDBOOT_DEFS += -D__xpv
188*5d9d9091SRichard Lowe
189*5d9d9091SRichard LoweDBOOT_XARCH_64 = $(amd64_XARCH)
190*5d9d9091SRichard LoweDBOOT_CFLAGS = $(DBOOT_XARCH_64) $(CSTD) $(CERRWARN) \
191*5d9d9091SRichard Lowe    $(CCNOAUTOINLINE) -O
192*5d9d9091SRichard Lowe
193*5d9d9091SRichard LoweDBOOT_AS_XARCH_64 = $(amd64_XARCH)
194*5d9d9091SRichard LoweDBOOT_ASFLAGS = $(DBOOT_AS_XARCH_64) -D_ASM
195