Makefile revision 1.7
1#	$NetBSD: Makefile,v 1.7 2001/10/13 06:15:20 jmc Exp $
2
3TOP=		${.CURDIR}/..
4MINIROOT=	${TOP}/../miniroot
5
6.include "${TOP}/Makefile.inc"
7
8.include <bsd.own.mk>	# So we use /etc/mk.conf.
9.include <bsd.kernobj.mk>
10
11HACKSRC=	${TOP}/../utils/libhack
12SRCROOT=	${TOP}/../..
13WARNS=1
14KERN?=		${KERNOBJDIR}/INSTALL/netbsd
15
16.if ${MACHINE_ARCH} == "i386"
17RAW_PART=	d
18.else
19RAW_PART=	c
20.endif
21
22# Need to add more cases
23.if ${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "m68k" || \
24    ${MACHINE_ARCH} == "sparc64"
25FS_END=		be
26.else		# i386, pmax
27FS_END=		le
28.endif
29
30AUXDEPENDS= 	dot.profile disktab.preinstall termcap.mini \
31		dist/base_obsolete dist/comp_obsolete \
32		dist/games_obsolete dist/man_obsolete dist/misc_obsolete \
33		dist/secr_obsolete dist/xbase_obsolete dist/xserver_obsolete
34AUXCLEAN=	list ${CBIN}.conf dot.profile
35
36CBIN=		ramdiskbin
37
38
39MOUNT_POINT?=	/mnt
40# DEV/RDEV file system device, CDEV/RDEV vnconfig device
41VND?=		vnd0
42VND_DEV=	/dev/${VND}c
43VND_RDEV=	/dev/r${VND}c
44VND_CDEV=	/dev/${VND}${RAW_PART}
45VND_CRDEV=	/dev/r${VND}${RAW_PART}
46CSIZE?=		14000
47IMAGE?=		miniroot.fs
48MDEC=		${DESTDIR}/usr/mdec
49
50LISTS=		list
51CRUNCHCONF=	${CBIN}.conf
52MTREECONF=	mtree.conf
53
54CRUNCHGEN?=	crunchgen
55MTREE?=		mtree
56DISKTYPE?=	miniroot
57
58all: netbsd.INSTALL ${IMAGE}
59
60netbsd.INSTALL: ${KERN} ${IMAGE}
61	cp ${KERN} netbsd.tmp
62	mdsetimage -v netbsd.tmp ${IMAGE}
63	strip netbsd.tmp
64	mv netbsd.tmp ${.TARGET}
65
66
67${IMAGE}: ${CBIN} ${AUXDEPENDS} ${MTREECONF} ${LISTS} dot.profile
68	dd if=/dev/zero of=${IMAGE} count=${CSIZE}
69	vnconfig -v -c ${VND_CDEV} ${IMAGE}
70	-disklabel -f ${.CURDIR}/disktab -rw ${VND_CDEV} ${DISKTYPE}
71	#newfs -B ${FS_END} -m 0 -o space -i 5120 -c 80 ${VND_RDEV} ${DISKTYPE}
72	newfs -B ${FS_END} -m 0 -o space ${VND_RDEV} ${DISKTYPE}
73	mount -o softdep ${VND_DEV} ${MOUNT_POINT}
74	${MTREE} -def ${.CURDIR}/${MTREECONF} -p ${MOUNT_POINT}/ -u
75	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
76	    KERNOBJDIR=${KERNOBJDIR} \
77	    TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
78	@echo ""
79	@df -i ${MOUNT_POINT}
80	@echo ""
81	@echo "installing new bootblocks"
82	#${MDEC}/binstall -m ${DESTDIR}/usr/mdec -u -v ffs ${MOUNT_POINT}
83	umount ${MOUNT_POINT}
84	dd if=${MDEC}/bootblk of=${VND_CDEV} bs=512 count=15 conv=notrunc seek=1
85	#${MDEC}/installboot -v ${MDEC}/bootblk ${VND_CDEV}
86	vnconfig -u ${VND_CDEV}
87
88unconfig:
89	-umount -f ${MOUNT_POINT}
90	-vnconfig -u ${VND_DEV}
91	-/bin/rm -f ${IMAGE}
92
93dot.profile: dot.profile.m4
94	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
95				${.ALLSRC} > ${.TARGET}
96
97${LISTS}: ${LISTS}.m4
98	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
99			-DSRCROOT=${SRCROOT} ${.ALLSRC} > ${.TARGET}
100
101${CBIN}.conf: ${CBIN}.m4
102	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
103				${.ALLSRC} > ${.TARGET}
104
105${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
106	${CRUNCHGEN} -D ${SRCROOT} -L ${DESTDIR}/usr/lib ${.ALLSRC}
107
108${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
109	${MAKE} -f ${CBIN}.mk all
110
111# This is listed in ramdiskbin.conf but is built here.
112${CBIN}: libhack.o
113
114# Use stubs to eliminate some large stuff from libc
115.include "${HACKSRC}/Makefile.inc"
116
117# turn off small gethostby* temporarily
118HACKOBJS:= getcap.o getgrent.o getnet.o getnetgr.o getpwent.o setlocale.o yplib.o
119
120clean cleandir distclean:
121	/bin/rm -f *.core ${AUXCLEAN} ${IMAGE} netbsd.INSTALL ${CBIN} \
122		${CBIN}.mk ${CBIN}.cache *.o *.lo *.cro *.c
123
124.ifndef RELEASEDIR
125release:
126	@echo setenv RELEASEDIR first
127	@false
128.else
129release: $(IMAGE) netbsd.INSTALL
130	@mkdir -p $(RELEASEDIR)/installation/miniroot
131	gzip -c -9 < $(.OBJDIR)/miniroot.fs \
132		> $(RELEASEDIR)/installation/miniroot/miniroot.fs.gz
133	@mkdir -p $(RELEASEDIR)/binary/kernels
134.endif	# RELEASEDIR check
135
136.include <bsd.own.mk>
137.include <bsd.obj.mk>
138.include <bsd.subdir.mk>
139.include <bsd.sys.mk>
140