Makefile.mdset revision 1.16
11.16Slukem# $NetBSD: Makefile.mdset,v 1.16 2002/05/10 02:31:45 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.16Slukem# MDSET_NOSTRIP.${FILENAME} If defined, don't strip ${FILENAME} 251.16Slukem# 261.15Slukem# MDSET_NOSYMBOLS.${FILENAME} If defined, don't generate 271.13Slukem# ${FILENAME}.symbols.gz 281.13Slukem# 291.15Slukem# MDSET_POST.${FILENAME} For each kernel named ${FILENAME}, 301.6Slukem# execute this after ${NM} / ${STRIP}. 311.15Slukem# Kernel is available as "${.TARGET}" 321.15Slukem# 331.15Slukem# MDSET_SUFFIXES.${FILENAME} List of extra install kernel suffixes 341.15Slukem# and build commands to create from 351.15Slukem# ${FILENAME} after its created by 361.15Slukem# ${MDSET} ; ${NM} ; ${STRIP}: 371.15Slukem# SUFFIX COMMANDVAR 381.15Slukem# "${.TARGET}" is "${FILENAME}.${SUFFIX}" 391.15Slukem# COMMANDVAR is the name of the variable 401.15Slukem# containing the command to build 411.15Slukem# ${.TARGET}. 421.3Slukem# 431.3Slukem# Variables modified by this: 441.4Slukem# KERNELS List of kernel .gz files to build 451.13Slukem# KERNELSYMS List of kernel .symbol.gz files to build 461.1Slukem# 471.1Slukem 481.1Slukem.include <bsd.kernobj.mk> 491.1Slukem 501.6Slukem.for _K _I _F in ${MDSETTARGETS} # { 511.6Slukem_FILENAME:=${_F} # work around obscure issue in make(1) 521.6Slukem.if ${_FILENAME} == "-" 531.4Slukem_KERNEL.${_K}:= netbsd.${_K} 541.4Slukem.else 551.4Slukem_KERNEL.${_K}:= ${_F} 561.4Slukem.endif 571.1Slukem 581.8SlukemKERNELS+= ${_KERNEL.${_K}}.gz 591.15Slukem 601.15Slukem.for _S _C in ${MDSET_SUFFIXES.${_FILENAME}} # { 611.15SlukemKERNELS+= ${_KERNEL.${_K}}.${_S}.gz 621.15SlukemCLEANFILES+= ${_KERNEL.${_K}}.${_S} 631.15Slukem 641.15Slukem${_KERNEL.${_K}}.${_S}: ${_KERNEL.${_K}} 651.15Slukem.if defined(${_C}) 661.15Slukem ${${_C}} 671.15Slukem.else 681.15Slukem @echo "No such variable \"${_C}\"" 691.15Slukem false 701.15Slukem.endif 711.15Slukem 721.15Slukem${_KERNEL.${_K}}.${_S}.gz: ${_KERNEL.${_K}}.${_S} 731.15Slukem -rm -f ${.TARGET} 741.15Slukem gzip -9c ${.ALLSRC} > ${.TARGET} 751.15Slukem 761.15Slukem.endfor # } 771.15Slukem 781.15Slukem.if !defined(MDSET_NOSYMBOLS.${_FILENAME}) 791.4SlukemKERNELSYMS+= ${_KERNEL.${_K}}.symbols.gz 801.13Slukem.endif 811.1Slukem 821.15Slukem.if defined(MDSET_POST.${_FILENAME}) 831.15Slukem_POST.${_KERNEL.${_K}}:= ${MDSET_POST.${_FILENAME}} 841.6Slukem.endif 851.6Slukem 861.15Slukem${_KERNEL.${_K}}: .NOTMAIN ${KERNOBJDIR}/${_K}/netbsd ${_I} 871.7Slukem @echo "mdsetimage: ${KERNOBJDIR}/${_K}/netbsd" 881.7Slukem @echo " with: ${_I}" 891.7Slukem @echo " into: ${.TARGET}" 901.15Slukem @rm -f ${.TARGET} ${.TARGET}.symbols.gz 911.15Slukem @cp ${KERNOBJDIR}/${_K}/netbsd ${.TARGET} 921.15Slukem ${MDSETIMAGE} -v ${.TARGET} ${_I} 931.15Slukem.if !defined(MDSET_NOSYMBOLS.${_FILENAME}) 941.15Slukem ${NM} ${.TARGET} | gzip -9 > ${.TARGET}.symbols.gz 951.1Slukem.endif 961.16Slukem.if !defined(MDSET_NOSTRIP.${_FILENAME}) 971.15Slukem ${STRIP} ${.TARGET} 981.16Slukem.endif 991.15Slukem.if defined(MDSET_POST.${_FILENAME}) 1001.15Slukem ${_POST.${.TARGET}} 1011.15Slukem.endif 1021.15Slukem 1031.15Slukem${_KERNEL.${_K}}.gz: ${_KERNEL.${_K}} 1041.15Slukem -rm -f ${.TARGET} 1051.15Slukem gzip -9c ${.ALLSRC} > ${.TARGET} 1061.5Sthorpej 1071.12SlukemCLEANFILES+= ${_KERNEL.${_K}} 1081.1Slukem 1091.1Slukem.endfor # } 1101.1Slukem 1111.12SlukemCLEANFILES+= ${KERNELS} ${KERNELSYMS} 1121.1Slukem 1131.12Slukemrealall: ${KERNELS} 1141.1Slukem 1151.11Slukem.if defined(MDSET_RELEASEDIR) 1161.14Slukemrelease:: check_RELEASEDIR .WAIT ${KERNELS} 1171.11Slukem ${RELEASE_INSTALL} ${KERNELS} ${KERNELSYMS} \ 1181.11Slukem ${RELEASEDIR}/${MDSET_RELEASEDIR} 1191.1Slukem.endif 120