Makefile.mdset revision 1.13
11.13Slukem# $NetBSD: Makefile.mdset,v 1.13 2002/05/05 13:02:44 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.13Slukem# ${STRIP}ped (after 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.11Slukem# MDSET_RELEASEDIR Where to install release kernels. 231.7Slukem# 241.13Slukem# MDSET.${FILENAME}.nosymbols If defined, don't generate 251.13Slukem# ${FILENAME}.symbols.gz 261.13Slukem# 271.6Slukem# MDSET.${FILENAME}.post For each kernel named ${FILENAME}, 281.6Slukem# execute this after ${NM} / ${STRIP}. 291.12Slukem# Kernel is available as "${.TARGET:R}" 301.6Slukem# If MDSET.${FILENAME}.suffixes uses 311.6Slukem# this to build extra kernels, the 321.12Slukem# resultant file must be gzipped by this 331.12Slukem# as "${.TARGET:R}.${suffix}.gz" 341.7Slukem# 351.6Slukem# MDSET.${FILENAME}.suffixes List of extra install kernel suffixes. 361.6Slukem# The extra kernels are usually created 371.6Slukem# by MDSET.${FILENAME}.post. 381.3Slukem# 391.3Slukem# Variables modified by this: 401.4Slukem# KERNELS List of kernel .gz files to build 411.13Slukem# KERNELSYMS List of kernel .symbol.gz files to build 421.4Slukem# _KERNEL.${KERNEL} Target filename for ${KERNEL} 431.1Slukem# 441.1Slukem 451.1Slukem.include <bsd.kernobj.mk> 461.1Slukem 471.6Slukem.for _K _I _F in ${MDSETTARGETS} # { 481.6Slukem_FILENAME:=${_F} # work around obscure issue in make(1) 491.6Slukem.if ${_FILENAME} == "-" 501.4Slukem_KERNEL.${_K}:= netbsd.${_K} 511.4Slukem.else 521.4Slukem_KERNEL.${_K}:= ${_F} 531.4Slukem.endif 541.1Slukem 551.8SlukemKERNELS+= ${_KERNEL.${_K}}.gz 561.6Slukem.for suf in ${MDSET.${_FILENAME}.suffixes} 571.9SthorpejKERNELS+= ${_KERNEL.${_K}}.${suf}.gz 581.12SlukemCLEANFILES+= ${_KERNEL.${_K}}.${suf} 591.5Sthorpej.endfor 601.13Slukem.if !defined(MDSET.${_FILENAME}.nosymbols) 611.4SlukemKERNELSYMS+= ${_KERNEL.${_K}}.symbols.gz 621.13Slukem.endif 631.1Slukem 641.6Slukem.if defined(MDSET.${_FILENAME}.post) 651.6Slukem_POST.${_KERNEL.${_K}}:= ${MDSET.${_FILENAME}.post} 661.6Slukem.endif 671.6Slukem 681.4Slukem${_KERNEL.${_K}}.gz: .NOTMAIN ${KERNOBJDIR}/${_K}/netbsd ${_I} 691.7Slukem @echo "mdsetimage: ${KERNOBJDIR}/${_K}/netbsd" 701.7Slukem @echo " with: ${_I}" 711.7Slukem @echo " into: ${.TARGET}" 721.12Slukem @rm -f ${.TARGET:R} ${.TARGET:R}.symbols.gz 731.12Slukem @cp ${KERNOBJDIR}/${_K}/netbsd ${.TARGET:R} 741.12Slukem ${MDSETIMAGE} -v ${.TARGET:R} ${_I} 751.13Slukem.if !defined(MDSET.${_FILENAME}.nosymbols) 761.12Slukem ${NM} ${.TARGET:R} | gzip -9 > ${.TARGET:R}.symbols.gz 771.13Slukem.endif 781.12Slukem ${STRIP} ${.TARGET:R} 791.12Slukem.if defined(_POST.${.TARGET:R}) 801.12Slukem ${_POST.${.TARGET:R}} 811.1Slukem.endif 821.12Slukem gzip -9f ${.TARGET:R} 831.5Sthorpej 841.12SlukemCLEANFILES+= ${_KERNEL.${_K}} 851.1Slukem 861.1Slukem.endfor # } 871.1Slukem 881.12SlukemCLEANFILES+= ${KERNELS} ${KERNELSYMS} 891.1Slukem 901.12Slukemrealall: ${KERNELS} 911.1Slukem 921.11Slukem.if defined(MDSET_RELEASEDIR) 931.12Slukemrelease: check_RELEASEDIR .WAIT ${KERNELS} 941.11Slukem ${RELEASE_INSTALL} ${KERNELS} ${KERNELSYMS} \ 951.11Slukem ${RELEASEDIR}/${MDSET_RELEASEDIR} 961.1Slukem.endif 97