aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-04-19 10:10:10 +0100
committerAlex Bennée <alex.bennee@linaro.org>2022-04-20 16:04:20 +0100
commitf2d59351452a3f92b33eebbbf1ad6fae8bb7fdca (patch)
tree255c1a14d0b86243365289364877b8a331084784 /tests
parent8e61ecca4a4934d1cefc83243114f1457930437b (diff)
downloadqemu-f2d59351452a3f92b33eebbbf1ad6fae8bb7fdca.zip
qemu-f2d59351452a3f92b33eebbbf1ad6fae8bb7fdca.tar.gz
qemu-f2d59351452a3f92b33eebbbf1ad6fae8bb7fdca.tar.bz2
tests/tcg: prepare Makefile.prereqs at configure time
List the dependencies of the build-tcg-tests-* and run-tcg-tests-* targets in a Makefile fragment, without going through Makefile.prereqs's "parsing" of config-*.mak. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220401141326.1244422-13-pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220419091020.3008144-16-alex.bennee@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.include9
-rw-r--r--tests/tcg/Makefile.prereqs18
-rwxr-xr-xtests/tcg/configure.sh10
3 files changed, 14 insertions, 23 deletions
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 05c534e..b5d0d6b 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -39,14 +39,17 @@ SPEED = quick
# Build up our target list from the filtered list of ninja targets
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets)))
+-include tests/tcg/Makefile.prereqs
+config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh
+tests/tcg/Makefile.prereqs: config-host.mak
+
# Per guest TCG tests
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGETS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGETS))
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGETS))
-# Probe for the Docker Builds needed for each build
-$(foreach PROBE_TARGET,$(TARGET_DIRS), \
- $(eval -include $(SRC_PATH)/tests/tcg/Makefile.prereqs))
+$(foreach TARGET,$(TARGETS), \
+ $(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak))
$(BUILD_TCG_TARGET_RULES): build-tcg-tests-%: $(if $(CONFIG_PLUGIN),test-plugins)
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
diff --git a/tests/tcg/Makefile.prereqs b/tests/tcg/Makefile.prereqs
deleted file mode 100644
index 9a29604..0000000
--- a/tests/tcg/Makefile.prereqs
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- Mode: makefile -*-
-#
-# TCG Compiler Probe
-#
-# This Makefile fragment is included multiple times in the main make
-# script to probe for available compilers. This is used to build up a
-# selection of required docker targets before we invoke a sub-make for
-# each target.
-
-DOCKER_IMAGE:=
-
--include $(BUILD_DIR)/tests/tcg/config-$(PROBE_TARGET).mak
-
-ifneq ($(DOCKER_IMAGE),)
-build-tcg-tests-$(PROBE_TARGET): docker-image-$(DOCKER_IMAGE)
-endif
-$(BUILD_DIR)/tests/tcg/config_$(PROBE_TARGET).mak: config-host.mak
-config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index 0d864c2..904c351 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -80,6 +80,8 @@ fi
: ${cross_as_tricore="tricore-as"}
: ${cross_ld_tricore="tricore-ld"}
+makefile=tests/tcg/Makefile.prereqs
+: > $makefile
for target in $target_list; do
arch=${target%%-*}
@@ -226,14 +228,17 @@ for target in $target_list; do
echo "target=$target" >> $config_target_mak
case $target in
*-softmmu)
- echo "QEMU=$PWD/qemu-system-$arch" >> $config_target_mak
+ qemu="qemu-system-$arch"
;;
*-linux-user|*-bsd-user)
- echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
+ qemu="qemu-$arch"
;;
esac
+ echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
+
eval "target_compiler_cflags=\${cross_cc_cflags_$arch}"
+ echo "QEMU=$PWD/$qemu" >> $config_target_mak
echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak
got_cross_cc=no
@@ -329,6 +334,7 @@ for target in $target_list; do
test -n "$container_image"; then
for host in $container_hosts; do
if test "$host" = "$cpu"; then
+ echo "build-tcg-tests-$target: docker-image-$container_image" >> $makefile
echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> \
$config_target_mak