1#	$OpenBSD: Makefile,v 1.7 2024/06/09 17:24:19 deraadt Exp $
2
3FS=		install${OSrev}.img
4FSSIZE=		1032192
5CDROM=		install${OSrev}.iso
6
7MOUNT_POINT=	/mnt
8
9RELXDIR?=	/home/relx-${MACHINE}
10RELDIR?=	/home/rel-${MACHINE}
11
12BASE=		${RELDIR}/base${OSrev}.tgz ${RELDIR}/comp${OSrev}.tgz \
13		${RELDIR}/game${OSrev}.tgz ${RELDIR}/man${OSrev}.tgz \
14		${RELDIR}/bsd ${RELDIR}/bsd.mp ${RELDIR}/bsd.rd \
15		${RELDIR}/INSTALL.${MACHINE} ${RELDIR}/BUILDINFO
16XBASE=		${RELXDIR}/xbase${OSrev}.tgz ${RELXDIR}/xfont${OSrev}.tgz \
17		${RELXDIR}/xshare${OSrev}.tgz ${RELXDIR}/xserv${OSrev}.tgz
18
19MSDOSSTART=	64
20MSDOSSIZE=	30000
21TOTALSIZE!=	expr ${FSSIZE} + ${MSDOSSIZE}
22
23NEWFS_ARGS_msdos=-L boot
24MOUNT_ARGS_msdos=-o-l
25
26all: ${FS} ${CDROM}
27
28${FS}: ${BASE} ${XBASE}
29	dd if=/dev/zero of=${FS} bs=512 count=${TOTALSIZE}
30	vnconfig -v ${FS} > vnd
31	fdisk -iy -b "${MSDOSSIZE}@${MSDOSSTART}:c" `cat vnd` >/dev/null
32	echo '/ *' | disklabel -wAT- `cat vnd`
33	newfs -t msdos ${NEWFS_ARGS_msdos} /dev/r`cat vnd`i
34	mount ${MOUNT_ARGS_msdos} /dev/`cat vnd`i ${MOUNT_POINT}
35	echo 'menuentry "OpenBSD install" {' > ${MOUNT_POINT}/grub.cfg
36	echo '\tlinux /boot' >> ${MOUNT_POINT}/grub.cfg
37	echo '\tinitrd /boot' >> ${MOUNT_POINT}/grub.cfg
38	echo '}' >> ${MOUNT_POINT}/grub.cfg
39	cp ${RELDIR}/bsd.rd ${MOUNT_POINT}/boot
40	umount ${MOUNT_POINT}
41
42	newfs -O 1 -m 0 -o space -i 524288 -c ${FSSIZE} /dev/r`cat vnd`a
43	mount /dev/`cat vnd`a ${MOUNT_POINT}
44	mkdir -p ${MOUNT_POINT}/${OSREV}/${MACHINE}
45	cp -p ${BASE} ${MOUNT_POINT}/${OSREV}/${MACHINE}
46	cp -p ${XBASE} ${MOUNT_POINT}/${OSREV}/${MACHINE}
47	ln ${MOUNT_POINT}/${OSREV}/${MACHINE}/bsd.rd ${MOUNT_POINT}/bsd.rd
48	ln ${MOUNT_POINT}/${OSREV}/${MACHINE}/bsd.rd ${MOUNT_POINT}/bsd
49
50	cat ${RELDIR}/SHA256 ${RELXDIR}/SHA256 > \
51	    ${MOUNT_POINT}/${OSREV}/${MACHINE}/SHA256
52	# XXX no SHA256.sig
53	df -i ${MOUNT_POINT}
54	umount ${MOUNT_POINT}
55	vnconfig -u `cat vnd`
56	rm -f vnd
57
58${CDROM}: ${BASE} ${XBASE}
59	rm -rf ${.OBJDIR}/cd-dir
60	mkdir -p ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
61	echo 'menuentry "OpenBSD install" {' > ${.OBJDIR}/cd-dir/grub.cfg
62	echo '\tlinux /boot' >> ${.OBJDIR}/cd-dir/grub.cfg
63	echo '\tinitrd /boot' >> ${.OBJDIR}/cd-dir/grub.cfg
64	echo '}' >> ${.OBJDIR}/cd-dir/grub.cfg
65	cp ${RELDIR}/bsd.rd ${.OBJDIR}/cd-dir/boot
66
67	cp -p ${BASE} ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
68	cp -p ${XBASE} ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}
69	ln ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd.rd ${.OBJDIR}/cd-dir/bsd.rd
70	ln ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/bsd.rd ${.OBJDIR}/cd-dir/bsd
71
72	cat ${RELDIR}/SHA256 ${RELXDIR}/SHA256 > \
73	    ${.OBJDIR}/cd-dir/${OSREV}/${MACHINE}/SHA256
74	# XXX no SHA256.sig
75
76	mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \
77	    -A "OpenBSD ${OSREV} ${MACHINE} Install CD" \
78	    -P "Copyright (c) `date +%Y` Theo de Raadt, The OpenBSD project" \
79	    -p "Theo de Raadt <deraadt@openbsd.org>" \
80	    -V "OpenBSD/${MACHINE} ${OSREV} Install CD" \
81	    ${.OBJDIR}/cd-dir
82
83install:
84	cp ${CDROM} ${FS} ${RELDIR}/
85
86clean cleandir:
87	rm -f ${CDROM} ${FS}
88	rm -rf cd-dir
89
90.include <bsd.obj.mk>
91