xref: /openbsd/distrib/i386/ramdisk_cd/Makefile (revision 76d0caae)
1#	$OpenBSD: Makefile,v 1.26 2021/10/04 17:02:21 deraadt Exp $
2
3FS=		miniroot${OSrev}.img
4FSSIZE=		8192
5FSDISKTYPE=	mini34
6CDROM=		cd${OSrev}.iso
7MOUNT_POINT=	/mnt
8MTREE=		${UTILS}/mtree.conf
9RAMDISK=	RAMDISK_CD
10
11LISTS=		${.CURDIR}/list
12UTILS=		${.CURDIR}/../../miniroot
13
14LBA=1
15
16all: ${FS} ${CDROM}
17
18${FS}: bsd.gz
19	dd if=/dev/zero of=${FS} bs=512 count=${FSSIZE}
20	vnconfig -v ${FS} > vnd
21.ifdef LBA
22	fdisk -yi -l ${FSSIZE} -f ${DESTDIR}/usr/mdec/mbr `cat vnd`
23.endif
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	objcopy -S -R .comment ${DESTDIR}/usr/mdec/boot ${.OBJDIR}/boot
28	installboot -v -r ${MOUNT_POINT} `cat vnd` \
29	    ${DESTDIR}/usr/mdec/biosboot ${.OBJDIR}/boot
30	install -c -m 555 -o root -g wheel bsd.gz ${MOUNT_POINT}/bsd
31	df -i ${MOUNT_POINT}
32	umount ${MOUNT_POINT}
33	vnconfig -u `cat vnd`
34	rm -f vnd
35
36${CDROM}: bsd.rd
37	rm -rf ${.OBJDIR}/cd-dir
38	mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
39	mkdir -p ${.OBJDIR}/cd-dir/etc
40	echo "set image /${OSREV}/${MACHINE}/bsd.rd" > ${.OBJDIR}/cd-dir/etc/boot.conf
41	cp ${.OBJDIR}/bsd.rd ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
42	cp ${DESTDIR}/usr/mdec/cdbr ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
43	cp ${DESTDIR}/usr/mdec/cdboot ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/cdboot
44	mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \
45	    -A "OpenBSD ${OSREV} ${MACHINE} bootonly CD" \
46	    -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \
47	    -p "Theo de Raadt <deraadt@openbsd.org>" \
48	    -V "OpenBSD/${MACHINE}    ${OSREV} boot-only CD" \
49	    -b ${OSREV}/${MACHINE}/cdbr -c ${OSREV}/${MACHINE}/boot.catalog \
50	    ${.OBJDIR}/cd-dir
51
52MRDISKTYPE=	rdrootb
53MRMAKEFSARGS=	-o disklabel=${MRDISKTYPE},minfree=0,density=4096
54
55bsd.gz: bsd.rd
56	objcopy -S -R .comment -R .SUNW_ctf \
57	    -K rd_root_size -K rd_root_image \
58	    bsd.rd bsd.strip
59	gzip -9cn bsd.strip > bsd.gz
60
61bsd.rd: mr.fs bsd
62	cp bsd bsd.rd
63	rdsetroot bsd.rd mr.fs
64
65bsd:
66	cd ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK} && \
67	    su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && exec ${MAKE} ${MFLAGS}'
68	cp -p ${.CURDIR}/../../../sys/arch/${MACHINE}/compile/${RAMDISK}/obj/bsd bsd
69
70mr.fs: instbin
71	rm -rf $@.d
72	install -d -o root -g wheel $@.d
73	mtree -def ${MTREE} -p $@.d -u
74	CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} OSrev=${OSrev} \
75	    TARGDIR=$@.d UTILS=${UTILS} RELEASEDIR=${RELEASEDIR} \
76	    sh ${UTILS}/runlist.sh ${LISTS}
77	rm $@.d/instbin
78	makefs ${MRMAKEFSARGS} $@ $@.d
79
80instbin.mk instbin.cache instbin.c: instbin.conf
81	crunchgen -E -D ${.CURDIR}/../../.. -L ${DESTDIR}/usr/lib \
82	    -c instbin.c -e instbin -m instbin.mk instbin.conf
83
84instbin: instbin.mk instbin.cache instbin.c
85	${MAKE} ${MFLAGS} -f instbin.mk SRCLIBDIR=${.CURDIR}/../../../lib all
86
87instbin.conf: ${LISTS}
88	awk -f ${UTILS}/makeconf.awk  ${LISTS} > instbin.conf
89
90unconfig:
91	-umount -f ${MOUNT_POINT}
92	-[ -f vnd ] && vnconfig -u `cat vnd` && rm -f vnd
93
94.ifdef RELEASEDIR
95install:
96	cp bsd.gz ${RELEASEDIR}/bsd.rd
97	chmod a+r ${RELEASEDIR}/bsd.rd
98	cp ${FS} ${RELEASEDIR}
99	cp ${CDROM} ${RELEASEDIR}
100.endif
101
102clean cleandir:
103	rm -f *.core mr.fs instbin instbin.mk instbin*.cache \
104	    *.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip floppy*.img \
105	    lib*.a lib*.olist instbin.map boot instbin.conf ${FS}
106	rm -rf mr.fs.d
107	rm -f ${CDROM}
108	rm -rf cd-dir
109
110.include <bsd.obj.mk>
111