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/conf/kern.opts.mk

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 # $FreeBSD: releng/11.2/sys/conf/kern.opts.mk 332306 2018-04-08 20:54:13Z emaste $
    2 
    3 # Options set in the build system that affect the kernel somehow.
    4 
    5 #
    6 # Define MK_* variables (which are either "yes" or "no") for users
    7 # to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
    8 # make(1) environment.
    9 # These should be tested with `== "no"' or `!= "no"' in makefiles.
   10 # The NO_* variables should only be set by makefiles for variables
   11 # that haven't been converted over.
   12 #
   13 
   14 # Note: bsd.own.mk must be included before the rest of kern.opts.mk to make
   15 # building on 10.x and earlier work. This should be removed when that's no
   16 # longer supported since it confounds the defaults (since it uses the host's
   17 # notion of defaults rather than what's default in current when building
   18 # within sys/modules).
   19 .include <bsd.own.mk>
   20 
   21 # These options are used by the kernel build process (kern.mk and kmod.mk)
   22 # They have to be listed here so we can build modules outside of the
   23 # src tree.
   24 
   25 __DEFAULT_YES_OPTIONS = \
   26     AUTOFS \
   27     BHYVE \
   28     BLUETOOTH \
   29     CCD \
   30     CDDL \
   31     CRYPT \
   32     CUSE \
   33     FORMAT_EXTENSIONS \
   34     INET \
   35     INET6 \
   36     IPFILTER \
   37     IPSEC_SUPPORT \
   38     ISCSI \
   39     KERNEL_SYMBOLS \
   40     NETGRAPH \
   41     PF \
   42     SOURCELESS_HOST \
   43     SOURCELESS_UCODE \
   44     TESTS \
   45     USB_GADGET_EXAMPLES \
   46     ZFS
   47 
   48 __DEFAULT_NO_OPTIONS = \
   49     EISA \
   50     EXTRA_TCP_STACKS \
   51     KERNEL_RETPOLINE \
   52     NAND \
   53     OFED \
   54     REPRODUCIBLE_BUILD
   55 
   56 # Some options are totally broken on some architectures. We disable
   57 # them. If you need to enable them on an experimental basis, you
   58 # must change this code.
   59 # Note: These only apply to the list of modules we build by default
   60 # and sometimes what is in the opt_*.h files by default.
   61 # Kernel config files are unaffected, though some targets can be
   62 # affected by KERNEL_SYMBOLS, FORMAT_EXTENSIONS, CTF and SSP.
   63 
   64 # Things that don't work based on the CPU
   65 .if ${MACHINE_CPUARCH} == "arm"
   66 . if ${MACHINE_ARCH:Marmv6*} == ""
   67 BROKEN_OPTIONS+= CDDL ZFS
   68 . endif
   69 .endif
   70 
   71 .if ${MACHINE_CPUARCH} == "mips"
   72 BROKEN_OPTIONS+= CDDL ZFS
   73 .endif
   74 
   75 .if ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH} == "powerpc"
   76 BROKEN_OPTIONS+= ZFS
   77 .endif
   78 
   79 # Things that don't work because the kernel doesn't have the support
   80 # for them.
   81 .if ${MACHINE} != "i386"
   82 BROKEN_OPTIONS+= EISA
   83 .endif
   84 
   85 .if ${MACHINE} != "i386" && ${MACHINE} != "amd64"
   86 BROKEN_OPTIONS+= OFED
   87 .endif
   88 
   89 # Things that don't work based on toolchain support.
   90 .if ${MACHINE} != "i386" && ${MACHINE} != "amd64"
   91 BROKEN_OPTIONS+= KERNEL_RETPOLINE
   92 .endif
   93 
   94 # expanded inline from bsd.mkopt.mk to avoid share/mk dependency
   95 
   96 # Those that default to yes
   97 .for var in ${__DEFAULT_YES_OPTIONS}
   98 .if !defined(MK_${var})
   99 .if defined(WITHOUT_${var})                     # WITHOUT always wins
  100 MK_${var}:=     no
  101 .else
  102 MK_${var}:=     yes
  103 .endif
  104 .else
  105 .if ${MK_${var}} != "yes" && ${MK_${var}} != "no"
  106 .error "Illegal value for MK_${var}: ${MK_${var}}"
  107 .endif
  108 .endif # !defined(MK_${var})
  109 .endfor
  110 .undef __DEFAULT_YES_OPTIONS
  111 
  112 # Those that default to no
  113 .for var in ${__DEFAULT_NO_OPTIONS}
  114 .if !defined(MK_${var})
  115 .if defined(WITH_${var}) && !defined(WITHOUT_${var}) # WITHOUT always wins
  116 MK_${var}:=     yes
  117 .else
  118 MK_${var}:=     no
  119 .endif
  120 .else
  121 .if ${MK_${var}} != "yes" && ${MK_${var}} != "no"
  122 .error "Illegal value for MK_${var}: ${MK_${var}}"
  123 .endif
  124 .endif # !defined(MK_${var})
  125 .endfor
  126 .undef __DEFAULT_NO_OPTIONS
  127 
  128 #
  129 # MK_* options which are always no, usually because they are
  130 # unsupported/badly broken on this architecture.
  131 #
  132 .for var in ${BROKEN_OPTIONS}
  133 MK_${var}:=     no
  134 .endfor
  135 .undef BROKEN_OPTIONS
  136 #end of bsd.mkopt.mk expanded inline.
  137 
  138 #
  139 # MK_*_SUPPORT options which default to "yes" unless their corresponding
  140 # MK_* variable is set to "no".
  141 #
  142 .for var in \
  143     INET \
  144     INET6
  145 .if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
  146 MK_${var}_SUPPORT:= no
  147 .else
  148 .if defined(KERNBUILDDIR)       # See if there's an opt_foo.h
  149 .if !defined(OPT_${var})
  150 OPT_${var}!= cat ${KERNBUILDDIR}/opt_${var:tl}.h; echo
  151 .export OPT_${var}
  152 .endif
  153 .if ${OPT_${var}} == ""         # nothing -> no
  154 MK_${var}_SUPPORT:= no
  155 .else
  156 MK_${var}_SUPPORT:= yes
  157 .endif
  158 .else                           # otherwise, yes
  159 MK_${var}_SUPPORT:= yes
  160 .endif
  161 .endif
  162 .endfor
  163 
  164 # Some modules only compile successfully if option FDT is set, due to #ifdef FDT
  165 # wrapped around declarations.  Module makefiles can optionally compile such
  166 # things using .if !empty(OPT_FDT)
  167 .if !defined(OPT_FDT) && defined(KERNBUILDDIR)
  168 OPT_FDT!= sed -n '/FDT/p' ${KERNBUILDDIR}/opt_platform.h
  169 .export OPT_FDT
  170 .endif

Cache object: f1ed904cd32de445196abb556b0c68fd


[ 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.