NetBSD/distrib/common/Makefile.makedev

78 lines
2.1 KiB
Makefile

# $NetBSD: Makefile.makedev,v 1.19 2014/08/10 05:56:36 matt Exp $
#
# Makefile snippet to add ${MAKEDEVTARGETS} devices to the mtree list
# (if set), otherwise copy .OBJDIR-of-etc/MAKEDEV to ./dev
#
# If this is to be used with Makefile.image, then this file should be
# .include-d first.
#
# Required variables:
# NETBSDSRCDIR top level of src tree (set by <bsd.own.mk>)
# MACHINE machine name (set externally by build framework)
#
# Optional variables:
# MAKEDEVTARGETS targets to create with .OBJDIR-of-etc/MAKEDEV
#
# Variables modified by this:
# MAKEDEVSCRIPT path to .OBJDIR-of-etc/MAKEDEV
# MTREECONF may get "devices.spec" added
# LISTS may get "list.makedev" added
# IMAGEDEPENDS may get ${MAKEDEVSCRIPT} added
# PARSELISTENV may get MAKEDEVSCRIPT=... added
#
.if !defined(_MAKEFILE_MAKEDEV_)
_MAKEFILE_MAKEDEV_=1
MAKEDEVSPEC?= devices.spec
_MAKEDEVOBJDIR!=cd ${NETBSDSRCDIR}/etc && ${PRINTOBJDIR}
MAKEDEVSCRIPT= ${_MAKEDEVOBJDIR}/MAKEDEV
CLEANFILES+= ${MAKEDEVSPEC} ${MAKEDEVSPEC}.tmp
.if defined(MAKEDEVTARGETS)
#
# MAKEDEVTARGETS is set; add those devices to the mtree spec that's
# used to build the file system
#
MTREECONF+= ${MAKEDEVSPEC}
.if exists(${NETBSDSRCDIR}/etc/etc.${MACHINE_CPU}/MAKEDEV.conf)
MAKEDEV_MACHINE=${MACHINE_CPU}
.else
MAKEDEV_MACHINE=${MACHINE}
.endif
${MAKEDEVSPEC}: ${MAKEDEVSCRIPT} Makefile \
${NETBSDSRCDIR}/etc/etc.${MAKEDEV_MACHINE}/MAKEDEV.conf
${_MKTARGET_CREATE}
rm -f ${.TARGET} ${.TARGET}.tmp
MACHINE=${MAKEDEV_MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \
${HOST_SH} ${MAKEDEVSCRIPT} -s ${MAKEDEVTARGETS} \
> ${.TARGET}.tmp
${TOOL_SED} -e '/^\. type=dir/d' -e 's,^\.,./dev,' ${.TARGET}.tmp \
| sort -o ${.TARGET}
.else # ! MAKEDEVTARGETS
#
# MAKEDEVTARGETS isn't set; copy in /dev/MAKEDEV and rely upon
# init(8) to mount an mfs /dev and recreate the devices by
# (effectively) running "cd /dev ; ./MAKEDEV all"
#
LISTS+= ${DISTRIBDIR}/common/list.makedev
IMAGEDEPENDS+= ${MAKEDEVSCRIPT}
PARSELISTENV+= MAKEDEVSCRIPT=${MAKEDEVSCRIPT:Q}
${MAKEDEVSPEC}: .PHONY
.endif # ! MAKEDEVTARGETS
.endif # _MAKEFILE_MAKEDEV_