Makefile.mdset revision 1.4
1#	$NetBSD: Makefile.mdset,v 1.4 2002/04/12 13:39:45 lukem Exp $
2#
3# Makefile snippet to ${MDSETIMAGE} file system images into kernels
4#
5
6#
7# Required variables:
8#	_SRC_TOP_	Top level of src tree (set by <bsd.own.mk>)
9#	MDSETTARGETS	List of images to ${MDSETIMAGE} into kernels:
10#				KERNEL	IMAGE	FILENAME
11#			The kernel ${KERNOBJDIR}/${KERNEL}/netbsd is
12#			${MDSETIMAGE} with ${IMAGE}, ${STRIP}ped,
13#			and gzipped into ${FILENAME}.gz.
14#			If FILENAME is "-", use "netbsd.${KERNEL}"
15#
16# Optional variables:
17#	MDSETDIR		where to install kernels with "release" target
18#	${FILENAME}.post	run after ${STRIP}; kernel is netbsd.tmp
19#
20# Variables modified by this:
21#	KERNELS			List of kernel .gz files to build
22#	KERNELSYMS		List of kernel .symbol files to build
23#	_KERNEL.${KERNEL}	Target filename for ${KERNEL}
24#
25
26.include <bsd.kernobj.mk>
27
28.for _K _I _F in ${MDSETTARGETS}	# {
29_FREAL:=${_F}			# work around obscure issue in make(1)
30.if ${_FREAL} == "-"
31_KERNEL.${_K}:=	netbsd.${_K}
32.else
33_KERNEL.${_K}:=	${_F}
34.endif
35
36KERNELS+=	${_KERNEL.${_K}}.gz
37KERNELSYMS+=	${_KERNEL.${_K}}.symbols.gz
38
39${_KERNEL.${_K}}.gz: .NOTMAIN ${KERNOBJDIR}/${_K}/netbsd ${_I}
40	@echo "Populating ${_K} with ${_I} into ${.TARGET}"
41	rm -f netbsd.tmp ${_KERNEL.${_K}}.symbols.gz
42	cp ${KERNOBJDIR}/${_K}/netbsd netbsd.tmp
43	${MDSETIMAGE} -v netbsd.tmp ${_I}
44	${NM} netbsd.tmp | gzip -9 > ${_KERNEL.${_K}}.symbols.gz
45	${STRIP} netbsd.tmp
46.if defined(${_KERNEL.${_K}}.post)
47	${${_KERNEL.${_K}}.post}
48.endif
49	gzip -9f netbsd.tmp
50	mv netbsd.tmp.gz ${.TARGET}
51
52.endfor							# }
53
54CLEANFILES+=	netbsd.tmp netbsd.tmp.gz ${KERNELS} ${KERNELSYMS}
55
56realall: ${KERNELS}
57
58.if defined(MDSETDIR)
59release: check_RELEASEDIR .WAIT ${KERNELS}
60	-mkdir -p ${RELEASEDIR}/${MDSETDIR}
61	${RELINSTALL} ${KERNELS} ${KERNELSYMS} ${RELEASEDIR}/${MDSETDIR}
62.endif
63