Makefile.mdset revision 1.6
1# $NetBSD: Makefile.mdset,v 1.6 2002/04/14 01:41:25 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}" as 15# the target name. 16# 17# Optional variables: 18# MDSETDIR Where to install release kernels. 19# MDSET.${FILENAME}.post For each kernel named ${FILENAME}, 20# execute this after ${NM} / ${STRIP}. 21# Kernel is available as netbsd.tmp. 22# If MDSET.${FILENAME}.suffixes uses 23# this to build extra kernels, the 24# resultant file must be gzipped as 25# "netbsd.${suffix}.gz" 26# MDSET.${FILENAME}.suffixes List of extra install kernel suffixes. 27# The extra kernels are usually created 28# by MDSET.${FILENAME}.post. 29# 30# Variables modified by this: 31# KERNELS List of kernel .gz files to build 32# KERNELSYMS List of kernel .symbol files to build 33# _KERNEL.${KERNEL} Target filename for ${KERNEL} 34# 35 36.include <bsd.kernobj.mk> 37 38.for _K _I _F in ${MDSETTARGETS} # { 39_FILENAME:=${_F} # work around obscure issue in make(1) 40.if ${_FILENAME} == "-" 41_KERNEL.${_K}:= netbsd.${_K} 42.else 43_KERNEL.${_K}:= ${_F} 44.endif 45 46KERNELS+= ${_KERNEL.${_K}}.gz .WAIT 47.for suf in ${MDSET.${_FILENAME}.suffixes} 48KERNELS+= ${_KERNEL.${_K}}.${suf}.gz .WAIT 49CLEANFILES+= netbsd.${suf} netbsd.${suf}.gz 50.endfor 51KERNELSYMS+= ${_KERNEL.${_K}}.symbols.gz 52 53.if defined(MDSET.${_FILENAME}.post) 54_POST.${_KERNEL.${_K}}:= ${MDSET.${_FILENAME}.post} 55.endif 56 57${_KERNEL.${_K}}.gz: .NOTMAIN ${KERNOBJDIR}/${_K}/netbsd ${_I} 58 @echo "Populating ${_K} with ${_I} into ${.TARGET}" 59 @rm -f netbsd.tmp ${_KERNEL.${_K}}.symbols.gz 60 @cp ${KERNOBJDIR}/${_K}/netbsd netbsd.tmp 61 ${MDSETIMAGE} -v netbsd.tmp ${_I} 62 ${NM} netbsd.tmp | gzip -9 > ${_KERNEL.${_K}}.symbols.gz 63 ${STRIP} netbsd.tmp 64.if defined(_POST.${_KERNEL.${_K}}) 65 ${_POST.${_KERNEL.${_K}}} 66.endif 67 @gzip -9f netbsd.tmp 68 mv netbsd.tmp.gz ${.TARGET} 69 70.for suf in ${MDSET.${_FILENAME}.suffixes} 71${_KERNEL.${_K}}.${suf}.gz: .NOTMAIN ${_KERNEL.${_K}}.gz 72 mv netbsd.${suf}.gz ${.TARGET} 73.endfor 74 75.endfor # } 76 77CLEANFILES+= netbsd.tmp netbsd.tmp.gz ${KERNELS} ${KERNELSYMS} 78 79realall: ${KERNELS} 80 81.if defined(MDSETDIR) 82release: check_RELEASEDIR .WAIT ${KERNELS} 83 -mkdir -p ${RELEASEDIR}/${MDSETDIR} 84 ${RELINSTALL} ${KERNELS} ${KERNELSYMS} ${RELEASEDIR}/${MDSETDIR} 85.endif 86