# $NetBSD: Makefile.tarfloppy,v 1.19 2017/02/11 03:07:06 christos Exp $
#
# Makefile snippet to create a set of ustar floppies.
# Each floppy has an 8KB header, followed by part or all of the ustar archive.
#
# Required variables:
# NETBSDSRCDIR Top level of src tree (set by <bsd.own.mk>)
# FLOPPYBASE Basename of floppies. Floppy number ${n} will
# be generated as ${FLOPPYBASE}${n}${FLOPPYSUFFIX}
# FLOPPYSIZE Size of floppy in 512 byte blocks.
# FLOPPYFILES Files to write to floppy.
# Usually set to "boot ${FLOPPYMETAFILE} netbsd"
#
# Optional variables:
# FLOPPY_BOOT Bootstrap to use as "boot".
# FLOPPY_BOOT_STRIP If yes, strip "boot" before use.
# FLOPPY_NETBSD Kernel to to use as "netbsd".
# FLOPPYINSTBOOT Installboot program to use.
# USTAR image file is in @IMAGE@.
# FLOPPYMAX Maximum number of floppies to build.
# If 1, the final image is installed as
# ${FLOPPYBASE}${FLOPPYSUFFIX} instead of
# ${FLOPPYBASE}1${FLOPPYSUFFIX}
# FLOPPYMETAFILE USTAR metafile(s) (optional)
# FLOPPYPAD If defined, pad the last floppy to ${FLOPPYSIZE}
# FLOPPYSUFFIX Suffix of created floppies.
# FLOPPY_RELEASEDIR Where to install release floppies.
#
.if !defined(_MAKEFILE_TARFLOPPY_)
_MAKEFILE_TARFLOPPY_=1
.if defined(FLOPPY_BOOT) # {
CLEANFILES+= boot
boot: ${FLOPPY_BOOT}
${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
@rm -f boot
@cp ${.ALLSRC} boot
.if defined(FLOPPY_BOOT_STRIP)
@${STRIP} boot
.endif
.endif # FLOPPY_BOOT # }
.if defined(FLOPPY_BOOT_CFG)
CLEANFILES+= boot.cfg
boot.cfg: ${FLOPPY_BOOT_CFG}
${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
@rm -f ${.TARGET}
@cp ${.ALLSRC} ${.TARGET}
.endif # FLOPPY_BOOT_CFG
.if defined(FLOPPY_NETBSD) # {
CLEANFILES+= netbsd netbsd.tmp
.if ${FLOPPY_NETBSD:E}=="gz"
COPY_CMD= gunzip -c ${.ALLSRC} > ${.TARGET}.tmp
COMPRESS_CMD= ${TOOL_GZIP_N} -9c ${.TARGET}.tmp > ${.TARGET}; \
rm -f ${.TARGET}.tmp
.else
COPY_CMD= cp ${.ALLSRC} ${.TARGET}.tmp
COMPRESS_CMD= mv -f ${.TARGET}.tmp ${.TARGET}
.endif
netbsd: ${FLOPPY_NETBSD}
${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
${COPY_CMD}
${STRIP} -R .comment -R .ident ${.TARGET}.tmp
${COMPRESS_CMD}
.endif # FLOPPY_NETBSD # }
.if defined(FLOPPYMETAFILE) # {
CLEANFILES+= ${FLOPPYMETAFILE}
${FLOPPYMETAFILE}:
${_MKTARGET_CREATE}
@rm -f ${FLOPPYMETAFILE}
@touch ${FLOPPYMETAFILE}
.endif # FLOPPYMETAFILE # }
${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh
${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})"
PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \
${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \
${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \
${MKREPRO_TIMESTAMP:D-t ${MKREPRO_TIMESTAMP}} -N ${DESTDIR}/etc \
${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES}
CLEANFILES+= ${FLOPPYBASE}?${FLOPPYSUFFIX}
realall: ${FLOPPYBASE}1${FLOPPYSUFFIX}
.if defined(FLOPPY_RELEASEDIR)
release:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX}
if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \
${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \
${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}; \
else \
${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \
${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \
fi
.endif
.endif # _MAKEFILE_TARFLOPPY_