1 5084 johnlev # 2 5084 johnlev # CDDL HEADER START 3 5084 johnlev # 4 5084 johnlev # The contents of this file are subject to the terms of the 5 5084 johnlev # Common Development and Distribution License (the "License"). 6 5084 johnlev # You may not use this file except in compliance with the License. 7 5084 johnlev # 8 5084 johnlev # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 5084 johnlev # or http://www.opensolaris.org/os/licensing. 10 5084 johnlev # See the License for the specific language governing permissions 11 5084 johnlev # and limitations under the License. 12 5084 johnlev # 13 5084 johnlev # When distributing Covered Code, include this CDDL HEADER in each 14 5084 johnlev # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 5084 johnlev # If applicable, add the following below this CDDL HEADER, with the 16 5084 johnlev # fields enclosed by brackets "[]" replaced with your own identifying 17 5084 johnlev # information: Portions Copyright [yyyy] [name of copyright owner] 18 5084 johnlev # 19 5084 johnlev # CDDL HEADER END 20 5084 johnlev # 21 5084 johnlev 22 5084 johnlev # 23 10923 Evan # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24 5084 johnlev # Use is subject to license terms. 25 5084 johnlev # 26 5084 johnlev 27 5084 johnlev # 28 5084 johnlev # This Makefile defines the build rules for the directory uts/i86xpv 29 5084 johnlev # and its children. These are the source files which are i86xpv 30 5084 johnlev # "implementation architecture" dependent. 31 5084 johnlev # 32 5084 johnlev # The following two-level ordering must be maintained in this file. 33 5084 johnlev # 34 5084 johnlev # - Lines are sorted first in order of decreasing specificity based on 35 5084 johnlev # the first directory component. That is, sun4u rules come before 36 5084 johnlev # sparc rules come before common rules. 37 5084 johnlev # 38 5084 johnlev # - Lines whose initial directory components are equal are sorted 39 5084 johnlev # alphabetically by the remaining components. 40 5084 johnlev # 41 5084 johnlev 42 5084 johnlev # 43 5084 johnlev # We share many files with the i86pc implementation to reduce 44 5084 johnlev # the amount of merge work 45 5084 johnlev # 46 5084 johnlev 47 5084 johnlev # 48 5084 johnlev # Section 1a: C object build rules 49 5084 johnlev # 50 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/conf/%.c 51 7532 Sean $(COMPILE.c) -o $@ $< 52 7532 Sean $(CTFCONVERT_O) 53 7532 Sean 54 7532 Sean $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/cpu/generic_cpu/%.c 55 5084 johnlev $(COMPILE.c) -o $@ $< 56 5084 johnlev $(CTFCONVERT_O) 57 5084 johnlev 58 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/io/%.c 59 6707 brutus $(COMPILE.c) -o $@ $< 60 6707 brutus $(CTFCONVERT_O) 61 6707 brutus 62 6707 brutus $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/ioat/%.c 63 5084 johnlev $(COMPILE.c) -o $@ $< 64 5084 johnlev $(CTFCONVERT_O) 65 5084 johnlev 66 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/pci/%.c 67 5084 johnlev $(COMPILE.c) -o $@ $< 68 5084 johnlev $(CTFCONVERT_O) 69 5084 johnlev 70 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/pciex/%.c 71 10923 Evan $(COMPILE.c) -o $@ $< 72 10923 Evan $(CTFCONVERT_O) 73 10923 Evan 74 10923 Evan $(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/pciex/hotplug/%.c 75 5084 johnlev $(COMPILE.c) -o $@ $< 76 5084 johnlev $(CTFCONVERT_O) 77 5084 johnlev 78 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/io/psm/%.c 79 5084 johnlev $(COMPILE.c) -o $@ $< 80 5084 johnlev $(CTFCONVERT_O) 81 5084 johnlev 82 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/ml/%.s 83 5084 johnlev $(COMPILE.s) -o $@ $< 84 5084 johnlev 85 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/os/%.c 86 5084 johnlev $(COMPILE.c) -o $@ $< 87 5084 johnlev $(CTFCONVERT_O) 88 5084 johnlev 89 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/vm/%.c 90 5084 johnlev $(COMPILE.c) -o $@ $< 91 5084 johnlev $(CTFCONVERT_O) 92 5084 johnlev 93 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/boot/%.c 94 5084 johnlev $(COMPILE.c) -o $@ $< 95 5084 johnlev $(CTFCONVERT_O) 96 5084 johnlev 97 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/boot/%.c 98 5084 johnlev $(COMPILE.c) -o $@ $< 99 5084 johnlev $(CTFCONVERT_O) 100 5084 johnlev 101 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/gfx_private/%.c 102 5084 johnlev $(COMPILE.c) -o $@ $< 103 5084 johnlev $(CTFCONVERT_O) 104 5084 johnlev 105 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/xsvc/%.c 106 5084 johnlev $(COMPILE.c) -o $@ $< 107 5084 johnlev $(CTFCONVERT_O) 108 5084 johnlev 109 5084 johnlev # We need this one to make sure we share dtrace_subr.c with i86pc 110 5084 johnlev # Otherwise we pick up common/os/dtrace_subr.c instead :( 111 5084 johnlev # Note that only the non-commented versions of this hack end up 112 5084 johnlev # in the lint section below. 113 5084 johnlev 114 5084 johnlev $(OBJS_DIR)/dtrace_subr.o: $(UTSBASE)/i86pc/os/dtrace_subr.c 115 5084 johnlev $(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c 116 5084 johnlev $(CTFCONVERT_O) 117 5084 johnlev 118 5084 johnlev # 119 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/common/cpr/%.c 120 5084 johnlev $(COMPILE.c) -o $@ $< 121 5084 johnlev $(CTFCONVERT_O) 122 5084 johnlev 123 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/io/%.c 124 5084 johnlev $(COMPILE.c) -o $@ $< 125 5084 johnlev $(CTFCONVERT_O) 126 5084 johnlev 127 5084 johnlev $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/os/%.c 128 5084 johnlev $(COMPILE.c) -o $@ $< 129 5084 johnlev $(CTFCONVERT_O) 130 5084 johnlev 131 6670 tariq $(OBJS_DIR)/%.o: $(UTSBASE)/common/xen/dtrace/%.c 132 6670 tariq $(COMPILE.c) -o $@ $< 133 6670 tariq $(CTFCONVERT_O) 134 6670 tariq 135 5084 johnlev # 136 5084 johnlev # Section 1b: Lint `object' build rules 137 5084 johnlev # 138 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/conf/%.c 139 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 140 5084 johnlev 141 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/io/%.c 142 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 143 5084 johnlev 144 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/io/psm/%.c 145 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 146 5084 johnlev 147 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/ml/%.s 148 5084 johnlev @($(LHEAD) $(LINT.s) $< $(LTAIL)) 149 5084 johnlev 150 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/os/%.c 151 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 152 5084 johnlev 153 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/vm/%.c 154 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 155 5084 johnlev 156 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/boot/%.c 157 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 158 5084 johnlev 159 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/boot/%.c 160 6670 tariq @($(LHEAD) $(LINT.c) $< $(LTAIL)) 161 6670 tariq 162 6670 tariq $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/dtrace/%.c 163 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 164 5084 johnlev 165 5084 johnlev # See note above. 166 5084 johnlev 167 5084 johnlev $(LINTS_DIR)/dtrace_subr.ln: $(UTSBASE)/i86pc/os/dtrace_subr.c 168 5084 johnlev @($(LHEAD) $(LINT.c) $(UTSBASE)/i86pc/os/dtrace_subr.c $(LTAIL)) 169 5084 johnlev 170 5084 johnlev # 171 5084 johnlev # stuff for dboot 172 5084 johnlev # 173 5084 johnlev # This is different from i86pc - uses 64 bit compiler for 64 bit 174 5084 johnlev # 175 5084 johnlev # Note that we *don't* want to use the definitions that have been augmented 176 5084 johnlev # by various bits of the context of the kernel build environment; so we 177 5084 johnlev # start constructing flags and things afresh. 178 5084 johnlev 179 5084 johnlev DBOOT_OBJS_DIR= dboot/$(OBJS_DIR) 180 5084 johnlev 181 5084 johnlev DBOOT_XARCH_32 = $(i386_XARCH) 182 5084 johnlev DBOOT_XARCH_64 = $(amd64_XARCH) 183 5084 johnlev DBOOT_CFLAGS = $(DBOOT_XARCH_$(CLASS)) $(CERRWARN) -O 184 5084 johnlev 185 5084 johnlev DBOOT_AS_XARCH_32 = $(i386_AS_XARCH) 186 5084 johnlev DBOOT_AS_XARCH_64 = $(amd64_AS_XARCH) 187 5084 johnlev DBOOT_ASFLAGS = $(DBOOT_AS_XARCH_$(CLASS)) -P -D_ASM 188 5084 johnlev 189 5084 johnlev DBOOT_LINTFLAGS_i86xpv = $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS)) 190 5084 johnlev 191 5741 mrj $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/common/xen/os/%.c 192 5741 mrj $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 193 5741 mrj 194 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/boot/%.c 195 5084 johnlev $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 196 5084 johnlev 197 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/boot/%.c 198 5084 johnlev $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 199 5084 johnlev 200 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/dboot/%.c 201 5084 johnlev $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 202 5084 johnlev 203 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(COMMONBASE)/util/%.c 204 5084 johnlev $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 205 5084 johnlev 206 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/os/%.c 207 5084 johnlev $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $< 208 5741 mrj 209 5741 mrj $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/ml/%.s 210 5741 mrj $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $< 211 5084 johnlev 212 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(COMMONBASE)/util/i386/%.s 213 5084 johnlev $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $< 214 5084 johnlev 215 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86xpv/ml/%.s 216 5084 johnlev $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $< 217 5084 johnlev 218 5084 johnlev $(DBOOT_OBJS_DIR)/%.o: $(UTSBASE)/i86pc/dboot/%.s 219 5084 johnlev $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $< 220 5084 johnlev 221 5084 johnlev include $(UTSBASE)/i86pc/Makefile.rules 222 5084 johnlev 223 5084 johnlev DBOOT_DEFS += -D__xpv 224 5084 johnlev 225 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/common/cpr/%.c 226 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 227 5084 johnlev 228 6707 brutus $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/ioat/%.c 229 6707 brutus @($(LHEAD) $(LINT.c) $< $(LTAIL)) 230 6707 brutus 231 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/pci/%.c 232 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 233 5084 johnlev 234 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/pciex/%.c 235 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 236 5084 johnlev 237 10923 Evan $(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/pciex/hotplug/%.c 238 10923 Evan @($(LHEAD) $(LINT.c) $< $(LTAIL)) 239 10923 Evan 240 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/gfx_private/%.c 241 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 242 5084 johnlev 243 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/i86pc/io/xsvc/%.c 244 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 245 5084 johnlev 246 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/io/%.c 247 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 248 5084 johnlev 249 5084 johnlev $(LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/os/%.c 250 5084 johnlev @($(LHEAD) $(LINT.c) $< $(LTAIL)) 251 5084 johnlev 252 5741 mrj $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/ml/%.s 253 5741 mrj @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL)) 254 5741 mrj 255 5741 mrj $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/common/xen/os/%.c 256 5741 mrj @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL)) 257 5741 mrj 258 5084 johnlev $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/os/%.c 259 5084 johnlev @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL)) 260 5084 johnlev 261 5084 johnlev $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/ml/%.s 262 5084 johnlev @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL)) 263 5084 johnlev 264 5084 johnlev $(DBOOT_LINTS_DIR)/%.ln: $(UTSBASE)/i86xpv/boot/%.c 265 5084 johnlev @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL)) 266