1 1.3 jmcneill # $NetBSD: bsd.dtb.mk,v 1.3 2021/06/02 10:28:21 jmcneill Exp $ 2 1.1 jmcneill 3 1.1 jmcneill .include <bsd.init.mk> 4 1.1 jmcneill .include <bsd.own.mk> 5 1.1 jmcneill 6 1.1 jmcneill ##### Default values 7 1.1 jmcneill .if !defined(S) 8 1.1 jmcneill . if defined(NETBSDSRCDIR) 9 1.1 jmcneill S= ${NETBSDSRCDIR}/sys 10 1.1 jmcneill . elif defined(BSDSRCDIR) 11 1.1 jmcneill S= ${BSDSRCDIR}/sys 12 1.1 jmcneill . else 13 1.1 jmcneill S= /sys 14 1.1 jmcneill . endif 15 1.1 jmcneill .endif 16 1.1 jmcneill 17 1.1 jmcneill ##### Basic targets 18 1.1 jmcneill .PHONY: dtbinstall dtblist dtb 19 1.1 jmcneill realinstall: dtbinstall 20 1.1 jmcneill realall: dtb 21 1.1 jmcneill 22 1.1 jmcneill DTSPADDING?= 1024 23 1.1 jmcneill 24 1.1 jmcneill .if !make(obj) && !make(clean) && !make(cleandir) 25 1.1 jmcneill .BEGIN:: 26 1.1 jmcneill -@mkdir -p ${.OBJDIR}/dts 27 1.1 jmcneill .for _arch in ${DTSGNUARCH} 28 1.1 jmcneill -@ln -snf ${S:S@^../@../../@}/external/gpl2/dts/dist/arch/${_arch}/boot/dts ${.OBJDIR}/dts/${_arch} 29 1.1 jmcneill .endfor 30 1.1 jmcneill .endif 31 1.1 jmcneill 32 1.1 jmcneill DTSINC?=$S/external/gpl2/dts/dist/include 33 1.1 jmcneill .for _arch in ${DTSARCH} 34 1.1 jmcneill DTSDIR+=$S/arch/${_arch}/dts 35 1.1 jmcneill .endfor 36 1.1 jmcneill .for _arch in ${DTSGNUARCH} 37 1.1 jmcneill DTSDIR+=$S/external/gpl2/dts/dist/arch/${_arch}/boot/dts 38 1.1 jmcneill .if defined(DTSSUBDIR) 39 1.1 jmcneill DTSDIR+=$S/external/gpl2/dts/dist/arch/${_arch}/boot/dts/${DTSSUBDIR} 40 1.1 jmcneill .endif 41 1.1 jmcneill .endfor 42 1.1 jmcneill 43 1.1 jmcneill DTSPATH=${DTSINC} ${DTSDIR} ${.OBJDIR}/dts 44 1.1 jmcneill 45 1.1 jmcneill .SUFFIXES: .dtb .dts 46 1.1 jmcneill 47 1.1 jmcneill .dts.dtb: 48 1.1 jmcneill ${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \ 49 1.1 jmcneill -include ${.IMPSRC} /dev/null | \ 50 1.1 jmcneill ${TOOL_DTC} ${DTSPATH:@v@-i ${v}@} -I dts -O dtb \ 51 1.1 jmcneill -p ${DTSPADDING} -b 0 -@ -o ${.TARGET} 52 1.1 jmcneill 53 1.1 jmcneill .PATH.dts: ${DTSDIR} 54 1.1 jmcneill 55 1.1 jmcneill DTB= ${DTS:.dts=.dtb} 56 1.1 jmcneill 57 1.1 jmcneill dtb: ${DTB} 58 1.1 jmcneill 59 1.1 jmcneill .if defined(DTSSUBDIR) 60 1.1 jmcneill DTBINSTDIR= ${DTBDIR}/${DTSSUBDIR} 61 1.1 jmcneill .else 62 1.1 jmcneill DTBINSTDIR= ${DTBDIR} 63 1.1 jmcneill .endif 64 1.1 jmcneill 65 1.1 jmcneill dtbinstall: dtb 66 1.1 jmcneill ${INSTALL_DIR} ${DESTDIR}${DTBINSTDIR} 67 1.1 jmcneill .for _dtb in ${DTB} 68 1.1 jmcneill ${_MKSHMSG_INSTALL} ${_dtb} 69 1.1 jmcneill ${_MKSHECHO} "${INSTALL_FILE} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \ 70 1.1 jmcneill ${.OBJDIR}/${_dtb} ${DESTDIR}${DTBINSTDIR}" 71 1.1 jmcneill ${INSTALL_FILE} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \ 72 1.1 jmcneill ${.OBJDIR}/${_dtb} ${DESTDIR}${DTBINSTDIR} 73 1.1 jmcneill .endfor 74 1.3 jmcneill .if defined(DTSSUBDIR) 75 1.3 jmcneill .for _dtb in ${DTB_NOSUBDIR} 76 1.3 jmcneill ${_MKSHMSG_INSTALL} ${_dtb} 77 1.3 jmcneill ${_MKSHECHO} "${INSTALL_FILE} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \ 78 1.3 jmcneill ${.OBJDIR}/${_dtb} ${DESTDIR}${DTBDIR}" 79 1.3 jmcneill ${INSTALL_FILE} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \ 80 1.3 jmcneill ${.OBJDIR}/${_dtb} ${DESTDIR}${DTBDIR} 81 1.3 jmcneill .endfor 82 1.3 jmcneill .endif 83 1.1 jmcneill 84 1.1 jmcneill dtblist: 85 1.1 jmcneill .if defined(DTSSUBDIR) 86 1.2 rin @echo ".${DTBINSTDIR}\t\tdtb-base-boot\tdtb" | \ 87 1.2 rin ${TOOL_SED} 's/\\t/ /g' 88 1.3 jmcneill .for _dtb in ${DTB_NOSUBDIR} 89 1.3 jmcneill @echo ".${DTBDIR}/${_dtb}\t\tdtb-base-boot\tdtb" | \ 90 1.3 jmcneill ${TOOL_SED} 's/\\t/ /g' 91 1.3 jmcneill .endfor 92 1.1 jmcneill .endif 93 1.1 jmcneill .for _dtb in ${DTB} 94 1.2 rin @echo ".${DTBINSTDIR}/${_dtb}\t\tdtb-base-boot\tdtb" | \ 95 1.2 rin ${TOOL_SED} 's/\\t/ /g' 96 1.1 jmcneill .endfor 97 1.1 jmcneill 98 1.1 jmcneill clean: .PHONY 99 1.1 jmcneill rm -f ${DTB} 100 1.1 jmcneill .for _arch in ${DTSGNUARCH} 101 1.1 jmcneill rm -f dts/${_arch} 102 1.1 jmcneill .endfor 103 1.1 jmcneill test -d dts && rmdir dts || true 104 1.1 jmcneill 105 1.1 jmcneill 106 1.1 jmcneill ##### Pull in related .mk logic 107 1.1 jmcneill .include <bsd.obj.mk> 108 1.1 jmcneill .include <bsd.kinc.mk> 109