Makefile.bootcd revision 1.7
11.7Shubertf# $NetBSD: Makefile.bootcd,v 1.7 2007/01/17 00:47:40 hubertf Exp $ 21.1Shubertf# 31.1Shubertf# Makefile snipped to create a CD/DVD ISO 41.1Shubertf# 51.1Shubertf 61.1Shubertf# XXX TODO: 71.1Shubertf# 1) merge with src/distrib/cdrom 81.1Shubertf# 2) teach makefs to add data from more than 1 directory (see below) 91.1Shubertf 101.1Shubertf# 111.1Shubertf# Required variables: 121.1Shubertf# CDBASE Basename of the iso 131.1Shubertf# CDKERNEL Kernel to copy from ../instkernel (or it's obj dir) 141.1Shubertf# 151.1Shubertf# Optional variables: 161.1Shubertf# CDRELEASE Set to 'true' to include $RELEASEDIR/$MACHINE on the CD 171.7Shubertf# CDRELEASE_NOISOS Excludes installation/cdrom directory if set 181.1Shubertf# BOOT Defaults to $DESTDIR/usr/mdec/boot 191.1Shubertf# BOOTXX_CD9660 Defaults to $DESTDIR/usr/mdec/bootxx_cd9660 201.1Shubertf# CDBOOTOPTIONS Options for installboot, eg -o console=com0,speed=9600 211.1Shubertf# CDROMS_RELEASEDIR Where to install ${CDBASE}.iso 221.1Shubertf# 231.1Shubertf 241.1ShubertfBOOT?= ${DESTDIR}/usr/mdec/boot 251.1ShubertfBOOTXX_CD9660?= ${DESTDIR}/usr/mdec/bootxx_cd9660 261.1ShubertfCDRELEASE?= false 271.1ShubertfCDROMS_RELEASEDIR?= installation/cdrom 281.7Shubertf.if defined(CDRELEASE_NOISOS) 291.7ShubertfCDRELEASE_EXCLUDE= -s ',./installation/cdrom.*,,gp' 301.7Shubertf.endif 311.1Shubertf 321.1Shubertf# Stuff that should come from elsewhere - XXX where? - HF 331.1ShubertfCP?= cp 341.1ShubertfRM?= rm 351.1ShubertfMKDIR?= mkdir -p 361.1ShubertfCHMOD?= chmod 371.1Shubertf 381.1Shubertf 391.1ShubertfCLEANFILES+= ${CDBASE}.iso 401.1ShubertfCLEANFILES+= bootxx 411.1Shubertf 421.1Shubertf 431.1Shubertf# for PRINTOBJDIR 441.1Shubertf.include <bsd.own.mk> 451.1Shubertf 461.1Shubertf.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib" 471.1Shubertf 481.1Shubertf_INSTKERELNOBJDIR!= cd ${.CURDIR}/../../instkernel && ${PRINTOBJDIR} 491.1Shubertf 501.1Shubertf 511.2Sosterdependall all: prepare .WAIT copy-releasedir .WAIT image 521.1Shubertf 531.1Shubertfprepare: 541.1Shubertf ${MKDIR} cdrom 551.1Shubertf ${CP} ${_INSTKERELNOBJDIR}/${CDKERNEL} cdrom/netbsd 561.1Shubertf ${RM} -f cdrom/boot 571.1Shubertf ${CP} ${DESTDIR}/usr/mdec/boot cdrom/boot 581.1Shubertf ${RM} -f bootxx 591.1Shubertf ${CP} ${DESTDIR}/usr/mdec/bootxx_cd9660 bootxx 601.1Shubertf ${CHMOD} +w bootxx 611.6Sdsl ${TOOL_INSTALLBOOT} -m${MACHINE} -e ${CDBOOTOPTIONS} bootxx 621.1Shubertf 631.1Shubertf# Copy $RELEASEDIR/${MACHINE} in the CDROM dir 641.1Shubertf# 651.1Shubertf# XXX This could be done a lot easier if makefs(8) could 661.1Shubertf# XXX include more than one directory on the image - HF 671.1Shubertf# 681.1Shubertfcopy-releasedir: 691.1Shubertf if ${CDRELEASE} ; then \ 701.1Shubertf if [ ! -d ${RELEASEDIR}/${MACHINE} ]; then \ 711.1Shubertf echo "No releasedir ${RELEASEDIR}/${MACHINE}, aborting" ; \ 721.1Shubertf exit 1 ; \ 731.1Shubertf fi ; \ 741.1Shubertf ${MKDIR} cdrom/${MACHINE} ; \ 751.1Shubertf release_destdir=`pwd`/cdrom/${MACHINE} ; \ 761.1Shubertf cd ${RELEASEDIR}/${MACHINE} ; \ 771.1Shubertf echo Copying `pwd` to $$release_destdir ... ; \ 781.7Shubertf ${TOOL_PAX} \ 791.7Shubertf -rw -pe -v \ 801.7Shubertf ${CDRELEASE_EXCLUDE} \ 811.7Shubertf . $$release_destdir ; \ 821.1Shubertf fi 831.1Shubertf 841.1Shubertfimage: 851.1Shubertf ${TOOL_MAKEFS} -t cd9660 \ 861.4Shubertf -o 'rockridge,bootimage=i386;bootxx,no-emul-boot' \ 871.1Shubertf ${CDBASE}.iso cdrom 881.1Shubertf 891.1Shubertfrelease: 901.5Shubertf ${RELEASE_INSTALL} ${CDBASE}.iso ${RELEASEDIR}/${MACHINE}/${CDROMS_RELEASEDIR} 911.1Shubertf 921.1Shubertfclean: 931.1Shubertf ${RM} -fr cdrom 941.1Shubertf 951.1Shubertf.include <bsd.prog.mk> 96