Skip to content

Commit 123676d

Browse files
committed
board/common: Move QEMU script generation to separate make target
1 parent bad6c10 commit 123676d

File tree

7 files changed

+67
-44
lines changed

7 files changed

+67
-44
lines changed

board/common/Config.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ source "$BR2_EXTERNAL_INFIX_PATH/board/common/image/image-itb-rauc/Config.in"
88

99
endmenu
1010

11+
config QEMU_SCRIPTS
12+
bool "QEMU scripts"
13+
default y
14+
help
15+
Install QEMU scripts and related files in the images
16+
directory, which can be used to launch virtual Infix
17+
instances.
18+
1119
menuconfig TRUSTED_KEYS
1220
bool "Trusted keys for image"
1321
help

board/common/common.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/image/image.mk
2+
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/qemu/qemu.mk
23

34
ifeq ($(TRUSTED_KEYS),y)
45
include $(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/uboot.mk

board/common/post-image.sh

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,6 @@ if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then
4343

4444
cp "$BR2_EXTERNAL_INFIX_PATH/board/common/rootfs/usr/bin/onieprom" "$BINARIES_DIR/"
4545

46-
# Menuconfig support for modifying Qemu args in release tarballs
47-
cp "$BR2_EXTERNAL_INFIX_PATH/board/common/qemu/qemu.sh" "$BINARIES_DIR/"
48-
sed -e "s/@ARCH@/QEMU_$BR2_ARCH/" \
49-
-e "s/@DISK_IMG@/$diskimg/" \
50-
< "$BR2_EXTERNAL_INFIX_PATH/board/common/qemu/Config.in.in" \
51-
> "$BINARIES_DIR/Config.in"
52-
rm -f "$BINARIES_DIR/qemu.cfg"
53-
CONFIG_="CONFIG_" BR2_CONFIG="$BINARIES_DIR/qemu.cfg" \
54-
"$O/build/buildroot-config/conf" --olddefconfig "$BINARIES_DIR/Config.in"
55-
rm -f "$BINARIES_DIR/qemu.cfg.old" "$BINARIES_DIR/.config.old"
56-
5746
# Quick intro for beginners, with links to more information
5847
cp "$BR2_EXTERNAL_INFIX_PATH/board/common/README.txt" "$BINARIES_DIR/"
5948
fi

board/common/qemu/Config.in.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,19 +87,19 @@ config QEMU_MACHINE_RAM
8787
config QEMU_KERNEL
8888
string
8989
depends on QEMU_LOADER_KERNEL
90-
default "Image" if QEMU_aarch64
91-
default "bzImage" if QEMU_x86_64
90+
default "../Image" if QEMU_aarch64
91+
default "../bzImage" if QEMU_x86_64
9292

9393
config QEMU_BIOS
9494
string
9595
depends on !QEMU_LOADER_KERNEL
96-
default "u-boot.bin" if QEMU_LOADER_UBOOT
97-
default "OVMF.fd" if QEMU_LOADER_OVMF
96+
default "../u-boot.bin" if QEMU_LOADER_UBOOT
97+
default "../OVMF.fd" if QEMU_LOADER_OVMF
9898

9999
config QEMU_ROOTFS
100100
string
101101
default "@DISK_IMG@" if !QEMU_ROOTFS_INITRD
102-
default "rootfs.squashfs" if QEMU_ROOTFS_INITRD
102+
default "../rootfs.squashfs" if QEMU_ROOTFS_INITRD
103103

104104
config QEMU_DTB_EXTEND
105105
bool

board/common/qemu/qemu.mk

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
################################################################################
2+
#
3+
# qemu-scripts
4+
#
5+
################################################################################
6+
7+
QEMU_SCRIPTS_DIR := $(pkgdir)
8+
qemu-kconfig = \
9+
CONFIG_="CONFIG_" \
10+
BR2_CONFIG="$(BINARIES_DIR)/qemu/.config" \
11+
$(BUILD_DIR)/buildroot-config/$(1) $(2) "$(BINARIES_DIR)/qemu/Config.in"
12+
13+
ifeq ($(QEMU_SCRIPTS),y)
14+
15+
.PHONY: run
16+
run:
17+
@$(BINARIES_DIR)/qemu/run.sh
18+
19+
.PHONY: run-menuconfig
20+
run-menuconfig: $(BUILD_DIR)/buildroot-config/mconf
21+
@$(call qemu-kconfig,mconf)
22+
23+
qemu-scripts: \
24+
$(BINARIES_DIR)/qemu/run.sh \
25+
$(BINARIES_DIR)/qemu/Config.in \
26+
$(BINARIES_DIR)/qemu/.config
27+
28+
$(BINARIES_DIR)/qemu/run.sh: $(QEMU_SCRIPTS_DIR)/run.sh
29+
@$(call IXMSG,"Installing QEMU scripts")
30+
@mkdir -p $(dir $@)
31+
@cp $< $@
32+
33+
$(BINARIES_DIR)/qemu/Config.in: $(QEMU_SCRIPTS_DIR)/Config.in.in
34+
@mkdir -p $(dir $@)
35+
@sed \
36+
-e "s:@ARCH@:QEMU_$(BR2_ARCH):" \
37+
-e "s:@DISK_IMG@:../$(INFIX_ARTIFACT).qcow2:" \
38+
< $< >$@
39+
40+
$(BINARIES_DIR)/qemu/.config: $(BINARIES_DIR)/qemu/Config.in
41+
@$(call qemu-kconfig,conf,--olddefconfig)
42+
@rm -f $@.old
43+
44+
TARGETS_ROOTFS += qemu-scripts
45+
endif

board/common/qemu/qemu.sh renamed to board/common/qemu/run.sh

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#
2020
# shellcheck disable=SC3037
2121

22-
# Local variables
23-
imgdir=$(readlink -f "$(dirname "$0")")
22+
qdir=$(dirname "$(readlink -f "$0")")
23+
imgdir=$(readlink -f "${qdir}/..")
2424
prognm=$(basename "$0")
2525

2626
usage()
@@ -56,12 +56,8 @@ die()
5656

5757
load_qemucfg()
5858
{
59-
tmp=$(mktemp -p /tmp)
60-
61-
grep ^CONFIG_QEMU_ "$1" >"$tmp"
6259
# shellcheck disable=SC1090
63-
. "$tmp"
64-
rm "$tmp"
60+
. "./.config"
6561

6662
[ "$CONFIG_QEMU_MACHINE" ] || die "Missing QEMU_MACHINE"
6763
[ "$CONFIG_QEMU_ROOTFS" ] || die "Missing QEMU_ROOTFS"
@@ -222,7 +218,7 @@ rocker_port_args()
222218
net_args()
223219
{
224220
# Infix will pick up this file via fwcfg and install it to /etc
225-
mactab=${imgdir}/mactab
221+
mactab=${qdir}/mactab
226222
:> "$mactab"
227223
echo -n "-fw_cfg name=opt/mactab,file=$mactab "
228224

@@ -261,7 +257,7 @@ vpd_args()
261257
{
262258
[ "$CONFIG_QEMU_VPD" = "y" ] || return
263259

264-
vpd_file="${imgdir}/vpd"
260+
vpd_file="${qdir}/vpd"
265261

266262
if ! [ -f "$vpd_file" ]; then
267263
onieprom="${imgdir}/onieprom"
@@ -460,13 +456,12 @@ EOF
460456

461457
menuconfig()
462458
{
463-
grep -q QEMU_MACHINE Config.in || die "$prognm: must be run from the output/images directory"
459+
grep -q QEMU_MACHINE Config.in || die "$prognm: must be run from the $$O/images/qemu directory"
464460
command -v kconfig-mconf >/dev/null || die "$prognm: cannot find kconfig-mconf for menuconfig"
465461
exec kconfig-mconf Config.in
466462
}
467463

468-
scriptdir=$(dirname "$(readlink -f "$0")")
469-
cd "$scriptdir" || (echo "Failed cd to $scriptdir"; exit 1)
464+
cd "$qdir" || (echo "Failed cd to $qdir"; exit 1)
470465

471466
while [ "$1" != "" ]; do
472467
case $1 in
@@ -485,13 +480,7 @@ while [ "$1" != "" ]; do
485480
shift
486481
done
487482

488-
if [ -f .config ]; then
489-
# Customized settings from 'qemu.sh -c'
490-
load_qemucfg .config
491-
else
492-
# Shipped defaults from release tarball
493-
load_qemucfg qemu.cfg
494-
fi
483+
load_qemucfg
495484

496485
if [ -z "$QEMU_EXTRA_APPEND" ]; then
497486
QEMU_EXTRA_APPEND="$*"

external.mk

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,6 @@ local.mk:
88
@$(call IXMSG,"Installing local override for certain packages")
99
@(cd $O && ln -s $(BR2_EXTERNAL_INFIX_PATH)/local.mk .)
1010

11-
.PHONY: run
12-
run:
13-
@$(BINARIES_DIR)/qemu.sh
14-
15-
.PHONY: run-menuconfig
16-
run-menuconfig: $(BUILD_DIR)/buildroot-config/mconf
17-
CONFIG_="CONFIG_" BR2_CONFIG="$(BINARIES_DIR)/.config" \
18-
$(BUILD_DIR)/buildroot-config/mconf $(BINARIES_DIR)/Config.in
19-
2011
#
2112
# Buildroot package extensions
2213
#

0 commit comments

Comments
 (0)