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/Makefile.kern.inc

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 #       $NetBSD: Makefile.kern.inc,v 1.118.4.2 2009/03/27 14:50:36 msaitoh Exp $
    2 #
    3 # This file contains common `MI' targets and definitions and it is included
    4 # at the bottom of each `MD' ${MACHINE}/conf/Makefile.${MACHINE}.
    5 #
    6 # Each target in this file should be protected with `if !target(target)'
    7 # or `if !commands(target)' and each variable should only be conditionally
    8 # assigned `VAR ?= VALUE', so that everything can be overriden.
    9 #
   10 # DEBUG is set to -g if debugging.
   11 # PROF is set to -pg if profiling.
   12 #
   13 # To specify debugging, add the config line: makeoptions DEBUG="-g"
   14 # A better way is to specify -g only for a few files.
   15 #
   16 #       makeoptions DEBUGLIST="uvm* trap if_*"
   17 #
   18 # all ports are expected to include bsd.own.mk for toolchain settings
   19 
   20 ##
   21 ## (0) toolchain settings for things that aren't part of the standard
   22 ## toolchain
   23 ##
   24 HOST_SH?=       sh
   25 DBSYM?=         dbsym
   26 MKDEP?=         mkdep
   27 STRIP?=         strip
   28 OBJCOPY?=       objcopy
   29 OBJDUMP?=       objdump
   30 CSCOPE?=        cscope
   31 MKID?=          mkid
   32 UUDECODE?=      ${TOOL_UUDECODE:Uuudecode}
   33 HEXDUMP?=       ${TOOL_HEXDUMP:Uhexdump}
   34 GENASSYM?=      ${TOOL_GENASSYM:Ugenassym}
   35 .MAKEOVERRIDES+=USETOOLS        # make sure proper value is propagated
   36 
   37 _MKMSG?=                @\#
   38 _MKSHMSG?=              echo
   39 _MKSHECHO?=             echo
   40 _MKMSG_CREATE?=         :
   41 _MKTARGET_COMPILE?=     :
   42 _MKTARGET_CREATE?=      :
   43 
   44 ##
   45 ## (1) port independent source tree identification
   46 ##
   47 # source tree is located via $S relative to the compilation directory
   48 .ifndef S
   49 S!=     cd ../../../..; pwd
   50 .endif
   51 
   52 ##
   53 ## (2) compile settings
   54 ##
   55 ## CPPFLAGS, CFLAGS, and AFLAGS must be set in the port's Makefile
   56 ##
   57 INCLUDES?=      -I. ${EXTRA_INCLUDES} -I${S}/../common/include -I$S/arch \
   58                 -I$S -nostdinc
   59 CPPFLAGS+=      ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D_KERNEL_OPT
   60 DEFCOPTS?=      -O2
   61 COPTS?=         ${DEFCOPTS}
   62 COPTS+=         -std=gnu99
   63 DBG=            # might contain unwanted -Ofoo
   64 DEFWARNINGS?=   yes
   65 .if (${DEFWARNINGS} == "yes")
   66 . if !defined(NOGCCERROR)
   67 CWARNFLAGS+=    -Werror
   68 . endif
   69 CWARNFLAGS+=    -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith
   70 CWARNFLAGS+=    -Wmissing-prototypes -Wstrict-prototypes
   71 CWARNFLAGS+=    -Wswitch -Wshadow
   72 CWARNFLAGS+=    -Wcast-qual -Wwrite-strings
   73 CWARNFLAGS+=    -Wno-unreachable-code
   74 # Add -Wno-sign-compare.  -Wsign-compare is included in -Wall as of GCC 3.3,
   75 # but our sources aren't up for it yet.
   76 CWARNFLAGS+=    -Wno-sign-compare
   77 . if (defined(HAVE_GCC) && ${HAVE_GCC} > 3) || defined(HAVE_PCC)
   78 CWARNFLAGS+=    -Wno-pointer-sign -Wno-attributes
   79 .  if ${MACHINE} == "i386" || ${MACHINE_ARCH} == "x86_64" || \
   80         ${MACHINE_ARCH} == "sparc64" || ${MACHINE} == "prep"
   81 CWARNFLAGS+=    -Wextra -Wno-unused-parameter
   82 .  endif
   83 . endif
   84 .endif
   85 
   86 CFLAGS+=        -ffreestanding -fno-zero-initialized-in-bss
   87 CFLAGS+=        ${DEBUG} ${COPTS}
   88 AFLAGS+=        -D_LOCORE -Wa,-fatal-warnings
   89 
   90 # XXX
   91 .if defined(HAVE_GCC) && ${HAVE_GCC} > 3
   92 CFLAGS+=        -fno-strict-aliasing
   93 .endif
   94 
   95 .if ${USE_SSP:Uno} == "yes"
   96 CFLAGS+=-fstack-protector -Wstack-protector --param ssp-buffer-size=1
   97 LDFLAGS+=-fstack-protector -Wstack-protector --param ssp-buffer-size=1
   98 COPTS.kern_ssp.c+=      -fno-stack-protector -D__SSP__
   99 .endif
  100 
  101 # If we want the bpendtsleep: label in kern_synch.c, we need to use
  102 # -fno-reorder-blocks.  Don't make this a config(1) defflag without
  103 # making sure this fragment remains valid.
  104 .if defined(HAVE_GCC) && ${HAVE_GCC} > 3 && \
  105         !empty(${CFLAGS:M-DKERN_SYNCH_BPENDTSLEEP_LABEL})
  106 COPTS.kern_synch.c+=    -fno-reorder-blocks
  107 .endif
  108 
  109 # Use the per-source COPTS variables to add -g to just those
  110 # files that match the shell patterns given in ${DEBUGLIST}
  111 #
  112 .for i in ${DEBUGLIST}
  113 . for j in ${CFILES:T:M$i.c}
  114 COPTS.${j}+=-g
  115 . endfor
  116 .endfor
  117 
  118 # Always compile subr_debug_info.c with debug informations.
  119 # This allows gdb to use type informations.
  120 #
  121 COPTS.debugsyms.c+=     -g
  122 
  123 # compile rules: rules are named ${TYPE}_${SUFFIX} where TYPE is NORMAL or
  124 # NOPROF and SUFFIX is the file suffix, capitalized (e.g. C for a .c file).
  125 NORMAL_C?=      @${_MKSHMSG} "compile  ${.CURDIR:T}/${.TARGET}"; \
  126                 ${_MKSHECHO}\
  127                 ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<; \
  128                 ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<
  129 NOPROF_C?=      @${_MKSHMSG} "compile  ${.CURDIR:T}/${.TARGET}"; \
  130                 ${_MKSHECHO}\
  131                 ${CC} ${CFLAGS} ${CPPFLAGS} -c $<; \
  132                 ${CC} ${CFLAGS} ${CPPFLAGS} -c $<
  133 NORMAL_S?=      @${_MKSHMSG} "compile  ${.CURDIR:T}/${.TARGET}"; \
  134                 ${_MKSHECHO}\
  135                 ${CC} ${AFLAGS} ${CPPFLAGS} -c $<; \
  136                 ${CC} ${AFLAGS} ${CPPFLAGS} -c $<
  137 
  138 ##
  139 ## (3) libkern and compat
  140 ##
  141 ## Set KERN_AS in the port Makefile to "obj" or "library".  The
  142 ## default is "library", as documented in $S/lib/libkern/Makefile.inc.
  143 ##
  144 
  145 ### find out what to use for libkern
  146 .include "$S/lib/libkern/Makefile.inc"
  147 .ifndef PROF
  148 LIBKERN?=       ${KERNLIB}
  149 .else
  150 LIBKERN?=       ${KERNLIB_PROF}
  151 .endif
  152 
  153 LIBKERNLN?=     ${KERNLIBLN}
  154 
  155 ### find out what to use for libcompat
  156 .include "$S/compat/common/Makefile.inc"
  157 .ifndef PROF
  158 SYSLIBCOMPAT?=  ${COMPATLIB}
  159 .else
  160 SYSLIBCOMPAT?=  ${COMPATLIB_PROF}
  161 .endif
  162 
  163 SYSLIBCOMPATLN?=        ${COMPATLIBLN}
  164 
  165 ##
  166 ## (4) local objects, compile rules, and dependencies
  167 ##
  168 ## Each port should have a corresponding section with settings for
  169 ## MD_CFILES, MD_SFILES, and MD_OBJS, along with build rules for same.
  170 ##
  171 MI_CFILES=devsw.c ioconf.c param.c
  172 # the need for a MI_SFILES variable is dubitable at best
  173 MI_OBJS=${MI_CFILES:S/.c/.o/}
  174 
  175 param.c: $S/conf/param.c
  176         ${_MKTARGET_CREATE}
  177         rm -f param.c
  178         cp $S/conf/param.c .
  179 
  180 param.o: Makefile
  181 
  182 .for _cfile in ${MI_CFILES}
  183 ${_cfile:T:R}.o: ${_cfile}
  184         ${NORMAL_C}
  185 .endfor
  186 
  187 ##
  188 ## (5) link settings
  189 ##
  190 ## TEXTADDR (or LOADADDRESS), LINKFORMAT, and any EXTRA_LINKFLAGS must
  191 ## be set in the port's Makefile.  The port specific definitions for
  192 ## LINKFLAGS_NORMAL and LINKFLAGS_DEBUG will added to the LINKFLAGS
  193 ## depending on the value of DEBUG.
  194 ##
  195 # load lines for config "xxx" will be emitted as:
  196 # xxx: ${SYSTEM_DEP} swapxxx.o
  197 #       ${SYSTEM_LD_HEAD}
  198 #       ${SYSTEM_LD} swapxxx.o
  199 #       ${SYSTEM_LD_TAIL}
  200 SYSTEM_OBJ?=    ${MD_OBJS} ${MI_OBJS} ${OBJS} ${SYSLIBCOMPAT} ${LIBKERN}
  201 SYSTEM_DEP?=    Makefile ${SYSTEM_OBJ:O} .gdbinit
  202 SYSTEM_LD_HEAD?=@rm -f $@
  203 SYSTEM_LD?=     @${_MKSHMSG} "   link  ${.CURDIR:T}/${.TARGET}"; \
  204                 ${_MKSHECHO}\
  205                 ${LD} -Map $@.map --cref ${LINKFLAGS} -o $@ '$${SYSTEM_OBJ}' '$${EXTRA_OBJ}' vers.o; \
  206                 ${LD} -Map $@.map --cref ${LINKFLAGS} -o $@ ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o
  207 SYSTEM_LD_TAIL?=@${TOOL_SED} '/const char sccs/!d;s/.*@(.)//;s/\\.*//' vers.c; \
  208                 ${SIZE} $@; chmod 755 $@
  209 
  210 TEXTADDR?=      ${LOADADDRESS}                  # backwards compatibility
  211 LINKTEXT?=      ${TEXTADDR:C/.+/-Ttext &/}
  212 LINKDATA?=      ${DATAADDR:C/.+/-Tdata &/}
  213 ENTRYPOINT?=    start
  214 LINKENTRY?=     ${ENTRYPOINT:C/.+/-e &/}
  215 LINKFLAGS?=     ${LINKFORMAT} ${LINKTEXT} ${LINKDATA} ${LINKENTRY} \
  216                 ${EXTRA_LINKFLAGS}
  217 
  218 LINKFLAGS_DEBUG?=       -X
  219 SYSTEM_LD_TAIL_DEBUG?=; \
  220                 echo mv -f $@ $@.gdb; mv -f $@ $@.gdb; \
  221                 echo ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb; \
  222                 ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb
  223 LINKFLAGS_NORMAL?=      -S
  224 STRIPFLAGS?=    -g
  225 
  226 DEBUG?=
  227 .if !empty(DEBUG:M-g*)
  228 SYSTEM_LD_TAIL+=${SYSTEM_LD_TAIL_DEBUG}
  229 LINKFLAGS+=     ${LINKFLAGS_DEBUG}
  230 EXTRA_KERNELS+= ${KERNELS:@.KERNEL.@${.KERNEL.}.gdb@}
  231 .elifndef PROF
  232 LINKFLAGS+=     ${LINKFLAGS_NORMAL}
  233 .endif
  234 
  235 SYSTEM_LD_TAIL+=; \
  236         if grep '^\#define.*SYMTAB_SPACE' opt_ddbparam.h > /dev/null; then \
  237                 echo "${DBSYM} $@"; \
  238                 ${DBSYM} $@; \
  239         fi
  240 
  241 SYSTEM_LD_HEAD+=${SYSTEM_LD_HEAD_EXTRA}
  242 SYSTEM_LD_TAIL+=${SYSTEM_LD_TAIL_EXTRA}
  243 
  244 ##
  245 ## (6) port independent targets and dependencies: assym.h, vers.o
  246 ##
  247 .if !target(assym.h)
  248 assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS}
  249         ${_MKTARGET_CREATE}
  250         cat ${GENASSYM_CONF} ${GENASSYM_EXTRAS} | \
  251             ${GENASSYM} -- ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
  252             > assym.h.tmp && \
  253         mv -f assym.h.tmp assym.h
  254 ${MD_SFILES:C/\.[Ss]/.o/} ${SFILES:C/\.[Ss]/.o/}: assym.h
  255 .endif
  256 
  257 .if !target(vers.o)
  258 newvers: vers.o
  259 vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} $S/conf/newvers.sh $S/conf/osrelease.sh
  260         ${_MKMSG_CREATE} vers.c
  261         ${HOST_SH} $S/conf/newvers.sh
  262         ${_MKTARGET_COMPILE}
  263         ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
  264 .endif
  265 
  266 .if !target(config_time.h)
  267 BUILDSYMLINKS+= config_time.src config_time.h
  268 .endif
  269 
  270 .if defined(MEMORY_DISK_IMAGE)
  271 md_root_image.h: ${MEMORY_DISK_IMAGE}
  272         ${_MKTARGET_CREATE}
  273         ${TOOL_HEXDUMP} -v -e '"\t" 8/1 "0x%02x, " "\n"' ${.ALLSRC} > ${.TARGET}
  274 
  275 # XXX This is only needed when building md_root.o
  276 CPPFLAGS+=      -DMEMORY_DISK_IMAGE
  277 md_root.o: md_root_image.h
  278 .endif
  279 
  280 # depend on MEMORY_DISK_IMAGE configuration
  281 md_root.o: Makefile
  282 
  283 # depend on root or device configuration
  284 autoconf.o conf.o: Makefile
  285 
  286 # depend on network or filesystem configuration
  287 uipc_proto.o vfs_conf.o: Makefile
  288 
  289 # depend on maxusers and CPU configuration
  290 assym.h machdep.o: Makefile
  291 
  292 ##
  293 ## (7) misc targets: install, clean(dir), depend(all), lint, links, tags,
  294 ##                   cscope, mkid
  295 ##
  296 ## Any ports that have other stuff to be cleaned up should fill in
  297 ## EXTRA_CLEAN.  Some ports may want different settings for
  298 ## KERNLINTFLAGS, MKDEP_CFLAGS, or MKDEP_AFLAGS.
  299 ##
  300 .if !target(__CLEANKERNEL)
  301 __CLEANKERNEL: .USE
  302         ${_MKMSG} "${.TARGET}ing the kernel objects"
  303         rm -f ${KERNELS} eddep tags *.[io] *.ln [a-z]*.s vers.c \
  304             [Ee]rrs linterrs makelinks assym.h.tmp assym.h \
  305             ${EXTRA_KERNELS} ${EXTRA_CLEAN}
  306 .endif
  307 
  308 .if !target(kernelnames)
  309 kernelnames:
  310         @echo "${KERNELS} ${EXTRA_KERNELS}"
  311 .endif
  312 
  313 .if !target(__CLEANDEPEND)
  314 __CLEANDEPEND: .USE
  315         echo .depend ${DEPS} | xargs rm -f --
  316 .endif
  317 
  318 # do not !target these, the kern and compat Makefiles augment them
  319 cleandir distclean: __CLEANKERNEL __CLEANDEPEND
  320 clean: __CLEANKERNEL
  321 depend: .depend
  322 dependall: depend .WAIT all
  323 
  324 .if !target(.depend)
  325 MKDEP_AFLAGS?=  ${AFLAGS}
  326 MKDEP_CFLAGS?=  ${CFLAGS}
  327 SSRCS=${MD_SFILES} ${SFILES}
  328 CSRCS=${MD_CFILES} ${MI_CFILES} ${CFILES}
  329 SRCS=${SSRCS} ${CSRCS}
  330 DEPS=   ${SRCS:T:O:u:R:S/$/.d/g}
  331 
  332 .for _s in ${SSRCS}
  333 ${_s:T:R}.d: ${_s} assym.h
  334         ${_MKTARGET_CREATE}
  335         ${MKDEP} -f ${.TARGET} -- ${MKDEP_AFLAGS} \
  336             ${CPPFLAGS} ${CPPFLAGS.${_s:T}} ${_s}
  337 .endfor
  338 .for _s in ${CSRCS}
  339 ${_s:T:R}.d: ${_s}
  340         ${_MKTARGET_CREATE}
  341         ${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
  342             ${CPPFLAGS} ${CPPFLAGS.${_s:T}} ${_s}
  343 .endfor
  344 
  345 assym.d: assym.h
  346         ${_MKTARGET_CREATE}
  347         cat ${GENASSYM_CONF} ${GENASSYM_EXTRAS} | \
  348             ${GENASSYM} -- ${MKDEP} -f assym.dep -- \
  349             ${CFLAGS} ${CPPFLAGS}
  350         ${TOOL_SED} -e 's/.*\.o:.*\.c/assym.h:/' < assym.dep >${.TARGET}
  351         rm -f assym.dep
  352 
  353 DEPS+=  assym.d
  354 
  355 .depend: ${DEPS}
  356         ${_MKTARGET_CREATE}
  357         echo "${.ALLSRC}" | ${MKDEP} -D
  358 .endif
  359 
  360 .if !target(lint)
  361 ALLSFILES?=     ${MD_SFILES} ${SFILES}
  362 LINTSTUBS?=     ${ALLSFILES:T:R:C/^.*$/LintStub_&.c/g}
  363 KERNLINTFLAGS?= -bcehnxzFS
  364 NORMAL_LN?=     ${LINT} ${KERNLINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i $<
  365 
  366 _lsrc=${CFILES} ${LINTSTUBS} ${MI_CFILES} ${MD_CFILES}
  367 LOBJS?= ${_lsrc:T:S/.c$/.ln/g} ${LIBKERNLN} ${SYSLIBCOMPATLN}
  368 
  369 .for _sfile in ${ALLSFILES}
  370 LintStub_${_sfile:T:R}.c: ${_sfile} assym.h
  371         ${_MKTARGET_COMPILE}
  372         ${CC} -E -C ${AFLAGS} ${CPPFLAGS} ${_sfile} | \
  373               ${TOOL_AWK} -f $S/kern/genlintstub.awk >${.TARGET}
  374 .endfor
  375 
  376 .for _cfile in ${CFILES} ${LINTSTUBS} ${MI_CFILES} ${MD_CFILES}
  377 ${_cfile:T:R}.ln: ${_cfile}
  378         ${_MKTARGET_COMPILE}
  379         ${NORMAL_LN}
  380 .endfor
  381 
  382 lint: ${LOBJS}
  383         ${LINT} ${KERNLINTFLAGS} ${CPPFLAGS:M-[IDU]*} ${LOBJS}
  384 .endif
  385 
  386 # Attempt to do a syntax-only compile of the entire kernel as one entity.
  387 # Alas, bugs in the GCC C frontend prevent this from completely effective
  388 # but information can be gleaned from the output.
  389 syntax-only: ${CFILES} ${MD_CFILES}
  390         ${CC} -fsyntax-only -combine ${CFLAGS} ${CPPFLAGS} \
  391                 ${CFILES} ${MD_CFILES}
  392 
  393 # List of kernel images that will be installed into the root file system.
  394 # Some platforms may need to install more than one (e.g. a netbsd.aout file
  395 # to be loaded directly by the firmware), so this can be overriden by them.
  396 KERNIMAGES?=    netbsd
  397 
  398 .if !target(install)
  399 # The install target can be redefined by putting a
  400 # install-kernel-${MACHINE_NAME} target into /etc/mk.conf
  401 MACHINE_NAME!=  uname -n
  402 install: install-kernel-${MACHINE_NAME}
  403 .if !target(install-kernel-${MACHINE_NAME})
  404 install-kernel-${MACHINE_NAME}:
  405 .for _K in ${KERNIMAGES}
  406         rm -f ${DESTDIR}/o${_K}
  407         ln ${DESTDIR}/${_K} ${DESTDIR}/o${_K}
  408         cp ${_K} ${DESTDIR}/n${_K}
  409         mv ${DESTDIR}/n${_K} ${DESTDIR}/${_K}
  410 .endfor
  411 .endif
  412 .endif
  413 
  414 .if !target(tags)
  415 tags:
  416         @echo "see $S/kern/Makefile for tags"
  417 .endif
  418 
  419 EXTRA_CLEAN+= cscope.out cscope.tmp
  420 .if !target(cscope.out)
  421 cscope.out: Makefile depend
  422         ${_MKTARGET_CREATE}
  423         @${TOOL_SED} 's/[^:]*://;s/^ *//;s/ *\\ *$$//;' lib/kern/.depend \
  424             | tr -s ' ' '\n' \
  425             | ${TOOL_SED} 's|^\([^.\\]\)|lib/kern/\1|;s|^../../||;' \
  426             > cscope.tmp
  427         @${TOOL_SED} 's/[^:]*://;s/^ *//;s/ *\\ *$$//;' lib/compat/.depend \
  428             | tr -s ' ' '\n' \
  429             | ${TOOL_SED} 's|^\([^.\\]\)|lib/compat/\1|;s|^../../||;' \
  430             >> cscope.tmp
  431         @echo ${SRCS} | cat - cscope.tmp | tr -s ' ' '\n' | sort -u | \
  432             ${CSCOPE} -k -i - -b `echo ${INCLUDES} | ${TOOL_SED} s/-nostdinc//`
  433 #       cscope doesn't write cscope.out if it's uptodate, so ensure
  434 #       make doesn't keep calling cscope when not needed.
  435         @rm -f cscope.tmp; touch cscope.out
  436 .endif
  437 
  438 .if !target(cscope)
  439 cscope: cscope.out
  440         @${CSCOPE} -d
  441 .endif
  442 
  443 EXTRA_CLEAN+= ID
  444 .if !target(mkid)
  445 .PHONY: mkid
  446 mkid: ID
  447 
  448 ID: Makefile depend
  449         ${_MKTARGET_CREATE}
  450         @${MKID} \
  451             `${TOOL_SED} 's/[^:]*://;s/^ *//;s/ *\\\\ *$$//;' \
  452                         lib/kern/.depend lib/compat/.depend \
  453                     | tr ' ' '\n' \
  454                     | ${TOOL_SED} "s|^../../||" \
  455                     | sort -u` \
  456             `${TOOL_SED} 's/[^:]*://;s/^ *//;s/ *\\\\ *$$//;' \
  457                         .depend \
  458                     | tr ' ' '\n' \
  459                     | sort -u`
  460 
  461 .endif
  462 
  463 .include "${S}/gdbscripts/Makefile.inc"
  464 
  465 EXTRA_CLEAN+= .gdbinit
  466 .gdbinit: Makefile ${S}/gdbscripts/Makefile.inc
  467         ${_MKTARGET_CREATE}
  468         rm -f .gdbinit
  469 .for __gdbinit in ${SYS_GDBINIT}
  470         echo "source ${S}/gdbscripts/${__gdbinit}" >> .gdbinit
  471 .endfor
  472 .if defined(GDBINIT) && !empty(GDBINIT)
  473 .for __gdbinit in ${GDBINIT}
  474         echo "source ${__gdbinit}" >> .gdbinit
  475 .endfor
  476 .endif
  477 
  478 # The following files use alloca(3) or variable array allocations.
  479 # Their full name is noted as documentation.
  480 VARSTACK=dev/cgd.c kern/uipc_socket.c miscfs/genfs/genfs_vnops.c \
  481     nfs/nfs_bio.c uvm/uvm_bio.c \
  482     uvm/uvm_pager.c dev/ic/aic7xxx.c dev/ic/aic79xx.c arch/xen/i386/gdt.c \
  483     dev/ofw/ofw_subr.c
  484 
  485 . if (defined(HAVE_GCC) && ${HAVE_GCC} > 3) || defined(HAVE_PCC)
  486 .for __varstack in ${VARSTACK}
  487 COPTS.${__varstack:T} += -Wno-stack-protector
  488 .endfor
  489 .endif
  490 
  491 AFLAGS+=        ${AOPTS.${.IMPSRC:T}}
  492 CFLAGS+=        ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}}
  493 CPPFLAGS+=      ${CPPFLAGS.${.IMPSRC:T}}
  494 CWARNFLAGS+=    ${CWARNFLAGS.${.IMPSRC:T}}
  495 
  496 .include <bsd.files.mk>
  497 
  498 ##
  499 ## the end
  500 ##

Cache object: da41fd62bbda1dd398c22473be0aa2c1


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