11.19Schristos#	$NetBSD: Makefile.tarfloppy,v 1.19 2017/02/11 03:07:06 christos Exp $
21.1Slukem#
31.1Slukem# Makefile snippet to create a set of ustar floppies.
41.1Slukem# Each floppy has an 8KB header, followed by part or all of the ustar archive.
51.1Slukem#
61.1Slukem# Required variables:
71.3Slukem#	NETBSDSRCDIR	Top level of src tree (set by <bsd.own.mk>)
81.1Slukem#	FLOPPYBASE	Basename of floppies. Floppy number ${n} will
91.5Slukem#			be generated as ${FLOPPYBASE}${n}${FLOPPYSUFFIX}
101.1Slukem#	FLOPPYSIZE	Size of floppy in 512 byte blocks.
111.1Slukem#	FLOPPYFILES	Files to write to floppy.
121.1Slukem#			Usually set to "boot ${FLOPPYMETAFILE} netbsd"
131.1Slukem#
141.1Slukem# Optional variables:
151.1Slukem#	FLOPPY_BOOT		Bootstrap to use as "boot".
161.1Slukem#	FLOPPY_BOOT_STRIP	If yes, strip "boot" before use.
171.1Slukem#	FLOPPY_NETBSD		Kernel to to use as "netbsd".
181.4Slukem#	FLOPPYINSTBOOT		Installboot program to use.
191.4Slukem#				USTAR image file is in @IMAGE@.
201.4Slukem#	FLOPPYMAX		Maximum number of floppies to build.
211.4Slukem#				If 1, the final image is installed as
221.5Slukem#				${FLOPPYBASE}${FLOPPYSUFFIX} instead of
231.5Slukem#				${FLOPPYBASE}1${FLOPPYSUFFIX}
241.4Slukem#	FLOPPYMETAFILE		USTAR metafile(s) (optional)
251.4Slukem#	FLOPPYPAD		If defined, pad the last floppy to ${FLOPPYSIZE}
261.5Slukem#	FLOPPYSUFFIX		Suffix of created floppies.
271.4Slukem#	FLOPPY_RELEASEDIR	Where to install release floppies.
281.1Slukem#
291.1Slukem
301.8Slukem.if !defined(_MAKEFILE_TARFLOPPY_)
311.8Slukem_MAKEFILE_TARFLOPPY_=1
321.8Slukem
331.8Slukem
341.1Slukem.if defined(FLOPPY_BOOT)				# {
351.1SlukemCLEANFILES+=	boot
361.1Slukemboot: ${FLOPPY_BOOT}
371.11Slukem	${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
381.1Slukem	@rm -f boot
391.1Slukem	@cp ${.ALLSRC} boot
401.1Slukem.if defined(FLOPPY_BOOT_STRIP)
411.1Slukem	@${STRIP} boot
421.1Slukem.endif
431.1Slukem.endif	# FLOPPY_BOOT					# }
441.1Slukem
451.14Sdbj.if defined(FLOPPY_BOOT_CFG)
461.14SdbjCLEANFILES+=	boot.cfg
471.14Sdbjboot.cfg:	${FLOPPY_BOOT_CFG}
481.14Sdbj	${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
491.14Sdbj	@rm -f ${.TARGET}
501.14Sdbj	@cp ${.ALLSRC} ${.TARGET}
511.14Sdbj.endif	# FLOPPY_BOOT_CFG
521.1Slukem
531.1Slukem.if defined(FLOPPY_NETBSD)				# {
541.12SpavelCLEANFILES+=	netbsd netbsd.tmp
551.12Spavel.if ${FLOPPY_NETBSD:E}=="gz"
561.12SpavelCOPY_CMD=	gunzip -c ${.ALLSRC} > ${.TARGET}.tmp
571.18SapbCOMPRESS_CMD=	${TOOL_GZIP_N} -9c ${.TARGET}.tmp > ${.TARGET}; \
581.17Sapb		rm -f ${.TARGET}.tmp
591.12Spavel.else
601.12SpavelCOPY_CMD=	cp ${.ALLSRC} ${.TARGET}.tmp
611.12SpavelCOMPRESS_CMD=	mv -f ${.TARGET}.tmp ${.TARGET}
621.12Spavel.endif
631.1Slukemnetbsd: ${FLOPPY_NETBSD}
641.11Slukem	${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
651.12Spavel	${COPY_CMD}
661.12Spavel	${STRIP} -R .comment -R .ident ${.TARGET}.tmp
671.12Spavel	${COMPRESS_CMD}
681.1Slukem.endif	# FLOPPY_NETBSD					# }
691.1Slukem
701.1Slukem
711.1Slukem.if defined(FLOPPYMETAFILE)				# {
721.1SlukemCLEANFILES+=	${FLOPPYMETAFILE}
731.1Slukem${FLOPPYMETAFILE}:
741.11Slukem	${_MKTARGET_CREATE}
751.1Slukem	@rm -f ${FLOPPYMETAFILE}
761.1Slukem	@touch ${FLOPPYMETAFILE}
771.1Slukem.endif	# FLOPPYMETAFILE				# }
781.1Slukem
791.1Slukem
801.5Slukem${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh
811.11Slukem	${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})"
821.10Slukem	PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \
831.1Slukem	    ${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \
841.5Slukem	    ${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \
851.19Schristos	    ${MKREPRO_TIMESTAMP:D-t ${MKREPRO_TIMESTAMP}} -N ${DESTDIR}/etc \
861.1Slukem	    ${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES}
871.1Slukem
881.5SlukemCLEANFILES+=	${FLOPPYBASE}?${FLOPPYSUFFIX}
891.1Slukem
901.1Slukem
911.5Slukemrealall: ${FLOPPYBASE}1${FLOPPYSUFFIX}
921.1Slukem
931.4Slukem.if defined(FLOPPY_RELEASEDIR)
941.6Slukemrelease:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX}
951.5Slukem	if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \
961.5Slukem		${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \
971.13Smatt		    ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}; \
981.1Slukem	else \
991.5Slukem		${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \
1001.13Smatt		    ${RELEASEDIR}/${RELEASEMACHINEDIR}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \
1011.1Slukem	fi
1021.1Slukem.endif
1031.8Slukem
1041.8Slukem
1051.8Slukem.endif	# _MAKEFILE_TARFLOPPY_
106