Makefile.mdset revision 1.10
11.10Slukem# $NetBSD: Makefile.mdset,v 1.10 2002/04/26 15:50:27 lukem Exp $ 21.1Slukem# 31.1Slukem# Makefile snippet to ${MDSETIMAGE} file system images into kernels 41.1Slukem# 51.1Slukem 61.1Slukem# 71.1Slukem# Required variables: 81.10Slukem# NETBSDSRCDIR Top level of src tree (set by <bsd.own.mk>) 91.7Slukem# MDSETTARGETS List of images to ${MDSETIMAGE} into kernels, 101.7Slukem# containing one or more tuples of the form: 111.4Slukem# KERNEL IMAGE FILENAME 121.7Slukem# 131.7Slukem# The kernel is ${MDSETIMAGE} with ${IMAGE}, 141.7Slukem# ${STRIP}ped (with the symbols are stored in 151.7Slukem# ${FILENAME}.symbols.gz), and gzipped into 161.7Slukem# ${FILENAME}.gz. 171.7Slukem# 181.6Slukem# If FILENAME is "-", use "netbsd.${KERNEL}" as 191.6Slukem# the target name. 201.1Slukem# 211.1Slukem# Optional variables: 221.6Slukem# MDSETDIR Where to install release kernels. 231.7Slukem# 241.6Slukem# MDSET.${FILENAME}.post For each kernel named ${FILENAME}, 251.6Slukem# execute this after ${NM} / ${STRIP}. 261.6Slukem# Kernel is available as netbsd.tmp. 271.6Slukem# If MDSET.${FILENAME}.suffixes uses 281.6Slukem# this to build extra kernels, the 291.6Slukem# resultant file must be gzipped as 301.6Slukem# "netbsd.${suffix}.gz" 311.7Slukem# 321.6Slukem# MDSET.${FILENAME}.suffixes List of extra install kernel suffixes. 331.6Slukem# The extra kernels are usually created 341.6Slukem# by MDSET.${FILENAME}.post. 351.3Slukem# 361.3Slukem# Variables modified by this: 371.4Slukem# KERNELS List of kernel .gz files to build 381.8Slukem# KERNELDEPS Dependency version of ${KERNELS} (with .WAIT) 391.4Slukem# KERNELSYMS List of kernel .symbol files to build 401.4Slukem# _KERNEL.${KERNEL} Target filename for ${KERNEL} 411.1Slukem# 421.1Slukem 431.1Slukem.include <bsd.kernobj.mk> 441.1Slukem 451.6Slukem.for _K _I _F in ${MDSETTARGETS} # { 461.6Slukem_FILENAME:=${_F} # work around obscure issue in make(1) 471.6Slukem.if ${_FILENAME} == "-" 481.4Slukem_KERNEL.${_K}:= netbsd.${_K} 491.4Slukem.else 501.4Slukem_KERNEL.${_K}:= ${_F} 511.4Slukem.endif 521.1Slukem 531.8SlukemKERNELS+= ${_KERNEL.${_K}}.gz 541.8SlukemKERNELDEPS+= ${_KERNEL.${_K}}.gz .WAIT 551.6Slukem.for suf in ${MDSET.${_FILENAME}.suffixes} 561.9SthorpejKERNELS+= ${_KERNEL.${_K}}.${suf}.gz 571.9SthorpejKERNELDEPS+= ${_KERNEL.${_K}}.${suf}.gz .WAIT 581.6SlukemCLEANFILES+= netbsd.${suf} netbsd.${suf}.gz 591.5Sthorpej.endfor 601.4SlukemKERNELSYMS+= ${_KERNEL.${_K}}.symbols.gz 611.1Slukem 621.6Slukem.if defined(MDSET.${_FILENAME}.post) 631.6Slukem_POST.${_KERNEL.${_K}}:= ${MDSET.${_FILENAME}.post} 641.6Slukem.endif 651.6Slukem 661.4Slukem${_KERNEL.${_K}}.gz: .NOTMAIN ${KERNOBJDIR}/${_K}/netbsd ${_I} 671.7Slukem @echo "mdsetimage: ${KERNOBJDIR}/${_K}/netbsd" 681.7Slukem @echo " with: ${_I}" 691.7Slukem @echo " into: ${.TARGET}" 701.6Slukem @rm -f netbsd.tmp ${_KERNEL.${_K}}.symbols.gz 711.6Slukem @cp ${KERNOBJDIR}/${_K}/netbsd netbsd.tmp 721.4Slukem ${MDSETIMAGE} -v netbsd.tmp ${_I} 731.4Slukem ${NM} netbsd.tmp | gzip -9 > ${_KERNEL.${_K}}.symbols.gz 741.1Slukem ${STRIP} netbsd.tmp 751.6Slukem.if defined(_POST.${_KERNEL.${_K}}) 761.6Slukem ${_POST.${_KERNEL.${_K}}} 771.1Slukem.endif 781.6Slukem @gzip -9f netbsd.tmp 791.1Slukem mv netbsd.tmp.gz ${.TARGET} 801.5Sthorpej 811.6Slukem.for suf in ${MDSET.${_FILENAME}.suffixes} 821.5Sthorpej${_KERNEL.${_K}}.${suf}.gz: .NOTMAIN ${_KERNEL.${_K}}.gz 831.5Sthorpej mv netbsd.${suf}.gz ${.TARGET} 841.5Sthorpej.endfor 851.1Slukem 861.1Slukem.endfor # } 871.1Slukem 881.1SlukemCLEANFILES+= netbsd.tmp netbsd.tmp.gz ${KERNELS} ${KERNELSYMS} 891.1Slukem 901.8Slukemrealall: ${KERNELDEPS} 911.1Slukem 921.1Slukem.if defined(MDSETDIR) 931.8Slukemrelease: check_RELEASEDIR .WAIT ${KERNELDEPS} 941.1Slukem -mkdir -p ${RELEASEDIR}/${MDSETDIR} 951.1Slukem ${RELINSTALL} ${KERNELS} ${KERNELSYMS} ${RELEASEDIR}/${MDSETDIR} 961.1Slukem.endif 97