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)) $(C99MODE) $(CERRWARN) \
 188     $(CCNOAUTOINLINE) -O
 189 
 190 DBOOT_AS_XARCH_32 = $(i386_AS_XARCH)
 191 DBOOT_AS_XARCH_64 = $(amd64_AS_XARCH)
 192 DBOOT_ASFLAGS = $(DBOOT_AS_XARCH_$(CLASS)) -P -D_ASM
 193 
 194 DBOOT_LINTFLAGS_i86xpv  = $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS))
 195 
 196 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/common/xen/os/%.c
 197         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 198 
 199 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/boot/%.c
 200         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 201 
 202 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/boot/%.c
 203         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 204 
 205 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/dboot/%.c
 206         $(CC) $(DBOOT_CFLAGS)  $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 207 
 208 $(DBOOT_OBJS_DIR)/%.o:          $(COMMONBASE)/util/%.c
 209         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 210 
 211 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/os/%.c
 212         $(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
 213 
 214 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/intel/ia32/ml/%.s
 215         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 216 
 217 $(DBOOT_OBJS_DIR)/%.o:          $(COMMONBASE)/util/i386/%.s
 218         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 219 
 220 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86xpv/ml/%.s
 221         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 222 
 223 $(DBOOT_OBJS_DIR)/%.o:          $(UTSBASE)/i86pc/dboot/%.s
 224         $(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
 225 
 226 include $(UTSBASE)/i86pc/Makefile.rules
 227 
 228 DBOOT_DEFS += -D__xpv
 229 
 230 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/cpr/%.c
 231         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 232 
 233 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/ioat/%.c
 234         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 235 
 236 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/pci/%.c
 237         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 238 
 239 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/pciex/%.c
 240         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 241 
 242 $(LINTS_DIR)/%.ln:              $(UTSBASE)/intel/io/pciex/hotplug/%.c
 243         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 244 
 245 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/gfx_private/%.c
 246         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 247 
 248 $(LINTS_DIR)/%.ln:              $(UTSBASE)/i86pc/io/xsvc/%.c
 249         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 250 
 251 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/io/pciex/%.c
 252         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 253 
 254 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/xen/io/%.c
 255         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 256 
 257 $(LINTS_DIR)/%.ln:              $(UTSBASE)/common/xen/os/%.c
 258         @($(LHEAD) $(LINT.c) $< $(LTAIL))
 259 
 260 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/intel/ia32/ml/%.s
 261         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 262 
 263 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/common/xen/os/%.c
 264         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 265 
 266 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/os/%.c
 267         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 268 
 269 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/ml/%.s
 270         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
 271 
 272 $(DBOOT_LINTS_DIR)/%.ln:                $(UTSBASE)/i86xpv/boot/%.c
 273         @($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))