xref: /netbsd/distrib/evbsh3/rom/ramdiskeb/Makefile (revision bf9ec67e)
1#	$NetBSD: Makefile,v 1.7 2002/04/06 18:16:09 tsutsui Exp $
2
3TOP=		${.CURDIR}/..
4WARNS=1
5DBG=		-Os
6
7.include "${TOP}/Makefile.inc"
8IMAGE=		ramdisk.fs
9
10CBIN=		ramdiskbin
11
12MOUNT_POINT?=	/mnt
13# DEV/RDEV file system device, CDEV/RDEV vnconfig device
14VND?=		vnd0
15VND_DEV=	/dev/${VND}a
16VND_RDEV=	/dev/r${VND}a
17VND_CDEV=	/dev/${VND}d
18VND_CRDEV=	/dev/r${VND}d
19IMAGE?=		xxx.fs
20MDEC=		${DESTDIR}/usr/mdec
21
22#CRUNCHGEN?=	sh-crunchgen
23
24# for cross compile
25#CRUNCHIDE?=	sh-crunchide
26
27SUDO?=		sudo
28DISKLABEL?=	${SUDO} disklabel
29MOUNT?=		${SUDO} mount
30MTREE?=		${SUDO} mtree
31NEWFS?=		${SUDO} newfs
32UMOUNT?=	${SUDO} umount
33VNCONFIG?=	${SUDO} vnconfig
34
35LISTS=		../ramdiskcommon/list
36CRUNCHCONF=	../ramdiskcommon/${CBIN}.conf
37MTREECONF=	../ramdiskcommon/mtree.conf
38
39RAMDISKSPC=	128
40RAMDISKCYLS=	54
41RAMDISKSIZE!=	expr ${RAMDISKSPC} \* ${RAMDISKCYLS}
42
43realall: ${IMAGE}
44
45${IMAGE}: ${CBIN} ${MTREECONF} ${LISTS}
46	rm -f ${IMAGE}.tmp
47	dd if=/dev/zero of=${IMAGE}.tmp count=${RAMDISKSIZE}
48	${VNCONFIG} -v -c ${VND_CDEV} ${IMAGE}.tmp \
49		512/${RAMDISKSPC}/1/${RAMDISKCYLS}
50	-${DISKLABEL} ${VND_CDEV} >tmplabel
51	${DISKLABEL} -r -R ${VND_CDEV} tmplabel
52	${NEWFS} -B be -m 0 -o space ${VND_RDEV}
53	${MOUNT} ${VND_DEV} ${MOUNT_POINT}
54	${MTREE} -def ${.CURDIR}/${MTREECONF} -p ${MOUNT_POINT}/ -U
55	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
56		TARGDIR=${MOUNT_POINT} ${SUDO} sh ${TOP}/runlist.sh \
57		${.CURDIR}/${LISTS}
58	@echo ""
59	@df -i ${MOUNT_POINT}
60	@echo ""
61	${UMOUNT} ${MOUNT_POINT}
62	${VNCONFIG} -u ${VND_CDEV}
63	mv -f ${IMAGE}.tmp ${IMAGE}
64
65unconfig:
66	-${UMOUNT} -f ${MOUNT_POINT}
67	-${VNCONFIG} -u ${VND_DEV}
68	-/bin/rm -f ${IMAGE}.tmp
69
70${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
71	${CRUNCHGEN} -D ${TOP}/../../.. -L ${.CURDIR} ${.ALLSRC}
72
73${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
74	${MAKE} -f ${CBIN}.mk all
75
76# Use stubs to eliminate some large stuff from libc
77HACKSRC=	${DISTRIBDIR}/utils/libhack
78HACKOBJS=	gethost.o
79.include	"${HACKSRC}/Makefile.inc"
80${CBIN}:	libhack.o
81
82mount:
83	${VNCONFIG} -v -c ${VND_CDEV} ${IMAGE} \
84		512/${RAMDISKSPC}/1/${RAMDISKCYLS}
85	${MOUNT} ${VND_DEV} ${MOUNT_POINT}
86
87clean cleandir distclean:
88	/bin/rm -f ${AUXCLEAN} *.core ${IMAGE} ${IMAGE}.tmp ${CBIN} \
89	    ${CBIN}.mk ${CBIN}.cache *.o *.cro *.c tmplabel
90
91.include <bsd.own.mk>
92.include <bsd.obj.mk>
93.include <bsd.subdir.mk>
94.include <bsd.sys.mk>
95