Makefile revision 1.4
1#	$NetBSD: Makefile,v 1.4 2001/08/23 17:14:40 eeh 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
52MTREE=		mtree.conf
53
54CRUNCHGEN?=	crunchgen
55DISKTYPE?=	miniroot
56
57all: netbsd.INSTALL ${IMAGE}
58
59netbsd.INSTALL: ${KERN} ${IMAGE}
60	cp ${KERN} netbsd.tmp
61	mdsetimage -v netbsd.tmp ${IMAGE}
62	strip netbsd.tmp
63	mv netbsd.tmp ${.TARGET}
64
65
66${IMAGE}: ${CBIN} ${AUXDEPENDS} ${MTREE} ${LISTS} dot.profile
67	dd if=/dev/zero of=${IMAGE} count=${CSIZE}
68	vnconfig -v -c ${VND_CDEV} ${IMAGE}
69	-disklabel -f ${.CURDIR}/disktab -rw ${VND_CDEV} ${DISKTYPE}
70	#newfs -B ${FS_END} -m 0 -o space -i 5120 -c 80 ${VND_RDEV} ${DISKTYPE}
71	newfs -B ${FS_END} -m 0 -o space ${VND_RDEV} ${DISKTYPE}
72	mount -o softdep ${VND_DEV} ${MOUNT_POINT}
73	mtree -def ${.CURDIR}/${MTREE} -p ${MOUNT_POINT}/ -u
74	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
75	    KERNOBJDIR=${KERNOBJDIR} \
76	    TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
77	@echo ""
78	@df -i ${MOUNT_POINT}
79	@echo ""
80	@echo "installing new bootblocks"
81	#${MDEC}/binstall -m ${DESTDIR}/usr/mdec -u -v ffs ${MOUNT_POINT}
82	umount ${MOUNT_POINT}
83	dd if=${MDEC}/bootblk of=${VND_CDEV} bs=512 count=15 conv=notrunc seek=1
84	#${MDEC}/installboot -v ${MDEC}/bootblk ${VND_CDEV}
85	vnconfig -u ${VND_CDEV}
86
87unconfig:
88	-umount -f ${MOUNT_POINT}
89	-vnconfig -u ${VND_DEV}
90	-/bin/rm -f ${IMAGE}
91
92dot.profile: dot.profile.m4
93	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
94				${.ALLSRC} > ${.TARGET}
95
96${LISTS}: ${LISTS}.m4
97	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
98			-DSRCROOT=${SRCROOT} ${.ALLSRC} > ${.TARGET}
99
100${CBIN}.conf: ${CBIN}.m4
101	m4 -DMACHINE_ARCH=${MACHINE_ARCH} -DMACHINE=${MACHINE} \
102				${.ALLSRC} > ${.TARGET}
103
104${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
105	${CRUNCHGEN} -D ${SRCROOT} -L ${DESTDIR}/usr/lib ${.ALLSRC}
106
107${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
108	${MAKE} -f ${CBIN}.mk all
109
110# This is listed in ramdiskbin.conf but is built here.
111${CBIN}: libhack.o
112
113# Use stubs to eliminate some large stuff from libc
114.include "${HACKSRC}/Makefile.inc"
115
116# turn off small gethostby* temporarily
117HACKOBJS:= getcap.o getgrent.o getnet.o getnetgr.o getpwent.o setlocale.o yplib.o
118
119clean cleandir distclean:
120	/bin/rm -f *.core ${AUXCLEAN} ${IMAGE} netbsd.INSTALL ${CBIN} \
121		${CBIN}.mk ${CBIN}.cache *.o *.lo *.cro *.c
122
123.ifndef RELEASEDIR
124release:
125	@echo setenv RELEASEDIR first
126	@false
127.else
128release: $(IMAGE) netbsd.INSTALL
129	@mkdir -p $(RELEASEDIR)/installation/miniroot
130	gzip -c -9 < $(.OBJDIR)/miniroot.fs \
131		> $(RELEASEDIR)/installation/miniroot/miniroot.fs.gz
132	@mkdir -p $(RELEASEDIR)/binary/kernels
133	cp netbsd.INSTALL $(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