Makefile revision 1.44
1#	$NetBSD: Makefile,v 1.44 2002/01/15 17:41:41 pk Exp $
2
3.include "../../Makefile.inc"
4.include <bsd.own.mk>
5.include <bsd.kernobj.mk>
6
7REV!=sh ${.CURDIR}/../../sys/conf/osrelease.sh -s
8
9CBIN=		instbin
10ARCHDIR=	${.CURDIR}/../${MACHINE}/miniroot
11
12.if exists(${ARCHDIR}/Makefile.inc)
13.include "${ARCHDIR}/Makefile.inc"
14.endif
15
16VND?=		vnd0
17VND_DEV=	/dev/${VND}c
18VND_RDEV=	/dev/r${VND}c
19VND_GEOM?=
20IMAGE?=		miniroot.fs
21IMAGESIZE?=	14336 # 7MB in 512 byte blocks
22NEWFSOPTS?=
23MOUNT_POINT?=	/mnt
24BOOTINSTALL?=	true
25PRELABEL?=	true
26
27.ifdef DISKTYPE
28DISKTYPEARG=	-t ${DISKTYPE}
29.endif
30
31LISTS=		${.CURDIR}/list ${ARCHDIR}/list
32CRUNCHCONF=	${CBIN}.conf
33MTREECONF=	${.CURDIR}/mtree.conf
34ICMD=		${INSTALL} ${RENAME} ${PRESERVE} ${COPY}	\
35			-o root -g wheel -m ${NONBINMODE} 
36
37CRUNCHGEN?=	crunchgen
38MTREE?=		mtree
39
40.ifndef DESTDIR
41all:
42	@echo setenv DESTDIR before making a miniroot!
43	@false
44.else
45
46all: ${CBIN}
47	dd if=/dev/zero of=${IMAGE} count=${IMAGESIZE}
48	vnconfig ${DISKTYPEARG} -v -c ${VND} ${IMAGE} ${VND_GEOM}
49	${PRELABEL}
50	-newfs -m 0 -o space ${NEWFSOPTS} ${VND_RDEV} ${DISKTYPE}
51	${BOOTINSTALL}
52	mount -o async ${VND_DEV} ${MOUNT_POINT}
53	${MTREE} -def ${MTREECONF} -p ${MOUNT_POINT}/ -u
54	REV=${REV} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} ARCHDIR=${ARCHDIR} \
55	    TARGDIR=${MOUNT_POINT} VND_RDEV=${VND_RDEV} \
56	    KERNOBJDIR=${KERNOBJDIR} \
57	    sh ${.CURDIR}/runlist.sh ${LISTS}
58	@echo ""
59	@df -i ${MOUNT_POINT}
60	@echo ""
61	umount ${MOUNT_POINT}
62	vnconfig -u ${VND}
63
64unconfig:
65	-umount -f ${MOUNT_POINT}
66	-vnconfig -u ${VND_DEV}
67	-/bin/rm -f ${IMAGE}
68
69${CBIN}.conf: ${LISTS}
70	awk -f ${.CURDIR}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CBIN}.conf
71
72${CBIN}.mk: .EXEC
73${CBIN}.mk ${CBIN}.c: ${CRUNCHCONF}
74	${CRUNCHGEN} -f -D ${.CURDIR}/../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
75
76${CBIN}: ${CBIN}.mk ${CBIN}.c
77	${MAKE} -f ${CBIN}.mk all
78
79.ifndef RELEASEDIR
80release:
81	@echo setenv RELEASEDIR first
82	@false
83.else
84release: ${IMAGE}
85	mkdir -p ${RELEASEDIR}/installation/miniroot
86	gzip -c -9 < ${.OBJDIR}/miniroot.fs \
87		> ${RELEASEDIR}/installation/miniroot/miniroot.fs.gz
88	${.CURDIR}/../sets/makesums \
89		-t ${RELEASEDIR}/installation/miniroot miniroot.fs.gz
90
91.endif	# RELEASEDIR check
92.endif	# DESTDIR check
93
94clean cleandir distclean:
95	/bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache \
96	${CBIN}.conf *.o *.cro *.c
97
98.include <bsd.obj.mk>
99.include <bsd.subdir.mk>
100