Makefile revision 1.14
1#	$NetBSD: Makefile,v 1.14 2002/01/23 21:10:00 scw Exp $
2
3TOP=		${.CURDIR}/..
4
5# This include just sets REV=XX
6.include "${TOP}/Makefile.inc"
7
8IMAGE=		ramdisk-${REV}.fs
9CBIN=		rd_bin
10
11TREE=		mtree.conf
12LISTS=		list
13CRUNCHCONF=	${.CURDIR}/${CBIN}.conf
14
15KERNEL=		${KERNOBJDIR}/RAMDISK/netbsd
16
17MOUNT_POINT?=   /mnt
18# DEV/RDEV file system device, CDEV/RDEV vnconfig device
19VND?=           vnd0
20VND_CDEV=       /dev/${VND}c
21VND_CRDEV=      /dev/r${VND}c
22
23CRUNCHGEN?=	crunchgen
24MDSETIMAGE?=	mdsetimage
25MTREE?=		mtree
26
27# These are all the parameters for the root fs: (384K)
28# NOTE: If you change NBLKS, you *must* also edit the
29#       rdroot entry in /etc/disktab
30DISKTYPE=	rdroot
31NBLKS=		1024
32
33CLEANFILES+=	netbsd-rd ${IMAGE}
34
35netbsd-rd:	${IMAGE}
36	cp ${KERNEL} netbsd-tmp
37	${MDSETIMAGE} netbsd-tmp ${IMAGE}
38	-mv -f netbsd-tmp $@
39
40${IMAGE}:	${TREE} ${LISTS} ${CBIN}
41	dd if=/dev/zero of=${IMAGE} count=${NBLKS}
42	vnconfig -t ${DISKTYPE} -v -c ${VND} ${IMAGE}
43	newfs -B be -m 0 -o space -i 2048 ${VND_CRDEV} ${DISKTYPE}
44	mount ${VND_CDEV} ${MOUNT_POINT}
45	${MTREE} -def ${.CURDIR}/${TREE} -p ${MOUNT_POINT}/ -u
46	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
47	    KERNOBJDIR=${KERNOBJDIR} \
48	    TARGDIR=${MOUNT_POINT} sh ${.CURDIR}/runlist.sh ${.CURDIR}/${LISTS}
49	@echo ""
50	@df -i ${MOUNT_POINT}
51	@echo ""
52	umount ${MOUNT_POINT}
53	vnconfig -u ${VND}
54
55unconfig:
56	-umount -f ${MOUNT_POINT}     
57	-vnconfig -u ${VND}      
58	-/bin/rm -f ${IMAGE}
59
60# Do not delete this if I change my mind and kill make...
61.PRECIOUS: ${IMAGE}
62
63CLEANFILES+= ${CBIN} ${CBIN}.c ${CBIN}.cache ${CBIN}.mk ${CBIN}.syms
64CLEANFILES+= *.cro *_stub.o *_stub.c
65
66${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
67	${CRUNCHGEN} -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
68
69${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
70	${MAKE} -f ${CBIN}.mk all
71
72# This is listed in rd_bin.conf but is built here.
73${CBIN} : libhack.o
74
75# Use stubs to eliminate some large stuff from libc
76HACKSRC=${TOP}/../utils/libhack
77.include "${HACKSRC}/Makefile.inc"
78
79release:	netbsd-rd
80	-mkdir -p ${RELEASEDIR}/installation/tapeimage
81	gzip < netbsd-rd > ${RELEASEDIR}/installation/tapeimage/netbsd-rd.gz
82
83clean cleandir distclean:
84	-rm -f a.out core *.core *.o
85	-rm -f ${CLEANFILES}
86
87.include <bsd.own.mk>
88.include <bsd.obj.mk>
89.include <bsd.subdir.mk>
90.include <bsd.kernobj.mk>
91.include <bsd.sys.mk>
92.include <bsd.prog.mk>
93
94