diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-08-07 16:35:23 +0200 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2019-09-10 14:09:00 +0100 |
commit | 2038f8c8775cf1a4eb190ab12f0c496e1ff79c88 (patch) | |
tree | be79ba4fbfc977ea446e9087a65599e0d1c7fa7b /tests/tcg/Makefile.qemu | |
parent | fc76c56d3f47e7b09eb0fd447f1b4dcc5d3ee717 (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.qemu | 51 |
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) |