Makefile revision 1.2
1#	$NetBSD: Makefile,v 1.2 2001/10/13 06:15:20 jmc Exp $
2
3TOP=		${.CURDIR}/..
4
5# This include just sets REV=XX
6.include "${TOP}/Makefile.inc"
7
8IMAGE=	miniroot
9
10TREE=	${TOP}/common/${IMAGE}.tree
11
12LISTS=	${TOP}/common/${IMAGE}.list \
13	${TOP}/common/mini_sbin.list \
14	${TOP}/common/mini_bin.list \
15	${TOP}/common/mini_usr.list
16
17KERNEL  = ${KERNOBJDIR}/INSTALL/netbsd
18
19MOUNT_POINT?=	/mnt
20VND?=		vnd1
21VND_DEV?=	/dev/${VND}a
22VND_RDEV?=	/dev/r${VND}a
23VND_CRDEV?=	/dev/r${VND}c
24
25MTREE?=		mtree
26
27# These are all the parameters for the miniroot: (12MB)
28DISKTYPE=	miniroot
29SIZE=		12
30# bigendian, old format, minfree, opt, b/i, cpg
31NEWFSARGS= -B be -O -m 0 -o space -i 8192 -c 16
32
33CLEANFILES= ${IMAGE}.gz ${IMAGE} ${IMAGE}.tmp install.sub
34
35all: ${IMAGE}.gz
36
37${IMAGE}.gz: ${TREE} ${LISTS} install.sub
38	dd if=/dev/zero of=${IMAGE} bs=1024k count=${SIZE}
39	vnconfig -t ${DISKTYPE} -v -c ${VND} ${IMAGE}
40	disklabel -f ${.CURDIR}/disktab -rw ${VND} ${DISKTYPE}
41	newfs ${NEWFSARGS} ${VND_RDEV}
42	mount ${VND_DEV} ${MOUNT_POINT}
43	${MTREE} -def ${TREE} -p ${MOUNT_POINT}/ -u
44	cp ${KERNEL}  ${MOUNT_POINT}/netbsd
45	TOPDIR=${TOP} CURDIR=${.CURDIR} DESTDIR=${DESTDIR} \
46	  OBJDIR=${.OBJDIR} TARGDIR=${MOUNT_POINT} \
47	  sh ${TOP}/common/RunList.sh ${LISTS}
48	sync ; sleep 1 ; sync
49	cd ${MOUNT_POINT} ;\
50	  usr/mdec/installboot -v ufsboot usr/mdec/bootxx ${VND_CRDEV}
51	sync
52	@echo ""
53	@df -i ${MOUNT_POINT}
54	@echo ""
55	-umount ${MOUNT_POINT}
56	vnconfig -u ${VND}
57	gzip -9 -c ${IMAGE} > ${IMAGE}.tmp
58	-mv -f ${IMAGE}.tmp ${IMAGE}.gz
59
60unconfig:
61	-umount -f ${MOUNT_POINT}
62	-vnconfig -u ${VND_DEV}
63	-/bin/rm -f ${IMAGE} ${IMAGE}.tmp
64
65# Do not delete this if I change my mind and kill make...
66.PRECIOUS: ${IMAGE}.gz
67
68install.sub : ${TOP}/../miniroot/install.sub
69	sed -e "/^VERSION=/s/=.*/=${REV}/" < $? > $@
70
71clean cleandir distclean:
72	-rm -f a.out core *.core *.o
73	-rm -f ${CLEANFILES}
74
75.if !defined(RELEASEDIR)
76release:
77	@echo setenv RELEASEDIR before doing that!
78	@false
79.else	# RELEASEDIR
80release: ${IMAGE}.gz
81	-mkdir -p ${RELEASEDIR}/installation/miniroot
82	cp -p ${IMAGE}.gz \
83	 ${RELEASEDIR}/installation/miniroot/${IMAGE}.gz
84.endif	# RELEASEDIR
85
86# Standard rules needed by the above...
87.include <bsd.obj.mk>
88.include <bsd.subdir.mk>
89