aboutsummaryrefslogtreecommitdiff
path: root/tests/tcg/Makefile.qemu
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-08-07 16:35:23 +0200
committerAlex Bennée <alex.bennee@linaro.org>2019-09-10 14:09:00 +0100
commit2038f8c8775cf1a4eb190ab12f0c496e1ff79c88 (patch)
treebe79ba4fbfc977ea446e9087a65599e0d1c7fa7b /tests/tcg/Makefile.qemu
parentfc76c56d3f47e7b09eb0fd447f1b4dcc5d3ee717 (diff)
tests/tcg: move configuration to a sub-shell script
Avoid the repeated inclusions of config-target.mak, which have risks of namespace pollution, and instead build minimal configuration files in a configuration script. The same configuration files can also be included in Makefile and Makefile.qemu [AJB 10/09/19] In the original PR this had inadvertently enabled tests for ppc64abi32. However as the rest of the multiarch tests work rather than disabling the otherwise correctly functioning build I've just skipped the failing linux-test test. For some reason I can't debug it with TCG so I'm leaving that to the PPC maintainers to look at. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20190807143523.15917-4-pbonzini@redhat.com> [AJB: s/docker/container/, rm last bits from configure, ppc6432abi hack] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tests/tcg/Makefile.qemu')
-rw-r--r--tests/tcg/Makefile.qemu51
1 files changed, 25 insertions, 26 deletions
diff --git a/tests/tcg/Makefile.qemu b/tests/tcg/Makefile.qemu
index 7eff11d434..9c23aeaa2a 100644
--- a/tests/tcg/Makefile.qemu
+++ b/tests/tcg/Makefile.qemu
@@ -8,17 +8,22 @@
# to do it for us.
#
-# The per ARCH makefile, if it exists, holds extra information about
+include $(SRC_PATH)/rules.mak
+
+# The configure script fills in extra information about
# useful docker images or alternative compiler flags.
-include $(TARGET_DIR)config-target.mak
-include $(SRC_PATH)/rules.mak
-include $(wildcard \
- $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.include \
- $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include)
+CROSS_CC_GUEST:=
+DOCKER_IMAGE:=
+-include $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak
GUEST_BUILD=
TCG_MAKE=../Makefile.target
+
+# We also need the Docker make rules to depend on
+SKIP_DOCKER_BUILD=1
+include $(SRC_PATH)/tests/docker/Makefile.include
+
# Support installed Cross Compilers
ifdef CROSS_CC_GUEST
@@ -26,11 +31,11 @@ ifdef CROSS_CC_GUEST
.PHONY: cross-build-guest-tests
cross-build-guest-tests:
$(call quiet-command, \
- (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC="$(CROSS_CC_GUEST)" \
+ (mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC="$(CROSS_CC_GUEST)" \
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
- EXTRA_CFLAGS=$(CROSS_CC_GUEST_CFLAGS)), \
- "BUILD","$(TARGET_NAME) guest-tests with $(CROSS_CC_GUEST)")
+ EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
+ "BUILD","$(TARGET) guest-tests with $(CROSS_CC_GUEST)")
GUEST_BUILD=cross-build-guest-tests
@@ -38,31 +43,25 @@ endif
# Support building with Docker
-ifeq ($(HAVE_USER_DOCKER)$(GUEST_BUILD),y)
ifneq ($(DOCKER_IMAGE),)
-# We also need the Docker make rules to depend on
-SKIP_DOCKER_BUILD=1
-include $(SRC_PATH)/tests/docker/Makefile.include
-
DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc \
- --cc $(DOCKER_CROSS_COMPILER) \
+ --cc $(DOCKER_CROSS_CC_GUEST) \
-i qemu:$(DOCKER_IMAGE) \
-s $(SRC_PATH) -- "
.PHONY: docker-build-guest-tests
docker-build-guest-tests: docker-image-$(DOCKER_IMAGE)
$(call quiet-command, \
- (mkdir -p tests/tcg/$(TARGET_DIR) && cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" CC=$(DOCKER_COMPILE_CMD) \
+ (mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC=$(DOCKER_COMPILE_CMD) \
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=y \
- EXTRA_CFLAGS=$(DOCKER_CROSS_COMPILER_CFLAGS)), \
- "BUILD","$(TARGET_NAME) guest-tests with docker qemu:$(DOCKER_IMAGE)")
+ EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
+ "BUILD","$(TARGET) guest-tests with docker qemu:$(DOCKER_IMAGE)")
GUEST_BUILD=docker-build-guest-tests
endif
-endif
# Final targets
all:
@@ -75,22 +74,22 @@ guest-tests: $(GUEST_BUILD)
run-guest-tests: guest-tests
$(call quiet-command, \
- (cd tests/tcg/$(TARGET_DIR) && \
- $(MAKE) -f $(TCG_MAKE) TARGET_DIR="$(TARGET_DIR)" \
+ (cd tests/tcg/$(TARGET) && \
+ $(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" \
SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run), \
"RUN", "tests for $(TARGET_NAME)")
else
guest-tests:
$(call quiet-command, /bin/true, "BUILD", \
- "$(TARGET_DIR) guest-tests SKIPPED")
+ "$(TARGET) guest-tests SKIPPED")
run-guest-tests:
$(call quiet-command, /bin/true, "RUN", \
- "tests for $(TARGET_DIR) SKIPPED")
+ "tests for $(TARGET) SKIPPED")
endif
# It doesn't matter if these don't exits
.PHONY: clean-guest-tests
clean-guest-tests:
- rm -rf tests/tcg/$(TARGET_DIR)
+ rm -rf tests/tcg/$(TARGET)