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 $(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) -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))
    273