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 #
  23 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 
  27 #
  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.
  31 #
  32 #       The following two-level ordering must be maintained in this file.
  33 #
  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 #
  43 #       We share many files with the i86pc implementation to reduce
  44 #       the amount of merge work
  45 #
  46 
  47 #
  48 #       Section 1a: C object build rules
  49 #
  50 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/conf/%.c
  51         $(COMPILE.c) -o $@ $<
  52         $(CTFCONVERT_O)
  53 
  54 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/cpu/generic_cpu/%.c
  55         $(COMPILE.c) -o $@ $<
  56         $(CTFCONVERT_O)
  57 
  58 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/io/%.c
  59         $(COMPILE.c) -o $@ $<
  60         $(CTFCONVERT_O)
  61 
  62 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/ioat/%.c
  63         $(COMPILE.c) -o $@ $<
  64         $(CTFCONVERT_O)
  65 
  66 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/pci/%.c
  67         $(COMPILE.c) -o $@ $<
  68         $(CTFCONVERT_O)
  69 
  70 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/pciex/%.c
  71         $(COMPILE.c) -o $@ $<
  72         $(CTFCONVERT_O)
  73 
  74 $(OBJS_DIR)/%.o:                $(UTSBASE)/intel/io/pciex/hotplug/%.c
  75         $(COMPILE.c) -o $@ $<
  76         $(CTFCONVERT_O)
  77 
  78 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/io/psm/%.c
  79         $(COMPILE.c) -o $@ $<
  80         $(CTFCONVERT_O)
  81 
  82 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/ml/%.s
  83         $(COMPILE.s) -o $@ $<
  84 
  85 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/os/%.c
  86         $(COMPILE.c) -o $@ $<
  87         $(CTFCONVERT_O)
  88 
  89 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/vm/%.c
  90         $(COMPILE.c) -o $@ $<
  91         $(CTFCONVERT_O)
  92 
  93 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86xpv/boot/%.c
  94         $(COMPILE.c) -o $@ $<
  95         $(CTFCONVERT_O)
  96 
  97 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/boot/%.c
  98         $(COMPILE.c) -o $@ $<
  99         $(CTFCONVERT_O)
 100 
 101 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/gfx_private/%.c
 102         $(COMPILE.c) -o $@ $<
 103         $(CTFCONVERT_O)
 104 
 105 $(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/xsvc/%.c
 106         $(COMPILE.c) -o $@ $<
 107         $(CTFCONVERT_O)
 108 
 109 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/io/pciex/%.c
 110         $(COMPILE.c) -o $@ $<
 111         $(CTFCONVERT_O)
 112 
 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.
 117 
 118 $(OBJS_DIR)/dtrace_subr.o:      $(UTSBASE)/i86pc/os/dtrace_subr.c
 119         $(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c
 120         $(CTFCONVERT_O)
 121 
 122 #
 123 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/cpr/%.c
 124         $(COMPILE.c) -o $@ $<
 125         $(CTFCONVERT_O)
 126 
 127 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/xen/io/%.c
 128         $(COMPILE.c) -o $@ $<
 129         $(CTFCONVERT_O)
 130 
 131 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/xen/os/%.c
 132         $(COMPILE.c) -o $@ $<
 133         $(CTFCONVERT_O)
 134 
 135 $(OBJS_DIR)/%.o:                $(UTSBASE)/common/xen/dtrace/%.c
 136         $(COMPILE.c) -o $@ $<
 137         $(CTFCONVERT_O)
 138 
 139 #
 140 #       Section 1b: Lint `object' build rules
 141 #
 142 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/conf/%.c
 143         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 144 
 145 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/io/%.c
 146         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 147 
 148 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/io/psm/%.c
 149         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 150 
 151 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/ml/%.s
 152         @($(LHEAD) $(LINT.s) $< $(LTAIL))
 153 
 154 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/os/%.c
 155         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 156 
 157 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/vm/%.c
 158         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 159 
 160 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86xpv/boot/%.c
 161         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 162 
 163 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/boot/%.c
 164         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 165 
 166 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/xen/dtrace/%.c
 167         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 168 
 169 #       See note above.
 170 
 171 $(LINTS_DIR)/dtrace_subr.ln:    $(UTSBASE)/i86pc/os/dtrace_subr.c
 172         @($(LHEAD) $(LINT.c) $(UTSBASE)/i86pc/os/dtrace_subr.c $(LTAIL))
 173 
 174 #
 175 # stuff for dboot
 176 #
 177 # This is different from i86pc - uses 64 bit compiler for 64 bit
 178 #
 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.
 182 
 183 DBOOT_OBJS_DIR= dboot/$(OBJS_DIR)
 184 
 185 DBOOT_XARCH_32 = $(i386_XARCH)
 186 DBOOT_XARCH_64 = $(amd64_XARCH)
 187 DBOOT_CFLAGS = $(DBOOT_XARCH_$(CLASS)) $(CERRWARN) $(CCNOAUTOINLINE) -O
 188 
 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
 192 
 193 DBOOT_LINTFLAGS_i86xpv  = $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS))
 194 
 195 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/common/xen/os/%.c
 196         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 197 
 198 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/boot/%.c
 199         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 200 
 201 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/boot/%.c
 202         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 203 
 204 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/dboot/%.c
 205         $(CC) $(DBOOT_CFLAGS)  $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 206 
 207 $(DBOOT_OBJS_DIR)/%.o:          $(COMMONBASE)/util/%.c
 208         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 209 
 210 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/os/%.c
 211         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 212 
 213 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/intel/ia32/ml/%.s
 214         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 215 
 216 $(DBOOT_OBJS_DIR)/%.o:          $(COMMONBASE)/util/i386/%.s
 217         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 218 
 219 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/ml/%.s
 220         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 221 
 222 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/dboot/%.s
 223         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 224 
 225 include $(UTSBASE)/i86pc/Makefile.rules
 226 
 227 DBOOT_DEFS += -D__xpv
 228 
 229 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/cpr/%.c
 230         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 231 
 232 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/ioat/%.c
 233         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 234 
 235 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/pci/%.c
 236         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 237 
 238 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/pciex/%.c
 239         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 240 
 241 $(LINTS_DIR)/%.ln:              $(UTSBASE)/intel/io/pciex/hotplug/%.c
 242         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 243 
 244 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/gfx_private/%.c
 245         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 246 
 247 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/xsvc/%.c
 248         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 249 
 250 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/io/pciex/%.c
 251         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 252 
 253 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/xen/io/%.c
 254         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 255 
 256 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/xen/os/%.c
 257         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 258 
 259 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/intel/ia32/ml/%.s
 260         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 261 
 262 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/common/xen/os/%.c
 263         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 264 
 265 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/os/%.c
 266         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 267 
 268 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/ml/%.s
 269         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 270 
 271 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/boot/%.c
 272         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))