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/dtb.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/12.0/sys/conf/dtb.mk 340362 2018-11-12 15:18:09Z kevans $
    2 #
    3 # The include file <dtb.mk> handles building and installing dtb files.
    4 #
    5 # +++ variables +++
    6 #
    7 # DTC           The Device Tree Compiler to use
    8 #
    9 # DTS           List of the dts files to build and install.
   10 #
   11 # DTBDIR        Base path for dtb modules [/boot/dtb]
   12 #
   13 # DTBOWN        .dtb file owner. [${BINOWN}]
   14 #
   15 # DTBGRP        .dtb file group. [${BINGRP}]
   16 #
   17 # DTBMODE       Module file mode. [${BINMODE}]
   18 #
   19 # DESTDIR       The tree where the module gets installed. [not set]
   20 #
   21 # +++ targets +++
   22 #
   23 #       install:
   24 #               install the kernel module; if the Makefile
   25 #               does not itself define the target install, the targets
   26 #               beforeinstall and afterinstall may also be used to cause
   27 #               actions immediately before and after the install target
   28 #               is executed.
   29 #
   30 
   31 .include <bsd.init.mk>
   32 # Grab all the options for a kernel build. For backwards compat, we need to
   33 # do this after bsd.own.mk.
   34 .include "kern.opts.mk"
   35 
   36 DTC?=           dtc
   37 
   38 # Search for kernel source tree in standard places.
   39 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
   40 .if !defined(SYSDIR) && exists(${_dir}/kern/)
   41 SYSDIR= ${_dir:tA}
   42 .endif
   43 .endfor
   44 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/)
   45 .error "can't find kernel source tree"
   46 .endif
   47 
   48 .SUFFIXES: .dtb .dts .dtbo .dtso
   49 
   50 .PATH: ${SYSDIR}/gnu/dts/${MACHINE} ${SYSDIR}/dts/${MACHINE} ${SYSDIR}/dts/${MACHINE}/overlays
   51 
   52 DTB=${DTS:R:S/$/.dtb/}
   53 DTBO=${DTSO:R:S/$/.dtbo/}
   54 
   55 all: ${DTB} ${DTBO}
   56 
   57 .if defined(DTS)
   58 .export DTC
   59 .for _dts in ${DTS}
   60 ${_dts:R:S/$/.dtb/}:    ${_dts} ${OP_META}
   61         @${ECHO} Generating ${.TARGET} from ${_dts}
   62         @env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} ${.OBJDIR}
   63 CLEANFILES+=${_dts:R:S/$/.dtb/}
   64 .endfor
   65 .endif
   66 
   67 .if defined(DTSO)
   68 .export DTC
   69 .for _dtso in ${DTSO}
   70 ${_dtso:R:S/$/.dtbo/}:  ${_dtso} ${OP_META}
   71         @${ECHO} Generating ${.TARGET} from ${_dtso}
   72         @env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} overlays/${_dtso} ${.OBJDIR}
   73 CLEANFILES+=${_dtso:R:S/$/.dtbo/}
   74 .endfor
   75 .endif
   76 
   77 .if !target(install)
   78 .if !target(realinstall)
   79 realinstall: _dtbinstall
   80 .ORDER: beforeinstall _kmodinstall
   81 _dtbinstall:
   82 # Need to create this because installkernel doesn't invoke mtree with BSD.root.mtree
   83 # to make sure the tree is setup properly. We don't recreate it to avoid duplicate
   84 # entries in the NO_ROOT case.
   85         test -d ${DESTDIR}${DTBDIR} || ${INSTALL} -d -o ${DTBOWN} -g ${DTBGRP} ${DESTDIR}${DTBDIR}
   86 .for _dtb in ${DTB}
   87 .if ${MACHINE_CPUARCH} == "aarch64"
   88         test -d ${DESTDIR}${DTBDIR}/${_dtb:H} || ${INSTALL} -d -o ${DTBOWN} -g ${DTBGRP} ${DESTDIR}${DTBDIR}/${_dtb:H}
   89         ${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
   90             ${_INSTALLFLAGS} ${_dtb:T} ${DESTDIR}${DTBDIR}/${_dtb:H}
   91 .else
   92         ${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
   93             ${_INSTALLFLAGS} ${_dtb} ${DESTDIR}${DTBDIR}/
   94 .endif
   95 .endfor
   96         test -d ${DESTDIR}${DTBODIR} || ${INSTALL} -d -o ${DTBOWN} -g ${DTBGRP} ${DESTDIR}${DTBODIR}
   97 .for _dtbo in ${DTBO}
   98         ${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
   99             ${_INSTALLFLAGS} ${_dtbo} ${DESTDIR}${DTBODIR}/
  100 .endfor
  101 .endif # !target(realinstall)
  102 .endif # !target(install)
  103 
  104 .include <bsd.dep.mk>
  105 .include <bsd.obj.mk>
  106 .include <bsd.links.mk>

Cache object: 2c17995543910991f1991e913a3b25ad


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