1# $NetBSD: Makefile.tarfloppy,v 1.16 2009/04/03 22:36:35 perry Exp $ 2# 3# Makefile snippet to create a set of ustar floppies. 4# Each floppy has an 8KB header, followed by part or all of the ustar archive. 5# 6# Required variables: 7# NETBSDSRCDIR Top level of src tree (set by <bsd.own.mk>) 8# FLOPPYBASE Basename of floppies. Floppy number ${n} will 9# be generated as ${FLOPPYBASE}${n}${FLOPPYSUFFIX} 10# FLOPPYSIZE Size of floppy in 512 byte blocks. 11# FLOPPYFILES Files to write to floppy. 12# Usually set to "boot ${FLOPPYMETAFILE} netbsd" 13# 14# Optional variables: 15# FLOPPY_BOOT Bootstrap to use as "boot". 16# FLOPPY_BOOT_STRIP If yes, strip "boot" before use. 17# FLOPPY_NETBSD Kernel to to use as "netbsd". 18# FLOPPYINSTBOOT Installboot program to use. 19# USTAR image file is in @IMAGE@. 20# FLOPPYMAX Maximum number of floppies to build. 21# If 1, the final image is installed as 22# ${FLOPPYBASE}${FLOPPYSUFFIX} instead of 23# ${FLOPPYBASE}1${FLOPPYSUFFIX} 24# FLOPPYMETAFILE USTAR metafile(s) (optional) 25# FLOPPYPAD If defined, pad the last floppy to ${FLOPPYSIZE} 26# FLOPPYSUFFIX Suffix of created floppies. 27# FLOPPY_RELEASEDIR Where to install release floppies. 28# 29 30.if !defined(_MAKEFILE_TARFLOPPY_) 31_MAKEFILE_TARFLOPPY_=1 32 33 34.if defined(FLOPPY_BOOT) # { 35CLEANFILES+= boot 36boot: ${FLOPPY_BOOT} 37 ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 38 @rm -f boot 39 @cp ${.ALLSRC} boot 40.if defined(FLOPPY_BOOT_STRIP) 41 @${STRIP} boot 42.endif 43.endif # FLOPPY_BOOT # } 44 45.if defined(FLOPPY_BOOT_CFG) 46CLEANFILES+= boot.cfg 47boot.cfg: ${FLOPPY_BOOT_CFG} 48 ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 49 @rm -f ${.TARGET} 50 @cp ${.ALLSRC} ${.TARGET} 51.endif # FLOPPY_BOOT_CFG 52 53.if defined(FLOPPY_NETBSD) # { 54CLEANFILES+= netbsd netbsd.tmp 55.if ${FLOPPY_NETBSD:E}=="gz" 56COPY_CMD= gunzip -c ${.ALLSRC} > ${.TARGET}.tmp 57COMPRESS_CMD= gzip -9nc ${.TARGET}.tmp > ${.TARGET}; rm -f ${.TARGET}.tmp 58.else 59COPY_CMD= cp ${.ALLSRC} ${.TARGET}.tmp 60COMPRESS_CMD= mv -f ${.TARGET}.tmp ${.TARGET} 61.endif 62netbsd: ${FLOPPY_NETBSD} 63 ${_MKTARGET_CREATE} "(from: ${.ALLSRC})" 64 ${COPY_CMD} 65 ${STRIP} -R .comment -R .ident ${.TARGET}.tmp 66 ${COMPRESS_CMD} 67.endif # FLOPPY_NETBSD # } 68 69 70.if defined(FLOPPYMETAFILE) # { 71CLEANFILES+= ${FLOPPYMETAFILE} 72${FLOPPYMETAFILE}: 73 ${_MKTARGET_CREATE} 74 @rm -f ${FLOPPYMETAFILE} 75 @touch ${FLOPPYMETAFILE} 76.endif # FLOPPYMETAFILE # } 77 78 79${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh 80 ${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})" 81 PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \ 82 ${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \ 83 ${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \ 84 -N ${DESTDIR}/etc \ 85 ${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES} 86 87CLEANFILES+= ${FLOPPYBASE}?${FLOPPYSUFFIX} 88 89 90realall: ${FLOPPYBASE}1${FLOPPYSUFFIX} 91 92.if defined(FLOPPY_RELEASEDIR) 93release:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX} 94 if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \ 95 ${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \ 96 ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}; \ 97 else \ 98 ${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \ 99 ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \ 100 fi 101.endif 102 103 104.endif # _MAKEFILE_TARFLOPPY_ 105