Home | History | Annotate | Download | only in i86xpv
      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 #	We need this one to make sure we share dtrace_subr.c with i86pc
    110 #	Otherwise we pick up common/os/dtrace_subr.c instead :(
    111 #	Note that only the non-commented versions of this hack end up
    112 #	in the lint section below.
    113 
    114 $(OBJS_DIR)/dtrace_subr.o:	$(UTSBASE)/i86pc/os/dtrace_subr.c
    115 	$(COMPILE.c) -o $@ $(UTSBASE)/i86pc/os/dtrace_subr.c
    116 	$(CTFCONVERT_O)
    117 
    118 #
    119 $(OBJS_DIR)/%.o:		$(UTSBASE)/common/cpr/%.c
    120 	$(COMPILE.c) -o $@ $<
    121 	$(CTFCONVERT_O)
    122 
    123 $(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/io/%.c
    124 	$(COMPILE.c) -o $@ $<
    125 	$(CTFCONVERT_O)
    126 
    127 $(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
    128 	$(COMPILE.c) -o $@ $<
    129 	$(CTFCONVERT_O)
    130 
    131 $(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/dtrace/%.c
    132 	$(COMPILE.c) -o $@ $<
    133 	$(CTFCONVERT_O)
    134 
    135 #
    136 #	Section 1b: Lint `object' build rules
    137 #
    138 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/conf/%.c
    139 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    140 
    141 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/io/%.c
    142 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    143 
    144 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/io/psm/%.c
    145 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    146 
    147 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/ml/%.s
    148 	@($(LHEAD) $(LINT.s) $< $(LTAIL))
    149 
    150 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/os/%.c
    151 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    152 
    153 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/vm/%.c
    154 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    155 
    156 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/boot/%.c
    157 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    158 
    159 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/boot/%.c
    160 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    161 
    162 $(LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/dtrace/%.c
    163 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    164 
    165 #	See note above.
    166 
    167 $(LINTS_DIR)/dtrace_subr.ln:	$(UTSBASE)/i86pc/os/dtrace_subr.c
    168 	@($(LHEAD) $(LINT.c) $(UTSBASE)/i86pc/os/dtrace_subr.c $(LTAIL))
    169 
    170 #
    171 # stuff for dboot
    172 #
    173 # This is different from i86pc - uses 64 bit compiler for 64 bit
    174 #
    175 # Note that we *don't* want to use the definitions that have been augmented
    176 # by various bits of the context of the kernel build environment; so we
    177 # start constructing flags and things afresh.
    178 
    179 DBOOT_OBJS_DIR= dboot/$(OBJS_DIR)
    180 
    181 DBOOT_XARCH_32 = $(i386_XARCH)
    182 DBOOT_XARCH_64 = $(amd64_XARCH)
    183 DBOOT_CFLAGS = $(DBOOT_XARCH_$(CLASS)) $(CERRWARN) -O
    184 
    185 DBOOT_AS_XARCH_32 = $(i386_AS_XARCH)
    186 DBOOT_AS_XARCH_64 = $(amd64_AS_XARCH)
    187 DBOOT_ASFLAGS = $(DBOOT_AS_XARCH_$(CLASS)) -P -D_ASM
    188 
    189 DBOOT_LINTFLAGS_i86xpv	= $(LINTFLAGS_i386_$(CLASS)) $(LINTTAGS_i386_$(CLASS))
    190 
    191 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
    192 	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    193 
    194 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/boot/%.c
    195 	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    196 
    197 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
    198 	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    199 
    200 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.c
    201 	$(CC) $(DBOOT_CFLAGS)  $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    202 
    203 $(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/%.c
    204 	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    205 
    206 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/os/%.c
    207 	$(CC) $(DBOOT_CFLAGS) $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
    208 
    209 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/intel/ia32/ml/%.s
    210 	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
    211 
    212 $(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/i386/%.s
    213 	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
    214 
    215 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86xpv/ml/%.s
    216 	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
    217 
    218 $(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.s
    219 	$(AS) $(DBOOT_ASFLAGS) $(DBOOT_DEFS) $(DBOOT_AS_INCL) -o $@ $<
    220 
    221 include $(UTSBASE)/i86pc/Makefile.rules
    222 
    223 DBOOT_DEFS += -D__xpv
    224 
    225 $(LINTS_DIR)/%.ln:		$(UTSBASE)/common/cpr/%.c
    226 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    227 
    228 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/ioat/%.c
    229 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    230 
    231 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/pci/%.c
    232 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    233 
    234 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/pciex/%.c
    235 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    236 
    237 $(LINTS_DIR)/%.ln:		$(UTSBASE)/intel/io/pciex/hotplug/%.c
    238 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    239 
    240 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/gfx_private/%.c
    241 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    242 
    243 $(LINTS_DIR)/%.ln:		$(UTSBASE)/i86pc/io/xsvc/%.c
    244 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    245 
    246 $(LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/io/%.c
    247 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    248 
    249 $(LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/os/%.c
    250 	@($(LHEAD) $(LINT.c) $< $(LTAIL))
    251 
    252 $(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/intel/ia32/ml/%.s
    253 	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
    254 
    255 $(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/common/xen/os/%.c
    256 	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
    257 
    258 $(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/os/%.c
    259 	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
    260 
    261 $(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/ml/%.s
    262 	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
    263 
    264 $(DBOOT_LINTS_DIR)/%.ln:		$(UTSBASE)/i86xpv/boot/%.c
    265 	@($(LHEAD) $(DBOOT_LINT) $(DBOOT_LOCAL_LINTFLAGS) $< $(LTAIL))
    266