xref: /openbsd/distrib/sparc64/miniroot/Makefile (revision 905646f0)
1#	$OpenBSD: Makefile,v 1.23 2020/05/18 06:20:44 otto Exp $
2
3FS=		miniroot${OSrev}.img
4FSSIZE=		6400
5FSDISKTYPE=	fakeramdisk
6CDROM=		cd${OSrev}.iso
7MOUNT_POINT=	/mnt
8MTREE=		${UTILS}/mtree.conf
9RAMDISK=	RAMDISK
10
11LISTS=		${.CURDIR}/list
12UTILS=		${.CURDIR}/../../miniroot
13
14STRIPOPTS=	-R .SUNW_ctf
15
16MRDISKTYPE=	rdroot
17MRMAKEFSARGS=	-o disklabel=${MRDISKTYPE},minfree=0,density=4096
18
19all: ${FS} ${CDROM}
20
21${FS}: bsd.gz
22	dd if=/dev/zero of=${FS} bs=512 count=${FSSIZE}
23	vnconfig -v ${FS} > vnd
24	disklabel -w `cat vnd` ${FSDISKTYPE}
25	newfs -O 1 -m 0 -o space -i 524288 -c ${FSSIZE} /dev/r`cat vnd`a
26	mount /dev/`cat vnd`a ${MOUNT_POINT}
27	install -c -m 555 -o root -g wheel \
28	    ${DESTDIR}/usr/mdec/ofwboot ${MOUNT_POINT}/ofwboot
29	installboot -v -r ${MOUNT_POINT} `cat vnd` \
30	    ${DESTDIR}/usr/mdec/bootblk ${MOUNT_POINT}/ofwboot
31	install -c -m 555 -o root -g wheel bsd.gz ${MOUNT_POINT}/bsd
32	df -i ${MOUNT_POINT}
33	umount ${MOUNT_POINT}
34	vnconfig -u `cat vnd`
35	rm -f vnd
36
37${CDROM}: bsd.rd ${FS}
38	rm -rf ${.OBJDIR}/cd-dir
39	mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/sparc64
40	cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/sparc64
41	ln ${.OBJDIR}/cd-dir/${OSREV}/sparc64/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/sparc64/bsd
42	cp ${DESTDIR}/usr/mdec/ofwboot ${.OBJDIR}/cd-dir/${OSREV}/sparc64
43
44	echo 'm 1	sun4' > ${.OBJDIR}/cd-dir/.slicemapfile
45	echo 'm 2	sun4c' >> ${.OBJDIR}/cd-dir/.slicemapfile
46	echo 'm 3	sun4m' >> ${.OBJDIR}/cd-dir/.slicemapfile
47	echo 'm 4	sun4d' >> ${.OBJDIR}/cd-dir/.slicemapfile
48	echo 'm 5	sun4u' >> ${.OBJDIR}/cd-dir/.slicemapfile
49	echo 'm 5	sun4us' >> ${.OBJDIR}/cd-dir/.slicemapfile
50	echo 'm 6	sun4v' >> ${.OBJDIR}/cd-dir/.slicemapfile
51	mkhybrid -a -R -r -T -L -d -D -N \
52	    -A "OpenBSD ${OSREV} sparc64 bootonly CD" \
53	    -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \
54	    -p "Theo de Raadt <deraadt@openbsd.org>" \
55	    -V "OpenBSD/sparc64 ${OSREV} boot-only CD" \
56	    -o ${.OBJDIR}/${CDROM} ${.OBJDIR}/cd-dir
57	vnconfig -v ${CDROM} > vnd
58	disklabel -w `cat vnd` fakecdrom "OpenBSD${OSrev}sparc64"
59	vnconfig -u `cat vnd`
60	rm -f vnd
61	mksuncd f ${CDROM} ${FS}
62
63bsd.gz: bsd.rd
64	objcopy -Sg -R .comment bsd.rd bsd.strip
65	strip ${STRIPOPTS} bsd.strip
66	gzip -9cn bsd.strip > bsd.gz
67
68bsd.rd: mr.fs bsd
69	cp bsd bsd.rd
70	rdsetroot bsd.rd mr.fs
71
72bsd:
73	cd ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK} && \
74	    su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && exec ${MAKE}'
75	cp -p ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK}/obj/bsd bsd
76
77mr.fs: instbin
78	rm -rf $@.d
79	install -d -o root -g wheel $@.d
80	mtree -def ${MTREE} -p $@.d -u
81	CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} OSrev=${OSrev} \
82	    TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \
83	    sh ${UTILS}/runlist.sh ${LISTS}
84	rm $@.d/instbin
85	makefs ${MRMAKEFSARGS} $@ $@.d
86
87instbin.mk instbin.cache instbin.c: instbin.conf
88	crunchgen -E -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib \
89	    -c instbin.c -e instbin -m instbin.mk instbin.conf
90
91instbin: instbin.mk instbin.cache instbin.c
92	${MAKE} -f instbin.mk SRCLIBDIR=${.CURDIR}/../../../lib all
93
94instbin.conf: ${LISTS}
95	awk -f ${UTILS}/makeconf.awk  ${LISTS} > instbin.conf
96
97unconfig:
98	-umount -f ${MOUNT_POINT}
99	-[ -f vnd ] && vnconfig -u `cat vnd` && rm -f vnd
100
101.ifdef RELEASEDIR
102install:
103	cp bsd.rd ${RELEASEDIR}/bsd.rd
104	chmod a+r ${RELEASEDIR}/bsd.rd
105	cp ${FS} ${RELEASEDIR}
106	cp ${CDROM} ${RELEASEDIR}
107.endif
108
109clean cleandir:
110	rm -f *.core mr.fs instbin instbin.mk instbin*.cache \
111	    lib*.a lib*.olist instbin.map \
112	    *.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip ${FS}
113	rm -rf mr.fs.d
114	rm -rf ${CDROM} ${.OBJDIR}/cd-dir
115
116.include <bsd.obj.mk>
117