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