summaryrefslogtreecommitdiff
path: root/distrib/common/Makefile.tarfloppy
blob: fb88434cc9cff3af9d5ee8bc861fe4e8d95a99d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#	$NetBSD: Makefile.tarfloppy,v 1.18 2014/08/05 15:40:58 apb 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}} \
	    -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_