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:
parent
8e61ecca4a
commit
f2d5935145
|
@ -39,14 +39,17 @@ SPEED = quick
|
||||||
# Build up our target list from the filtered list of ninja targets
|
# Build up our target list from the filtered list of ninja targets
|
||||||
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(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
|
# Per guest TCG tests
|
||||||
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGETS))
|
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGETS))
|
||||||
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGETS))
|
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGETS))
|
||||||
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGETS))
|
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGETS))
|
||||||
|
|
||||||
# Probe for the Docker Builds needed for each build
|
$(foreach TARGET,$(TARGETS), \
|
||||||
$(foreach PROBE_TARGET,$(TARGET_DIRS), \
|
$(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak))
|
||||||
$(eval -include $(SRC_PATH)/tests/tcg/Makefile.prereqs))
|
|
||||||
|
|
||||||
$(BUILD_TCG_TARGET_RULES): build-tcg-tests-%: $(if $(CONFIG_PLUGIN),test-plugins)
|
$(BUILD_TCG_TARGET_RULES): build-tcg-tests-%: $(if $(CONFIG_PLUGIN),test-plugins)
|
||||||
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
|
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
|
||||||
|
|
|
@ -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
|
|
|
@ -80,6 +80,8 @@ fi
|
||||||
: ${cross_as_tricore="tricore-as"}
|
: ${cross_as_tricore="tricore-as"}
|
||||||
: ${cross_ld_tricore="tricore-ld"}
|
: ${cross_ld_tricore="tricore-ld"}
|
||||||
|
|
||||||
|
makefile=tests/tcg/Makefile.prereqs
|
||||||
|
: > $makefile
|
||||||
for target in $target_list; do
|
for target in $target_list; do
|
||||||
arch=${target%%-*}
|
arch=${target%%-*}
|
||||||
|
|
||||||
|
@ -226,14 +228,17 @@ for target in $target_list; do
|
||||||
echo "target=$target" >> $config_target_mak
|
echo "target=$target" >> $config_target_mak
|
||||||
case $target in
|
case $target in
|
||||||
*-softmmu)
|
*-softmmu)
|
||||||
echo "QEMU=$PWD/qemu-system-$arch" >> $config_target_mak
|
qemu="qemu-system-$arch"
|
||||||
;;
|
;;
|
||||||
*-linux-user|*-bsd-user)
|
*-linux-user|*-bsd-user)
|
||||||
echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
|
qemu="qemu-$arch"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
|
||||||
|
|
||||||
eval "target_compiler_cflags=\${cross_cc_cflags_$arch}"
|
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
|
echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak
|
||||||
|
|
||||||
got_cross_cc=no
|
got_cross_cc=no
|
||||||
|
@ -329,6 +334,7 @@ for target in $target_list; do
|
||||||
test -n "$container_image"; then
|
test -n "$container_image"; then
|
||||||
for host in $container_hosts; do
|
for host in $container_hosts; do
|
||||||
if test "$host" = "$cpu"; then
|
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_IMAGE=$container_image" >> $config_target_mak
|
||||||
echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> \
|
echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> \
|
||||||
$config_target_mak
|
$config_target_mak
|
||||||
|
|
Loading…
Reference in New Issue