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