The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/i86xpv/Makefile.i86xpv.shared

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 # uts/i86xpv/Makefile.i86xpv.shared
   24 #
   25 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
   26 # Use is subject to license terms.
   27 #
   28 
   29 #
   30 #       This makefile contains the common definitions for the i86xpv unix
   31 #       and all i86xpv implementation architecture dependent modules.
   32 #
   33 
   34 #
   35 #       Machine type (implementation architecture):
   36 #
   37 PLATFORM         = i86xpv
   38 
   39 #
   40 #       uname -m value
   41 #
   42 UNAME_M          = i86pc
   43 
   44 #
   45 #       Everybody needs to know how to build modstubs.o and to locate unix.o
   46 #
   47 UNIX_DIR         = $(UTSBASE)/$(PLATFORM)/unix
   48 GENLIB_DIR       = $(UTSBASE)/intel/genunix
   49 MODSTUBS_DIR     = $(UNIX_DIR)
   50 DSF_DIR          = $(UTSBASE)/$(PLATFORM)/genassym
   51 LINTS_DIR        = $(OBJS_DIR)
   52 LINT_LIB_DIR     = $(UTSBASE)/$(PLATFORM)/lint-libs/$(OBJS_DIR)
   53 GEN_LINT_LIB_DIR = $(UTSBASE)/intel/lint-libs/$(OBJS_DIR)
   54 
   55 DTRACESTUBS_O    = $(OBJS_DIR)/dtracestubs.o
   56 DTRACESTUBS      = $(OBJS_DIR)/libdtracestubs.so
   57 
   58 SYM_MOD         = $(OBJS_DIR)/unix.sym
   59 
   60 UNIX_O           = $(UNIX_DIR)/$(OBJS_DIR)/unix.o
   61 MODSTUBS_O       = $(MODSTUBS_DIR)/$(OBJS_DIR)/modstubs.o
   62 GENLIB           = $(GENLIB_DIR)/$(OBJS_DIR)/libgenunix.so
   63 LINT_LIB         = $(LINT_LIB_DIR)/llib-lunix.ln
   64 DBOOT_LINT_LIB   = $(LINT_LIB_DIR)/llib-ldboot.ln
   65 GEN_LINT_LIB     = $(GEN_LINT_LIB_DIR)/llib-lgenunix.ln
   66 
   67 LINT32_DIRS      = $(LINT32_BUILDS:%=$(UTSBASE)/$(PLATFORM)/lint-libs/%)
   68 LINT32_FILES     = $(LINT32_DIRS:%=%/llib-l$(MODULE).ln)
   69 
   70 #
   71 #       Include the makefiles which define build rule templates, the
   72 #       collection of files per module, and a few specific flags. Note
   73 #       that order is significant, just as with an include path. The
   74 #       first build rule template which matches the files name will be
   75 #       used. By including these in order from most machine dependent
   76 #       to most machine independent, we allow a machine dependent file
   77 #       to be used in preference over a machine independent version
   78 #       (Such as a machine specific optimization, which preserves the
   79 #       interfaces.)
   80 #
   81 include $(UTSTREE)/$(PLATFORM)/Makefile.files
   82 include $(UTSTREE)/intel/Makefile.files
   83 include $(UTSTREE)/common/Makefile.files
   84 
   85 #
   86 #       Include machine independent rules. Note that this does not imply
   87 #       that the resulting module from rules in Makefile.uts is machine
   88 #       independent. Only that the build rules are machine independent.
   89 #
   90 include $(UTSBASE)/Makefile.uts
   91 
   92 #
   93 #       Define supported builds
   94 #
   95 DEF_BUILDS              = $(DEF_BUILDS64) $(DEF_BUILDS32)
   96 ALL_BUILDS              = $(ALL_BUILDS64) $(ALL_BUILDS32)
   97 
   98 #
   99 #       x86 or amd64 inline templates
  100 #
  101 INLINES_32              = $(UTSBASE)/intel/ia32/ml/ia32.il \
  102                           $(UTSBASE)/$(PLATFORM)/ml/ia32.il
  103 INLINES_64              = $(UTSBASE)/intel/amd64/ml/amd64.il \
  104                           $(UTSBASE)/$(PLATFORM)/ml/amd64.il
  105 INLINES                 += $(INLINES_$(CLASS))
  106 
  107 #
  108 #       kernel-specific optimizations; override default in Makefile.master
  109 #
  110 
  111 CFLAGS_XARCH_32         = $(i386_CFLAGS)
  112 CFLAGS_XARCH_64         = $(amd64_CFLAGS)
  113 CFLAGS_XARCH            = $(CFLAGS_XARCH_$(CLASS))
  114 
  115 COPTFLAG_32             = $(COPTFLAG)
  116 COPTFLAG_64             = $(COPTFLAG64)
  117 COPTIMIZE               = $(COPTFLAG_$(CLASS))
  118 
  119 CFLAGS                  = $(CFLAGS_XARCH)
  120 CFLAGS                  += $(COPTIMIZE)
  121 CFLAGS                  += $(INLINES) -D_ASM_INLINES
  122 CFLAGS                  += $(CCMODE)
  123 CFLAGS                  += $(SPACEFLAG)
  124 CFLAGS                  += $(CCUNBOUND)
  125 CFLAGS                  += $(CFLAGS_uts)
  126 
  127 ASFLAGS_XARCH_32        = $(i386_ASFLAGS)
  128 ASFLAGS_XARCH_64        = $(amd64_ASFLAGS)
  129 ASFLAGS_XARCH           = $(ASFLAGS_XARCH_$(CLASS))
  130 
  131 ASFLAGS                 += $(ASFLAGS_XARCH)
  132 
  133 AS_INC_PATH             += -I$(DSF_DIR)/$(OBJS_DIR)
  134 
  135 #
  136 #       The following must be defined for all implementations:
  137 #
  138 #       MAPFILE:        ld mapfile for the build of kernel/unix.
  139 #       MODSTUBS:       Module stubs source file.
  140 #       GENASSYM_SRC:   genassym.c
  141 
  142 MAPFILE         = $(UTSBASE)/$(PLATFORM)/conf/Mapfile
  143 MODSTUBS        = $(UTSBASE)/intel/ia32/ml/modstubs.s
  144 GENASSYM_SRC    = $(UTSBASE)/i86pc/ml/genassym.c
  145 OFFSETS_SRC     = $(UTSBASE)/i86pc/ml/offsets.in
  146 
  147 #PLATFORM_OFFSETS_32    = $(UTSBASE)/$(PLATFORM)/ml/mach_offsets.in
  148 PLATFORM_OFFSETS_32     = $(UTSBASE)/i86pc/ml/mach_offsets.in
  149 PLATFORM_OFFSETS_64     = $(UTSBASE)/intel/amd64/ml/mach_offsets.in
  150 PLATFORM_OFFSETS_SRC    = $(PLATFORM_OFFSETS_$(CLASS))
  151 KDI_OFFSETS_SRC         = $(UTSBASE)/intel/kdi/kdi_offsets.in
  152 
  153 #
  154 #       Define the actual specific platforms
  155 #
  156 MACHINE_DEFS     = -D__$(PLATFORM) -D__xpv -D_MACHDEP
  157 
  158 #
  159 #       Software workarounds for hardware "features"
  160 #
  161 
  162 include $(UTSBASE)/i86pc/Makefile.workarounds
  163 
  164 #
  165 #       Debugging level
  166 #
  167 #       Special knowledge of which special debugging options effect which
  168 #       file is used to optimize the build if these flags are changed.
  169 #
  170 #       XXX: The above could possibly be done for more flags and files, but
  171 #            is left as an experiment to the interested reader. Be forewarned,
  172 #            that excessive use could lead to maintenance difficulties.
  173 #
  174 DEBUG_DEFS_OBJ32        =
  175 DEBUG_DEFS_DBG32        = -DDEBUG
  176 DEBUG_DEFS_OBJ64        =
  177 DEBUG_DEFS_DBG64        = -DDEBUG
  178 DEBUG_DEFS              = $(DEBUG_DEFS_$(BUILD_TYPE))
  179 
  180 DEBUG_COND_OBJ32        :sh = echo \\043
  181 DEBUG_COND_DBG32        =
  182 DEBUG_COND_OBJ64        :sh = echo \\043
  183 DEBUG_COND_DBG64        =
  184 IF_DEBUG_OBJ            = $(DEBUG_COND_$(BUILD_TYPE))$(OBJS_DIR)/
  185 
  186 $(IF_DEBUG_OBJ)trap.o           := DEBUG_DEFS += -DTRAPDEBUG -DTRAPTRACE
  187 $(IF_DEBUG_OBJ)syscall_asm.o    := DEBUG_DEFS += -DSYSCALLTRACE -DTRAPTRACE
  188 $(IF_DEBUG_OBJ)syscall_asm_amd64.o := DEBUG_DEFS += -DSYSCALLTRACE -DTRAPTRACE
  189 $(IF_DEBUG_OBJ)fast_trap_asm.o  := DEBUG_DEFS += -DTRAPTRACE
  190 $(IF_DEBUG_OBJ)interrupt.o      := DEBUG_DEFS += -DTRAPTRACE
  191 $(IF_DEBUG_OBJ)intr.o           := DEBUG_DEFS += -DTRAPTRACE
  192 $(IF_DEBUG_OBJ)locore.o         := DEBUG_DEFS += -DTRAPTRACE
  193 $(IF_DEBUG_OBJ)mp_startup.o     := DEBUG_DEFS += -DTRAPTRACE
  194 $(IF_DEBUG_OBJ)machdep.o        := DEBUG_DEFS += -DTRAPTRACE
  195 $(IF_DEBUG_OBJ)exception.o      := DEBUG_DEFS += -DTRAPTRACE
  196 $(IF_DEBUG_OBJ)x_call.o         := DEBUG_DEFS += -DTRAPTRACE
  197 $(IF_DEBUG_OBJ)mp_call.o        := DEBUG_DEFS += -DTRAPTRACE
  198 $(IF_DEBUG_OBJ)cbe.o            := DEBUG_DEFS += -DTRAPTRACE
  199 $(IF_DEBUG_OBJ)hyperevent.o     := DEBUG_DEFS += -DTRAPTRACE
  200 $(IF_DEBUG_OBJ)evtchn.o         := DEBUG_DEFS += -DTRAPTRACE
  201 
  202 #
  203 #       Collect the preprocessor definitions to be associated with *all*
  204 #       files.
  205 #
  206 ALL_DEFS         = $(MACHINE_DEFS) $(WORKAROUND_DEFS) $(DEBUG_DEFS) \
  207                    $(OPTION_DEFS)
  208 GENASSYM_DEFS    = $(MACHINE_DEFS) $(OPTION_DEFS) \
  209                         -_gcc=-fno-eliminate-unused-debug-symbols \
  210                         -_gcc=-fno-eliminate-unused-debug-types
  211 
  212 #
  213 # ----- TRANSITIONAL SECTION --------------------------------------------------
  214 #
  215 
  216 #
  217 #       Not everything which *should* be a module is a module yet. The
  218 #       following is a list of such objects which are currently part of
  219 #       the base kernel but should soon become kmods.
  220 #
  221 #       XXX: $(KMACCT_OBJS) is neither in the MT kernel nor was it ever
  222 #            made into a module. If it is made MT safe before being made
  223 #            into a module, it should be added to this list. It was in
  224 #            this list pre ON-4.0.
  225 #
  226 #
  227 MACH_NOT_YET_KMODS      = $(AUTOCONF_OBJS)
  228 
  229 #
  230 # ----- END OF TRANSITIONAL SECTION -------------------------------------------
  231 #
  232 
  233 #
  234 #       The kernels modules which are "implementation architecture"
  235 #       specific for this machine are enumerated below. Note that most
  236 #       of these modules must exist (in one form or another) for each
  237 #       architecture.
  238 #
  239 #       Machine Specific Driver Modules (/kernel/drv):
  240 #       DRV_KMODS are built both 32-bit and 64-bit
  241 #       DRV_KMODS_32 are built only 32-bit
  242 #       DRV_KMODS_64 are built only 64-bit
  243 #
  244 
  245 DRV_KMODS       += rootnex
  246 DRV_KMODS       += ioat
  247 DRV_KMODS       += isa
  248 DRV_KMODS       += pci
  249 DRV_KMODS       += pit_beep
  250 DRV_KMODS       += npe
  251 DRV_KMODS       += pci-ide
  252 DRV_KMODS       += xsvc
  253 DRV_KMODS       += xenbus
  254 DRV_KMODS       += xencons
  255 DRV_KMODS       += xpvd
  256 DRV_KMODS       += xnbe
  257 DRV_KMODS       += xnbo
  258 DRV_KMODS       += xnbu
  259 DRV_KMODS       += xnf
  260 DRV_KMODS       += xdb
  261 DRV_KMODS       += xdf
  262 DRV_KMODS       += privcmd
  263 DRV_KMODS       += domcaps
  264 DRV_KMODS       += evtchn
  265 DRV_KMODS       += balloon
  266 DRV_KMODS       += xpvtap
  267 DRV_KMODS       += xdt
  268 
  269 #
  270 #       CPU Modules
  271 #
  272 CPU_KMODS       += generic_cpu
  273 CPU_KMODS       += amd_opteron
  274 CPU_KMODS       += genuineintel
  275 CPU_KMODS       += authenticamd
  276 
  277 #
  278 #       Exec Class Modules (/kernel/exec):
  279 #
  280 EXEC_KMODS      +=
  281 
  282 #
  283 #       Scheduling Class Modules (/kernel/sched):
  284 #
  285 SCHED_KMODS     +=
  286 
  287 #
  288 #       File System Modules (/kernel/fs):
  289 #
  290 FS_KMODS        +=
  291 
  292 #
  293 #       Streams Modules (/kernel/strmod):
  294 #
  295 STRMOD_KMODS    +=
  296 
  297 #
  298 #       'System' Modules (/kernel/sys):
  299 #
  300 SYS_KMODS       +=
  301 
  302 #
  303 #       'Misc' Modules (/kernel/misc):
  304 #
  305 MISC_KMODS      += xpv_autoconfig gfx_private xnb
  306 
  307 #       'Dacf' modules (/kernel/dacf)
  308 #
  309 DACF_KMODS      += consconfig_dacf
  310 
  311 #
  312 #       'Mach' Modules (/kernel/mach):
  313 #
  314 MACH_KMODS      += xpv_psm xpv_uppc
  315 
  316 #
  317 #       'TOD' modules (/platform/.../kernel/tod):
  318 #
  319 TOD_KMODS       += xpvtod

Cache object: d13393d861bc4f1030a79f4c568970c8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.