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