blob: f4900f8cca3a14310313279e2d902728f2094c61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# $OpenBSD: Makefile.inc,v 1.1 2016/10/19 16:49:58 deraadt Exp $
TOP= ${.CURDIR}/..
.include "${TOP}/Makefile.inc"
IMAGE= mr.fs
CBIN?= instbin
CRUNCHCONF?= ${CBIN}.conf
LISTS?= ${.CURDIR}/../common/list
UTILS?= ${.CURDIR}/../../miniroot
MOUNT_POINT= /mnt
MTREE= ${UTILS}/mtree.conf
XNAME?= floppy
FS?= ${XNAME}${REV}.fs
VND?= vnd0
VND_DEV= /dev/${VND}a
VND_RDEV= /dev/r${VND}a
VND_CRDEV= /dev/r${VND}c
VND_IDEV= /dev/${VND}i
VND_IRDEV= /dev/r${VND}i
PID!= echo $$$$
REALIMAGE!= echo /var/tmp/image.${PID}
BOOT?= ${DESTDIR}/usr/mdec/boot
EFIBOOT?= ${DESTDIR}/usr/mdec/BOOTX64.EFI ${DESTDIR}/usr/mdec/BOOTIA32.EFI
FLOPPYSIZE?= 2880
FLOPPYTYPE?= floppy3
all: ${FS}
${FS}: bsd.gz
dd if=/dev/zero of=${REALIMAGE} bs=512 count=${FLOPPYSIZE}
vnconfig -v -c ${VND} ${REALIMAGE}
.ifdef LBA
fdisk -yi -l ${FLOPPYSIZE} -b 960 -f ${DESTDIR}/usr/mdec/mbr ${VND}
.endif
.ifdef TEMPLATE
disklabel -wAT ${TEMPLATE} ${VND}
newfs -t msdos ${VND_IRDEV}
mount ${VND_IDEV} ${MOUNT_POINT}
mkdir -p ${MOUNT_POINT}/efi/boot
cp ${EFIBOOT} ${MOUNT_POINT}/efi/boot
umount ${MOUNT_POINT}
.else
disklabel -w ${VND} ${FLOPPYTYPE}
.endif
newfs -m 0 -o space -i 524288 -c ${FLOPPYSIZE} ${VND_RDEV}
mount ${VND_DEV} ${MOUNT_POINT}
cp ${BOOT} ${.OBJDIR}/boot
strip ${.OBJDIR}/boot
strip -R .comment ${.OBJDIR}/boot
installboot -v -r ${MOUNT_POINT} ${VND_CRDEV} \
${DESTDIR}/usr/mdec/biosboot ${.OBJDIR}/boot
dd if=bsd.gz of=${MOUNT_POINT}/bsd bs=512
@echo ""
@df -i ${MOUNT_POINT}
@echo ""
umount ${MOUNT_POINT}
vnconfig -u ${VND}
cp ${REALIMAGE} ${FS}
rm ${REALIMAGE}
DISKTYPE?= rdroot
NBLKS?= 4480
# minfree, opt, b/i trks, sects, cpg
NEWFSARGS= -m 0 -o space -i 4096
bsd.gz: bsd.rd
cp bsd.rd bsd.strip
strip bsd.strip
strip -R .comment bsd.strip
gzip -c9n bsd.strip > bsd.gz
bsd.rd: ${IMAGE} bsd rdsetroot
cp bsd bsd.rd
${.OBJDIR}/rdsetroot bsd.rd ${IMAGE}
bsd:
cd ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK} && \
su ${BUILDUSER} -c '${MAKE} config && ${MAKE} clean && env COPTS=-Os ${MAKE}'
cp -p ${.CURDIR}/../../../sys/arch/amd64/compile/${RAMDISK}/obj/bsd bsd
${IMAGE}: ${CBIN} rd_setup do_files rd_teardown
rd_setup: ${CBIN}
dd if=/dev/zero of=${REALIMAGE} bs=512 count=${NBLKS}
vnconfig -v -c ${VND} ${REALIMAGE}
disklabel -w ${VND} ${DISKTYPE}
newfs ${NEWFSARGS} ${VND_RDEV}
fsck ${VND_RDEV}
mount ${VND_DEV} ${MOUNT_POINT}
rd_teardown:
@df -i ${MOUNT_POINT}
-umount ${MOUNT_POINT}
-vnconfig -u ${VND}
cp ${REALIMAGE} ${IMAGE}
rm ${REALIMAGE}
rdsetroot: ${TOP}/../common/elfrdsetroot.c
${HOSTCC} ${HOSTCFLAGS} -o rdsetroot \
${TOP}/../common/elfrdsetroot.c ${TOP}/../common/elf32.c \
${TOP}/../common/elf64.c
unconfig:
-umount -f ${MOUNT_POINT}
-vnconfig -u ${VND}
.PRECIOUS: ${IMAGE}
.ifdef RELEASEDIR
install:
.ifndef NOBSDRD
cp bsd.rd ${RELEASEDIR}/bsd.rd
.endif
.ifndef NOFS
cp ${FS} ${RELEASEDIR}/${FS}
.endif
.endif # RELEASEDIR
${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
crunchgen -E -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib \
-c ${CBIN}.c -e ${CBIN} -m ${CBIN}.mk ${CRUNCHCONF}
${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
${MAKE} -f ${CBIN}.mk SRCLIBDIR=${.CURDIR}/../../../lib all
strip -R .comment ${CBIN}
${CRUNCHCONF}: ${LISTS}
awk -f ${UTILS}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CRUNCHCONF}
do_files:
mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
REV=${REV} TARGDIR=${MOUNT_POINT} UTILS=${UTILS} \
RELEASEDIR=${RELEASEDIR} sh ${UTILS}/runlist.sh ${LISTS}
rm ${MOUNT_POINT}/${CBIN}
clean cleandir:
/bin/rm -f *.core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}*.cache \
*.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip floppy*.fs \
lib*.a lib*.olist ${CBIN}.map \
rdsetroot boot ${CRUNCHCONF} ${FS}
.include <bsd.obj.mk>
.include <bsd.subdir.mk>
|