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