xref: /netbsd-src/distrib/common/Makefile.tarfloppy (revision 81e0d2b0af8485d94ed5da487d4253841a2e6e45)
1#	$NetBSD: Makefile.tarfloppy,v 1.11 2004/05/04 02:52:05 lukem 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
46.if defined(FLOPPY_NETBSD)				# {
47CLEANFILES+=	netbsd
48netbsd: ${FLOPPY_NETBSD}
49	${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
50	@rm -f ${.TARGET}
51	@cp ${.ALLSRC} ${.TARGET}
52.endif	# FLOPPY_NETBSD					# }
53
54
55.if defined(FLOPPYMETAFILE)				# {
56CLEANFILES+=	${FLOPPYMETAFILE}
57${FLOPPYMETAFILE}:
58	${_MKTARGET_CREATE}
59	@rm -f ${FLOPPYMETAFILE}
60	@touch ${FLOPPYMETAFILE}
61.endif	# FLOPPYMETAFILE				# }
62
63
64${FLOPPYBASE}1${FLOPPYSUFFIX}: ${FLOPPYFILES} ${DISTRIBDIR}/common/buildfloppies.sh
65	${_MKTARGET_CREATE} "(from: ${FLOPPYFILES})"
66	PAX=${TOOL_PAX:Q} ${HOST_SH} ${DISTRIBDIR}/common/buildfloppies.sh \
67	    ${FLOPPYINSTBOOT:D-i ${FLOPPYINSTBOOT}} ${FLOPPYPAD:D-p} \
68	    ${FLOPPYMAX:D-m ${FLOPPYMAX}} ${FLOPPYSUFFIX:D-s ${FLOPPYSUFFIX}} \
69	    ${FLOPPYBASE} ${FLOPPYSIZE} ${FLOPPYFILES}
70
71CLEANFILES+=	${FLOPPYBASE}?${FLOPPYSUFFIX}
72
73
74realall: ${FLOPPYBASE}1${FLOPPYSUFFIX}
75
76.if defined(FLOPPY_RELEASEDIR)
77release:: check_RELEASEDIR .WAIT ${FLOPPYBASE}1${FLOPPYSUFFIX}
78	if [ -e ${FLOPPYBASE}2${FLOPPYSUFFIX} ]; then \
79		${RELEASE_INSTALL} ${FLOPPYBASE}?${FLOPPYSUFFIX} \
80		    ${RELEASEDIR}/${MACHINE}/${FLOPPY_RELEASEDIR}; \
81	else \
82		${RELEASE_INSTALL} ${FLOPPYBASE}1${FLOPPYSUFFIX} \
83		    ${RELEASEDIR}/${MACHINE}/${FLOPPY_RELEASEDIR}/${FLOPPYBASE}${FLOPPYSUFFIX}; \
84	fi
85.endif
86
87
88.endif	# _MAKEFILE_TARFLOPPY_
89