Makefile revision 1.29
1#	$NetBSD: Makefile,v 1.29 2002/05/02 18:02:59 lukem Exp $
2
3.include <bsd.own.mk>
4.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
5
6TOP=		${.CURDIR}/..
7
8.include "${TOP}/Makefile.inc"
9
10DBG=	-Os
11
12IMAGE=	ramdisk
13CBIN=	rd_bin
14
15TREE=	${TOP}/common/${IMAGE}.tree
16
17LISTS=	${TOP}/common/${CBIN}.list \
18	${TOP}/common/${IMAGE}.list
19
20KERNEL3  = ${KERNOBJDIR}/RAMDISK/netbsd
21KERNEL3X = ${KERNOBJDIR}/RAMDISK3X/netbsd
22
23MOUNT_POINT?=	/mnt
24VND?=		vnd1
25VND_DEV?=	/dev/${VND}a
26VND_RDEV?=	/dev/r${VND}a
27
28# These are all the parameters for the root fs:
29DISKTYPE=	rdroot
30SIZE=		400k
31# bigendian, minfree, opt, b/i , cpg
32NEWFSARGS= -B be -m 0 -o space -i 4096 -c 20
33MDSETIMAGE?=	mdsetimage
34MTREE?=		mtree
35
36KERNELS= netbsd.RAMDISK netbsd.RAMDISK3X
37CLEANFILES= $(KERNELS) ${IMAGE}.fs netbsd-tmp
38
39all: $(KERNELS)
40
41netbsd.RAMDISK : ${IMAGE}.fs
42	cp ${KERNEL3} netbsd-tmp
43	${MDSETIMAGE} -v netbsd-tmp ${IMAGE}.fs
44	-mv -f netbsd-tmp $@
45
46netbsd.RAMDISK3X : ${IMAGE}.fs
47	cp ${KERNEL3X} netbsd-tmp
48	${MDSETIMAGE} -v netbsd-tmp ${IMAGE}.fs
49	-mv -f netbsd-tmp $@
50
51${IMAGE}.fs: ${TREE} ${LISTS} ${CBIN}
52	dd if=/dev/zero of=${IMAGE}.fs bs=${SIZE} count=1
53	vnconfig -t ${DISKTYPE} -v -c ${VND} ${IMAGE}.fs
54	disklabel -rw ${VND} ${DISKTYPE}
55	newfs ${NEWFSARGS} ${VND_RDEV}
56	mount ${VND_DEV} ${MOUNT_POINT}
57	${MTREE} -def ${TREE} -p ${MOUNT_POINT}/ -u
58	TOPDIR=${TOP} CURDIR=${.CURDIR} DESTDIR=${DESTDIR} \
59	  OBJDIR=${.OBJDIR} TARGDIR=${MOUNT_POINT} \
60	  sh ${TOP}/common/RunList.sh ${LISTS}
61	sync
62	@echo ""
63	@df -i ${MOUNT_POINT}
64	@echo ""
65	umount ${MOUNT_POINT}
66	vnconfig -u ${VND}
67
68unconfig:
69	-umount -f ${MOUNT_POINT}
70	-vnconfig -u ${VND}
71	-/bin/rm -f ${IMAGE}.fs
72
73# Do not delete this if I change my mind and kill make...
74.PRECIOUS: ${IMAGE}.fs
75
76# Rules for making ${CBIN} ...
77.include "${TOP}/common/Make.crunch"
78
79# Use stubs to eliminate some large stuff from libc
80HACKSRC=	${DISTRIBDIR}/utils/libhack
81.include	"${HACKSRC}/Makefile.inc"
82${CBIN}:	libhack.o
83
84release: check_RELEASEDIR .WAIT $(KERNELS)
85.for x in ${KERNELS}
86	gzip -c -9 < ${x} > \
87	 ${RELEASEDIR}/binary/kernel/${x}.gz
88.endfor # KERNELS
89
90.INTERRUPT: unconfig
91
92.include <bsd.prog.mk>
93