Makefile revision 1.41
1#	$OpenBSD: Makefile,v 1.41 2019/04/28 15:21:50 deraadt Exp $
2
3TOP=		${.CURDIR}/..
4
5.include "${TOP}/Makefile.inc"
6IMAGE=		mr.fs
7LISTS=		${.CURDIR}/list
8UTILS?=		${.CURDIR}/../../miniroot
9
10MOUNT_POINT=	/mnt
11MTREE=		${UTILS}/mtree.conf
12
13FLOPPY=		floppy${REV}.fs
14FLOPPYSIZE?=	2880
15FLOPPYTYPE?=	floppy
16
17GZIPFLAGS?=	-9nv
18
19DISKTYPE=	rdroot
20MAKEFSARGS_RD=	-o disklabel=${DISKTYPE},minfree=0,density=4096
21
22.ifndef DESTDIR
23all ${IMAGE}:
24	@echo setenv DESTDIR before making a ramdisk!
25	@false
26.else
27
28# mix config is not needed.
29all:	${FLOPPY} bsd.rd
30
31bsd.gz:	bsd.rd
32	gzip ${GZIPFLAGS} < bsd.rd > bsd.gz
33
34${FLOPPY}:	bsd.gz ${BOOT} /usr/
35	dd if=/dev/zero of=${FLOPPY} count=${FLOPPYSIZE}
36	vnconfig -v ${FLOPPY} > vnd
37	disklabel -w `cat vnd` ${FLOPPYTYPE}
38	newfs -m 0 -o space -i 524288 -c ${FLOPPYSIZE} /dev/r`cat vnd`a
39	mount /dev/`cat vnd`a ${MOUNT_POINT}
40	cp ${DESTDIR}/usr/mdec/ofwbootfd ${MOUNT_POINT}/ofwboot
41	cp bsd.gz ${MOUNT_POINT}/bsd
42	installboot -v `cat vnd` /usr/mdec/bootblk ${MOUNT_POINT}/ofwboot
43	@echo ""
44	@df -i ${MOUNT_POINT}
45	@echo ""
46	umount ${MOUNT_POINT}
47	vnconfig -u `cat vnd`
48	rm -f vnd
49
50bsd.rd: instbin ${IMAGE} bsd
51	cp bsd bsd.rd
52	rdsetroot bsd.rd ${IMAGE}
53	strip -R .SUNW_ctf bsd.rd
54
55${IMAGE}: instbin
56	rm -rf $@.d
57	install -d -o root -g wheel $@.d
58	mtree -def ${MTREE} -p $@.d -u
59	TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} REV=${REV} \
60	    TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \
61	    sh ${UTILS}/runlist.sh ${LISTS}
62	rm $@.d/instbin
63	makefs ${MAKEFSARGS_RD} $@ $@.d
64
65.endif
66
67bsd:
68	cd ${TOP}/../../sys/arch/sparc64/compile/RAMDISKU1 && \
69	    su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && env ${MAKE}'
70	cp -p ${TOP}/../../sys/arch/sparc64/compile/RAMDISKU1/obj/bsd bsd
71
72unconfig:
73	-umount -f ${MOUNT_POINT}
74	-[ -f vnd ] && vnconfig -u `cat vnd` && rm -f vnd
75
76instbin.conf: ${LISTS}
77	awk -f ${UTILS}/makeconf.awk  ${LISTS} > instbin.conf
78
79instbin.mk instbin.cache instbin.c: instbin.conf
80	crunchgen -E -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib ${.ALLSRC}
81
82instbin: instbin.mk instbin.cache instbin.c
83	${MAKE} -f instbin.mk SRCLIBDIR=${.CURDIR}/../../../lib all
84
85clean cleandir:
86	/bin/rm -f *.core ${IMAGE} instbin instbin.mk instbin.cache \
87	    lib*.a lib*.olist instbin.map \
88	    *.o *.lo *.c bsd bsd.rd bsd.gz ${FLOPPY}
89	/bin/rm -rf ${IMAGE}.d
90
91.ifdef RELEASEDIR
92install:
93	cp ${FLOPPY} ${BSD.RD} ${RELEASEDIR}
94.endif
95
96.include <bsd.obj.mk>
97.include <bsd.subdir.mk>
98