Makefile.makedev revision 1.5
11.5Slukem#	$NetBSD: Makefile.makedev,v 1.5 2003/03/11 07:18:38 lukem Exp $
21.1Slukem#
31.1Slukem# Makefile snippet to add ${MAKEDEVTARGETS} devices to the mtree list
41.1Slukem# (if set), otherwise copy etc.${MACHINE}/MAKEDEV to ./dev
51.4Slukem#
61.4Slukem# If this is to be used with Makefile.image, then this file should be
71.4Slukem# .include-d first.
81.1Slukem#
91.1Slukem# Required variables:
101.2Slukem#	NETBSDSRCDIR	top level of src tree (set by <bsd.own.mk>)
111.1Slukem#	MACHINE		machine name (set externally by build framework)
121.1Slukem#
131.1Slukem# Optional variables:
141.1Slukem#	MAKEDEVTARGETS	targets to create with etc/etc.${MACHINE}/MAKEDEV
151.1Slukem#
161.1Slukem# Variables modified by this:
171.1Slukem#	MTREECONF	may get "devices.spec" added to it
181.1Slukem#
191.1Slukem
201.5Slukem.if !defined(_MAKEFILE_MAKEDEV_)
211.5Slukem_MAKEFILE_MAKEDEV_=1
221.5Slukem
231.5Slukem
241.1SlukemMAKEDEVSPEC?=	devices.spec
251.1Slukem
261.1SlukemCLEANFILES+=	${MAKEDEVSPEC} ${MAKEDEVSPEC}.tmp
271.1Slukem
281.1Slukem
291.1Slukem.if defined(MAKEDEVTARGETS)
301.1Slukem
311.1Slukem#
321.1Slukem#	MAKEDEVTARGETS is set; add those devices to the mtree spec that's
331.1Slukem#	used to build the file system
341.1Slukem#
351.2Slukem_MAKEDEVSCRIPT=	${NETBSDSRCDIR}/etc/etc.${MACHINE}/MAKEDEV
361.1Slukem_MAKEDEVWRAP=	${DISTRIBDIR}/common/MAKEDEV.wrapper
371.1Slukem_MAKEDEV2SPEC=	${DISTRIBDIR}/common/makedev2spec.awk
381.1Slukem
391.1SlukemMTREECONF+=	${MAKEDEVSPEC}
401.1Slukem
411.1Slukem${MAKEDEVSPEC}:	${_MAKEDEVSCRIPT} ${_MAKEDEVWRAP} ${_MAKEDEV2SPEC}
421.1Slukem	-rm -f ${.TARGET} ${.TARGET}.tmp
431.1Slukem	MAKEDEVSCRIPT=${_MAKEDEVSCRIPT:Q} \
441.1Slukem	    sh ${_MAKEDEVWRAP} ${MAKEDEVTARGETS} | \
451.1Slukem	    awk -f ${_MAKEDEV2SPEC} > ${.TARGET}.tmp \
461.1Slukem	&& sort -o ${.TARGET} ${.TARGET}.tmp
471.1Slukem
481.1Slukem.else	# ! MAKEDEVTARGETS
491.1Slukem
501.1Slukem#
511.1Slukem#	MAKEDEVTARGETS isn't set; copy in /dev/MAKEDEV and rely upon
521.3Slukem#	init(8) to mount an mfs /dev and recreate the devices by
531.3Slukem#	(effectively) running "cd /dev ; ./MAKEDEV all"
541.1Slukem#
551.1SlukemLISTS+=		${DISTRIBDIR}/common/list.makedev
561.2SlukemIMAGEDEPENDS+=	${NETBSDSRCDIR}/etc/etc.${MACHINE}/MAKEDEV
571.1Slukem
581.1Slukem${MAKEDEVSPEC}:	.PHONY
591.1Slukem
601.1Slukem.endif	# ! MAKEDEVTARGETS
611.5Slukem
621.5Slukem
631.5Slukem.endif	# _MAKEFILE_MAKEDEV_
64