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# Copyright 2019 Joyent, Inc. 25# Copyright 2017 Nexenta Systems, Inc. 26# 27 28# 29# This Makefile defines all file modules and build rules for the 30# directory uts/intel and its children. These are the source files which 31# are specific to the intel processor. 32# 33# 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. 37# 38# Lines whose initial directory components are equal are sorted 39# alphabetically by the remaining components. 40 41# 42# Need a way to distinguish between the ia32 and amd64 subdirs. 43# 44SUBARCH_DIR_32 = ia32 45SUBARCH_DIR_64 = amd64 46SUBARCH_DIR = $(SUBARCH_DIR_$(CLASS)) 47 48# 49# Section 1a: C object build rules 50# 51$(OBJS_DIR)/%.o: $(SRC)/common/fs/%.c 52 $(COMPILE.c) -o $@ $< 53 $(CTFCONVERT_O) 54 55$(OBJS_DIR)/%.o: $(UTSBASE)/common/io/power/%.c 56 $(COMPILE.c) -o $@ $< 57 $(CTFCONVERT_O) 58 59$(OBJS_DIR)/%.o: $(SRC)/common/util/i386/%.s 60 $(COMPILE.s) -o $@ $< 61 62$(OBJS_DIR)/%.o: $(UTSBASE)/intel/brand/sn1/%.s 63 $(COMPILE.s) -o $@ $< 64 65$(OBJS_DIR)/%.o: $(UTSBASE)/intel/brand/solaris10/%.s 66 $(COMPILE.s) -o $@ $< 67 68$(OBJS_DIR)/%.o: $(UTSBASE)/intel/dtrace/%.c 69 $(COMPILE.c) -o $@ $< 70 $(CTFCONVERT_O) 71 72$(OBJS_DIR)/%.o: $(UTSBASE)/intel/dtrace/%.s 73 $(COMPILE.s) -o $@ $< 74 75$(OBJS_DIR)/%.o: $(UTSBASE)/intel/fs/proc/%.c 76 $(COMPILE.c) -o $@ $< 77 $(CTFCONVERT_O) 78 79$(OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/ml/%.s 80 $(COMPILE.s) -o $@ $< 81 82$(OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/os/%.c 83 $(COMPILE.c) -o $@ $< 84 $(CTFCONVERT_O) 85 86$(OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/promif/%.c 87 $(COMPILE.c) -o $@ $< 88 $(CTFCONVERT_O) 89 90$(OBJS_DIR)/%.o: $(UTSBASE)/intel/ia32/syscall/%.c 91 $(COMPILE.c) -o $@ $< 92 $(CTFCONVERT_O) 93 94$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/%.c 95 $(COMPILE.c) -o $@ $< 96 $(CTFCONVERT_O) 97 98$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/acpica/%.c 99 $(COMPILE.c) -o $@ $< 100 $(CTFCONVERT_O) 101 102$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/acpica/%.s 103 $(COMPILE.s) -o $@ $< 104 105$(OBJS_DIR)/%.o: $(SRC)/common/acpica/events/%.c 106 $(COMPILE.c) -o $@ $< 107 $(CTFCONVERT_O) 108 109$(OBJS_DIR)/%.o: $(SRC)/common/acpica/hardware/%.c 110 $(COMPILE.c) -o $@ $< 111 $(CTFCONVERT_O) 112 113$(OBJS_DIR)/%.o: $(SRC)/common/acpica/dispatcher/%.c 114 $(COMPILE.c) -o $@ $< 115 $(CTFCONVERT_O) 116 117$(OBJS_DIR)/%.o: $(SRC)/common/acpica/executer/%.c 118 $(COMPILE.c) -o $@ $< 119 $(CTFCONVERT_O) 120 121$(OBJS_DIR)/%.o: $(SRC)/common/acpica/parser/%.c 122 $(COMPILE.c) -o $@ $< 123 $(CTFCONVERT_O) 124 125$(OBJS_DIR)/%.o: $(SRC)/common/acpica/namespace/%.c 126 $(COMPILE.c) -o $@ $< 127 $(CTFCONVERT_O) 128 129$(OBJS_DIR)/%.o: $(SRC)/common/acpica/resources/%.c 130 $(COMPILE.c) -o $@ $< 131 $(CTFCONVERT_O) 132 133$(OBJS_DIR)/%.o: $(SRC)/common/acpica/tables/%.c 134 $(COMPILE.c) -o $@ $< 135 $(CTFCONVERT_O) 136 137$(OBJS_DIR)/%.o: $(SRC)/common/acpica/utilities/%.c 138 $(COMPILE.c) -o $@ $< 139 $(CTFCONVERT_O) 140 141$(OBJS_DIR)/%.o: $(SRC)/common/acpica/disassembler/%.c 142 $(COMPILE.c) -o $@ $< 143 $(CTFCONVERT_O) 144 145$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/amd8111s/%.c 146 $(COMPILE.c) -o $@ $< 147 $(CTFCONVERT_O) 148 149$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/amr/%.c 150 $(COMPILE.c) -o $@ $< 151 $(CTFCONVERT_O) 152 153$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/hotplug/pcicfg/%.c 154 $(COMPILE.c) -o $@ $< 155 $(CTFCONVERT_O) 156 157$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/ipmi/%.c 158 $(COMPILE.c) -o $@ $< 159 $(CTFCONVERT_O) 160 161$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/intel_nb5000/%.c 162 $(COMPILE.c) -o $@ $< 163 $(CTFCONVERT_O) 164 165$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/intel_nhm/%.c 166 $(COMPILE.c) -o $@ $< 167 $(CTFCONVERT_O) 168 169$(OBJS_DIR)/%.o: $(SRC)/common/mc/mc-amd/%.c 170 $(COMPILE.c) -o $@ $< 171 $(CTFCONVERT_O) 172 173$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/mc-amd/%.c 174 $(COMPILE.c) -o $@ $< 175 $(CTFCONVERT_O) 176 177$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/pci/%.c 178 $(COMPILE.c) -o $@ $< 179 $(CTFCONVERT_O) 180 181$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/pciex/%.c 182 $(COMPILE.c) -o $@ $< 183 $(CTFCONVERT_O) 184 185$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dktp/controller/ata/%.c 186 $(COMPILE.c) -o $@ $< 187 $(CTFCONVERT_O) 188 189$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dktp/dcdev/%.c 190 $(COMPILE.c) -o $@ $< 191 $(CTFCONVERT_O) 192 193$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dktp/disk/%.c 194 $(COMPILE.c) -o $@ $< 195 $(CTFCONVERT_O) 196 197$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dktp/drvobj/%.c 198 $(COMPILE.c) -o $@ $< 199 $(CTFCONVERT_O) 200 201$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dktp/hba/ghd/%.c 202 $(COMPILE.c) -o $@ $< 203 $(CTFCONVERT_O) 204 205$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/dnet/%.c 206 $(COMPILE.c) -o $@ $< 207 $(CTFCONVERT_O) 208 209$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/scsi/adapters/arcmsr/%.c 210 $(COMPILE.c) -o $@ $< 211 $(CTFCONVERT_O) 212 213$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/scsi/targets/%.c 214 $(COMPILE.c) -o $@ $< 215 $(CTFCONVERT_O) 216 217$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vgatext/%.c 218 $(COMPILE.c) -o $@ $< 219 $(CTFCONVERT_O) 220 221$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmxnet3s/%.c 222 $(COMPILE.c) -o $@ $< 223 $(CTFCONVERT_O) 224 225$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/scsi/adapters/pvscsi/%.c 226 $(COMPILE.c) -o $@ $< 227 $(CTFCONVERT_O) 228 229$(OBJS_DIR)/%.o: $(UTSBASE)/intel/nskern/%.s 230 $(COMPILE.s) -o $@ $< 231 232$(OBJS_DIR)/%.o: $(UTSBASE)/intel/os/%.c 233 $(COMPILE.c) -o $@ $< 234 $(CTFCONVERT_O) 235 236$(OBJS_DIR)/%.o: $(UTSBASE)/intel/pcbe/%.c 237 $(COMPILE.c) -o $@ $< 238 $(CTFCONVERT_O) 239 240$(OBJS_DIR)/%.o: $(UTSBASE)/intel/promif/%.c 241 $(COMPILE.c) -o $@ $< 242 $(CTFCONVERT_O) 243 244$(OBJS_DIR)/%.o: $(UTSBASE)/intel/syscall/%.c 245 $(COMPILE.c) -o $@ $< 246 $(CTFCONVERT_O) 247 248$(OBJS_DIR)/%.o: $(UTSBASE)/common/os/%.c 249 $(COMPILE.c) -o $@ $< 250 $(CTFCONVERT_O) 251 252$(OBJS_DIR)/%.o: $(UTSBASE)/intel/kdi/%.c 253 $(COMPILE.c) -o $@ $< 254 $(CTFCONVERT_O) 255 256$(OBJS_DIR)/%.o: $(UTSBASE)/intel/kdi/%.s 257 $(COMPILE.s) -o $@ $< 258 259$(OBJS_DIR)/%.o: $(UTSBASE)/intel/zfs/%.c 260 $(COMPILE.c) -o $@ $< 261 $(CTFCONVERT_O) 262 263# 264# krtld compiled into unix 265# 266 267KRTLD_INC_PATH = -I$(UTSBASE)/common/krtld -I$(UTSBASE)/intel/sys 268KRTLD_INC_PATH += -I$(UTSBASE)/intel/$(SUBARCH_DIR)/krtld 269 270KRTLD_CPPFLAGS = -D_KRTLD -DELF_TARGET_AMD64 -DMODDIR_SUFFIX=\"amd64\" 271 272$(OBJS_DIR)/%.o: $(UTSBASE)/common/krtld/%.c 273 $(COMPILE.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) -o $@ $< 274 $(CTFCONVERT_O) 275 276$(OBJS_DIR)/%.o: $(UTSBASE)/intel/$(SUBARCH_DIR)/krtld/%.c 277 $(COMPILE.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) -o $@ $< 278 $(CTFCONVERT_O) 279 280# 281# _DBOOT indicates that krtld is called from a dboot ELF section 282# 283$(OBJS_DIR)/kobj.o := CPPFLAGS += -D_DBOOT 284 285$(OBJS_DIR)/%.o: $(UTSBASE)/intel/$(SUBARCH_DIR)/krtld/%.s 286 $(COMPILE.s) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) -o $@ $< 287 288$(OBJS_DIR)/%.o: $(SRC)/common/util/$(SUBARCH_DIR)/%.c 289 $(COMPILE.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) -o $@ $< 290 $(CTFCONVERT_O) 291 292 293# 294# Section 1b: Lint `object' build rules. 295# 296$(LINTS_DIR)/%.ln: $(SRC)/common/fs/%.c 297 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 298 299$(LINTS_DIR)/%.ln: $(SRC)/common/util/i386/%.s 300 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 301 302$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/brand/sn1/%.s 303 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 304 305$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/brand/solaris10/%.s 306 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 307 308$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/dtrace/%.c 309 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 310 311$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/dtrace/%.s 312 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 313 314$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/zfs/%.c 315 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 316 317$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/fs/proc/%.c 318 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 319 320$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/ml/%.s 321 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 322 323$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/os/%.c 324 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 325 326$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/promif/%.c 327 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 328 329$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/ia32/syscall/%.c 330 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 331 332$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/%.c 333 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 334 335$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/acpica/%.s 336 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 337 338$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/acpica/%.c 339 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 340 341$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/events/%.c 342 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 343 344$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/hardware/%.c 345 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 346 347$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/dispatcher/%.c 348 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 349 350$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/executer/%.c 351 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 352 353$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/parser/%.c 354 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 355 356$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/namespace/%.c 357 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 358 359$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/resources/%.c 360 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 361 362$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/tables/%.c 363 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 364 365$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/utilities/%.c 366 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 367 368$(LINTS_DIR)/%.ln: $(SRC)/common/acpica/disassembler/%.c 369 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 370 371$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/amd8111s/%.c 372 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 373 374$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/amr/%.c 375 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 376 377$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/scsi/adapters/arcmsr/%.c 378 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 379 380$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/hotplug/pcicfg/%.c 381 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 382 383$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/hotplug/pci/%.c 384 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 385 386$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/intel_nb5000/%.c 387 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 388 389$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/intel_nhm/%.c 390 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 391 392$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/ipmi/%.c 393 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 394 395$(LINTS_DIR)/%.ln: $(SRC)/common/mc/mc-amd/%.c 396 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 397 398$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/mc-amd/%.c 399 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 400 401$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/pci/%.c 402 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 403 404$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/pciex/%.c 405 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 406 407$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dktp/controller/ata/%.c 408 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 409 410$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dktp/dcdev/%.c 411 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 412 413$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dktp/disk/%.c 414 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 415 416$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dktp/drvobj/%.c 417 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 418 419$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dktp/hba/ghd/%.c 420 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 421 422$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/dnet/%.c 423 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 424 425$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/scsi/targets/%.c 426 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 427 428$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/vgatext/%.c 429 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 430 431$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/vmxnet3s/%.c 432 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 433 434$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/io/scsi/adapters/pvscsi/%.c 435 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 436 437$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/os/%.c 438 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 439 440$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/pcbe/%.c 441 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 442 443$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/promif/%.c 444 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 445 446$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/syscall/%.c 447 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 448 449$(LINTS_DIR)/%.ln: $(UTSBASE)/common/os/%.c 450 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 451 452$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/kdi/%.c 453 @($(LHEAD) $(LINT.c) $< $(LTAIL)) 454 455$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/kdi/%.s 456 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 457 458$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/nskern/%.s 459 @($(LHEAD) $(LINT.s) $< $(LTAIL)) 460 461# 462# krtld lints 463# 464$(LINTS_DIR)/%.ln: $(UTSBASE)/common/krtld/%.c 465 @($(LHEAD) $(LINT.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) $< $(LTAIL)) 466 467$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/$(SUBARCH_DIR)/krtld/%.c 468 @($(LHEAD) $(LINT.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) $< $(LTAIL)) 469 470$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/$(SUBARCH_DIR)/krtld/%.s 471 @($(LHEAD) $(LINT.s) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) $< $(LTAIL)) 472 473$(LINTS_DIR)/%.ln: $(SRC)/common/util/$(SUBARCH_DIR)/%.c 474 @($(LHEAD) $(LINT.c) $(KRTLD_INC_PATH) $(KRTLD_CPPFLAGS) $< $(LTAIL)) 475 476$(OBJS_DIR)/kobj.ln := CPPFLAGS += -D_DBOOT 477