xref: /netbsd-src/distrib/sparc/bootfs/Makefile (revision 9fbd88883c38d0c0fbfcbe66d76fe6b0fab3f9de)
1#	$NetBSD: Makefile,v 1.31 2001/11/08 16:52:20 tron Exp $
2#
3# boot.fs is the image for disk 1 of the two-set floppy based installation
4# method.
5#
6# It is constructed by injecting the microroot filesystem `ramdisk.fs'
7# into the md based kernel built from the INSTALL kernel configuration file.
8#
9
10TOP=		${.CURDIR}/..
11MINIROOT=	${.CURDIR}/../../miniroot
12
13.include "${TOP}/Makefile.inc"
14
15.include <bsd.own.mk>	# So we use /etc/mk.conf.
16.include <bsd.kernobj.mk>
17
18KERN?=		${KERNOBJDIR}/INSTALL/netbsd
19
20MOUNT_POINT?=	/mnt
21VND?=		vnd0
22VND_DEV=	/dev/${VND}a
23VND_RDEV=	/dev/r${VND}a
24VND_CDEV=	/dev/${VND}c
25VND_CRDEV=	/dev/r${VND}c
26FD?=		fd0
27FD_RDEV=	/dev/r${FD}a
28IMAGE?=		boot.fs
29MDEC=		${DESTDIR}/usr/mdec
30MDSETIMAGE?=	mdsetimage
31OBJCOPY?=	objcopy
32
33LISTS=		${.CURDIR}/list
34RAMDISK!=	cd ${TOP}/ramdisk/; \
35		printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}/ramdisk.fs\n" |\
36		${MAKE} -s -f-
37
38# Some reasonable values for the -i parameter to newfs are:
39#
40#   6144	1147k, 189 inodes free
41#  16384	1159k,  93 inodes free
42# 204800	1167k,  29 inodes free
43INO_BYTES=	204800
44
45BLOCKSIZE=512
46FSSIZE!= expr ${BLOCKSIZE} \* 18 \* 2 \* 80
47
48GEOM=${BLOCKSIZE}/18/2/80
49
50CLEANFILES+=	netbsd.ram netbsd.ram.aout netbsd.tmp
51
52.MAIN: all
53
54all:	netbsd.ram netbsd.ram.aout
55	dd if=/dev/zero of=${IMAGE} bs=${FSSIZE} count=1
56	vnconfig -v -c ${VND} ${IMAGE} ${GEOM}
57	newfs -B be -m 0 -o space -i ${INO_BYTES} -c 80 ${VND_RDEV}
58	mount ${VND_DEV} ${MOUNT_POINT}
59	gzip -9 < netbsd.ram > ${MOUNT_POINT}/netbsd
60	@echo ""
61	@df -i ${MOUNT_POINT}
62	@echo ""
63	@echo "installing new bootblocks"
64	-rm -f ${MOUNT_POINT}/boot
65	${MDEC}/binstall -m ${MDEC} -f ${IMAGE} -v ffs ${MOUNT_POINT}
66	umount ${MOUNT_POINT}
67	vnconfig -u ${VND}
68
69unconfig:
70	-umount -f ${MOUNT_POINT}
71	-vnconfig -u ${VND}
72
73netbsd.ram: ${KERN} ${RAMDISK}
74	cp ${KERN} netbsd.tmp
75	${MDSETIMAGE} -v netbsd.tmp ${RAMDISK}
76	strip netbsd.tmp
77	mv netbsd.tmp ${.TARGET}
78
79
80# conjure up a magic header that is accepted by all Sun PROMS;
81# see sys/arch/sparc/stand/installboot/installboot.c for details.
82SUN_MAGIC_HEADER='\01\03\01\07\060\200\0\07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'
83
84netbsd.ram.aout: netbsd.ram
85	${OBJCOPY} -O binary ${.ALLSRC} netbsd.ram.raw
86	(printf ${SUN_MAGIC_HEADER}; cat netbsd.ram.raw)  > ${.TARGET}
87	rm -f netbsd.ram.raw
88
89clean cleandir distclean:
90	/bin/rm -f *.core ${IMAGE} ${CLEANFILES}
91
92depend install:
93
94real-floppy:
95	dd if=${IMAGE} of=${FD_RDEV} bs=32k
96
97.ifndef RELEASEDIR
98release:
99	@echo setenv RELEASEDIR first
100	@false
101.else
102release: $(IMAGE)
103	gzip -c -9 < $(.OBJDIR)/boot.fs \
104		> $(RELEASEDIR)/installation/bootfs/boot.fs.gz
105	gzip -c -9 < $(.OBJDIR)/netbsd.ram.aout \
106		> $(RELEASEDIR)/installation/bootfs/netbsd.ram.aout.gz
107.endif	# RELEASEDIR check
108
109.include <bsd.obj.mk>
110.include <bsd.subdir.mk>
111