Makefile.makedev revision 1.4
11.4Slukem#	$NetBSD: Makefile.makedev,v 1.4 2003/03/10 23:42:45 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
101.1Slukem#
111.1Slukem# Required variables:
121.2Slukem#	NETBSDSRCDIR	top level of src tree (set by <bsd.own.mk>)
131.1Slukem#	MACHINE		machine name (set externally by build framework)
141.1Slukem#
151.1Slukem# Optional variables:
161.1Slukem#	MAKEDEVTARGETS	targets to create with etc/etc.${MACHINE}/MAKEDEV
171.1Slukem#
181.1Slukem# Variables modified by this:
191.1Slukem#	MTREECONF	may get "devices.spec" added to it
201.1Slukem#
211.1Slukem
221.1SlukemMAKEDEVSPEC?=	devices.spec
231.1Slukem
241.1SlukemCLEANFILES+=	${MAKEDEVSPEC} ${MAKEDEVSPEC}.tmp
251.1Slukem
261.1Slukem
271.1Slukem.if defined(MAKEDEVTARGETS)
281.1Slukem
291.1Slukem#
301.1Slukem#	MAKEDEVTARGETS is set; add those devices to the mtree spec that's
311.1Slukem#	used to build the file system
321.1Slukem#
331.2Slukem_MAKEDEVSCRIPT=	${NETBSDSRCDIR}/etc/etc.${MACHINE}/MAKEDEV
341.1Slukem_MAKEDEVWRAP=	${DISTRIBDIR}/common/MAKEDEV.wrapper
351.1Slukem_MAKEDEV2SPEC=	${DISTRIBDIR}/common/makedev2spec.awk
361.1Slukem
371.1SlukemMTREECONF+=	${MAKEDEVSPEC}
381.1Slukem
391.1Slukem${MAKEDEVSPEC}:	${_MAKEDEVSCRIPT} ${_MAKEDEVWRAP} ${_MAKEDEV2SPEC}
401.1Slukem	-rm -f ${.TARGET} ${.TARGET}.tmp
411.1Slukem	MAKEDEVSCRIPT=${_MAKEDEVSCRIPT:Q} \
421.1Slukem	    sh ${_MAKEDEVWRAP} ${MAKEDEVTARGETS} | \
431.1Slukem	    awk -f ${_MAKEDEV2SPEC} > ${.TARGET}.tmp \
441.1Slukem	&& sort -o ${.TARGET} ${.TARGET}.tmp
451.1Slukem
461.1Slukem.else	# ! MAKEDEVTARGETS
471.1Slukem
481.1Slukem#
491.1Slukem#	MAKEDEVTARGETS isn't set; copy in /dev/MAKEDEV and rely upon
501.3Slukem#	init(8) to mount an mfs /dev and recreate the devices by
511.3Slukem#	(effectively) running "cd /dev ; ./MAKEDEV all"
521.1Slukem#
531.1SlukemLISTS+=		${DISTRIBDIR}/common/list.makedev
541.2SlukemIMAGEDEPENDS+=	${NETBSDSRCDIR}/etc/etc.${MACHINE}/MAKEDEV
551.1Slukem
561.1Slukem${MAKEDEVSPEC}:	.PHONY
571.1Slukem
581.1Slukem.endif	# ! MAKEDEVTARGETS
59