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>
This commit is contained in:
Paolo Bonzini 2022-04-19 10:10:10 +01:00 committed by Alex Bennée
parent 8e61ecca4a
commit f2d5935145
3 changed files with 14 additions and 23 deletions

View File

@ -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) \

View File

@ -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

View File

@ -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