Expand PMF_FN_* macros.
[netbsd-mini2440.git] / distrib / common / Makefile.makedev
blobb5041d0f3e3cd12970714409baff0cdf77fed286
1 #       $NetBSD: Makefile.makedev,v 1.14 2008/05/03 05:08:45 tsutsui Exp $
3 # Makefile snippet to add ${MAKEDEVTARGETS} devices to the mtree list
4 # (if set), otherwise copy .OBJDIR-of-etc/MAKEDEV to ./dev
6 # If this is to be used with Makefile.image, then this file should be
7 # .include-d first.
9 # Required variables:
10 #       NETBSDSRCDIR    top level of src tree (set by <bsd.own.mk>)
11 #       MACHINE         machine name (set externally by build framework)
13 # Optional variables:
14 #       MAKEDEVTARGETS  targets to create with .OBJDIR-of-etc/MAKEDEV
16 # Variables modified by this:
17 #       MAKEDEVSCRIPT   path to .OBJDIR-of-etc/MAKEDEV
18 #       MTREECONF       may get "devices.spec" added
19 #       LISTS           may get "list.makedev" added
20 #       IMAGEDEPENDS    may get ${MAKEDEVSCRIPT} added
21 #       PARSELISTENV    may get MAKEDEVSCRIPT=... added
24 .if !defined(_MAKEFILE_MAKEDEV_)
25 _MAKEFILE_MAKEDEV_=1
28 MAKEDEVSPEC?=   devices.spec
30 _MAKEDEVOBJDIR!=cd ${NETBSDSRCDIR}/etc && ${PRINTOBJDIR}
31 MAKEDEVSCRIPT=  ${_MAKEDEVOBJDIR}/MAKEDEV
33 CLEANFILES+=    ${MAKEDEVSPEC} ${MAKEDEVSPEC}.tmp
36 .if defined(MAKEDEVTARGETS)
39 #       MAKEDEVTARGETS is set; add those devices to the mtree spec that's
40 #       used to build the file system
42 MTREECONF+=     ${MAKEDEVSPEC}
44 ${MAKEDEVSPEC}: ${MAKEDEVSCRIPT}
45         ${_MKTARGET_CREATE}
46         -rm -f ${.TARGET} ${.TARGET}.tmp
47         MACHINE=${MACHINE:Q} MACHINE_ARCH=${MACHINE_ARCH:Q} \
48             ${HOST_SH} ${MAKEDEVSCRIPT} -s ${MAKEDEVTARGETS} \
49             | ${TOOL_SED} -e '/^\. type=dir/d' -e 's,^\.,./dev,' \
50             > ${.TARGET}.tmp \
51         && sort -o ${.TARGET} ${.TARGET}.tmp
53 .else   # ! MAKEDEVTARGETS
56 #       MAKEDEVTARGETS isn't set; copy in /dev/MAKEDEV and rely upon
57 #       init(8) to mount an mfs /dev and recreate the devices by
58 #       (effectively) running "cd /dev ; ./MAKEDEV all"
60 LISTS+=         ${DISTRIBDIR}/common/list.makedev
61 IMAGEDEPENDS+=  ${MAKEDEVSCRIPT}
62 PARSELISTENV+=  MAKEDEVSCRIPT=${MAKEDEVSCRIPT:Q}
64 ${MAKEDEVSPEC}: .PHONY
66 .endif  # ! MAKEDEVTARGETS
69 .endif  # _MAKEFILE_MAKEDEV_