xref: /netbsd-src/distrib/miniroot/Makefile (revision 3b01aba77a7a698587faaae455bbfe740923c1f5)
1#	$NetBSD: Makefile,v 1.37 2001/02/25 03:54:25 jmc 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?=		vnd0c
17VND_DEV=	/dev/${VND}
18VND_RDEV=	/dev/r${VND}
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
33MTREE=		${.CURDIR}/mtree.conf
34ICMD=		${INSTALL} ${RENAME} ${PRESERVE} ${COPY}	\
35			-o root -g wheel -m ${NONBINMODE}
36
37CRUNCHGEN?=	crunchgen
38
39.ifndef DESTDIR
40all:
41	@echo setenv DESTDIR before making a miniroot!
42	@false
43.else
44
45all: ${CBIN}
46	dd if=/dev/zero of=${IMAGE} count=${IMAGESIZE}
47	vnconfig ${DISKTYPEARG} -v -c ${VND_DEV} ${IMAGE} ${VND_GEOM}
48	${PRELABEL}
49	-newfs -m 0 -o space ${NEWFSOPTS} ${VND_RDEV} ${DISKTYPE}
50	${BOOTINSTALL}
51	mount -o async ${VND_DEV} ${MOUNT_POINT}
52	mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
53	REV=${REV} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} ARCHDIR=${ARCHDIR} \
54	    TARGDIR=${MOUNT_POINT} VND_RDEV=${VND_RDEV} \
55	    KERNOBJDIR=${KERNOBJDIR} \
56	    sh ${.CURDIR}/runlist.sh ${LISTS}
57	@echo ""
58	@df -i ${MOUNT_POINT}
59	@echo ""
60	umount ${MOUNT_POINT}
61	vnconfig -u ${VND_DEV}
62
63unconfig:
64	-umount -f ${MOUNT_POINT}
65	-vnconfig -u ${VND_DEV}
66	-/bin/rm -f ${IMAGE}
67
68${CBIN}.conf: ${LISTS}
69	awk -f ${.CURDIR}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CBIN}.conf
70
71${CBIN}.mk ${CBIN}.cache ${CBIN}.c! ${CRUNCHCONF}
72	${CRUNCHGEN} -f -D ${.CURDIR}/../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
73
74${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
75	${MAKE} -f ${CBIN}.mk all
76
77.ifndef RELEASEDIR
78release:
79	@echo setenv RELEASEDIR first
80	@false
81.else
82release: ${IMAGE}
83	mkdir -p ${RELEASEDIR}/installation/miniroot
84	gzip -c -9 < ${.OBJDIR}/miniroot.fs \
85		> ${RELEASEDIR}/installation/miniroot/miniroot.fs.gz
86	${.CURDIR}/../sets/makesums \
87		-t ${RELEASEDIR}/installation/miniroot miniroot.fs.gz
88
89.endif	# RELEASEDIR check
90.endif	# DESTDIR check
91
92clean cleandir distclean:
93	/bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache \
94	${CBIN}.conf *.o *.cro *.c
95
96.include <bsd.obj.mk>
97.include <bsd.subdir.mk>
98