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