From patchwork Thu Apr 19 13:58:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 133820 Delivered-To: patch@linaro.org Received: by 10.80.173.174 with SMTP id a43csp882232edd; Thu, 19 Apr 2018 07:40:48 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrNEKsQxhW17L6m+YUKCtpy41u/hOi7LBLnCJ6symeovKlgq2cT+uta6mMDep3qhKZWT73O X-Received: by 10.55.159.131 with SMTP id i125mr5903594qke.188.1524148848193; Thu, 19 Apr 2018 07:40:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524148848; cv=none; d=google.com; s=arc-20160816; b=z4vsjGvnYhwos6KeaDao8/KkwL4yZ3diZol1456jdB4WE2TzsR3an4e8YA910NFehQ pcK+H2+Uwkoa8LnF3Ik6umqyYVo6xbkq8I/VcQDolVaYx7amnCiiLdylRGkXKuIx8ECK le37kcz5Rj3fJMnJTc/txjOQY6nlHlV4J43CAXRqTJ/EHD8DIiVBo/3paMeya5nwEOWo a1RZ5y6gHrr7iLephbcunAWsZMQ0mw/iWmd38FOc/sr+pDhNdPPlTa4863sgjMF+Ghc5 pKJEvoROpS2bV/VDsLFbXbxv0yqUbSu1WQg2Qn3+1tUxExd99gllQjEyx8yzYv8NkK0d ++Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:arc-authentication-results; bh=8sTsQiWizzrwf7qM4i18PQWMiCuOPDmGd5KJ55R6e78=; b=ecEJxhmPAfXmQiLK7KLOMK8Wpr4iDYMXpeFkrqnn//NhtuOY+2RpqQyMs/lqZiXR4X kXQqudRWcc4OTHdDxH39ZQUFFm7hO5uEMH/GF9QYpLmTFVJm/ytL377RZuoHZEPI64cd RXQ+BdYnQaiLUayhuE2hlsM1J4LwTQ5n1+NgqBZOYuGMhp7lQxmSH8UUbpjKE69x000F X18k9/t67BweBrozIQhgrsGcpwMtlnRJQTxxwua2fdaXCgOn7RgvjP9aB/aVkf9PisQ2 noFrVARyncgGuIcoo9nnI8aNoqSpTyY4BrO20+UCFLKlSBs/lVLCTMaRAFlaEqi+CogN SMJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Z2gaifJh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id i27-v6si5337128qte.88.2018.04.19.07.40.48 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 19 Apr 2018 07:40:48 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Z2gaifJh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51937 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9Ajv-00020y-L1 for patch@linaro.org; Thu, 19 Apr 2018 10:40:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52689) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9ANN-0004dz-Na for qemu-devel@nongnu.org; Thu, 19 Apr 2018 10:17:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9ANM-00064F-Md for qemu-devel@nongnu.org; Thu, 19 Apr 2018 10:17:29 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:40968) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f9ANM-00063n-FU for qemu-devel@nongnu.org; Thu, 19 Apr 2018 10:17:28 -0400 Received: by mail-wr0-x241.google.com with SMTP id v24-v6so14503846wra.8 for ; Thu, 19 Apr 2018 07:17:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8sTsQiWizzrwf7qM4i18PQWMiCuOPDmGd5KJ55R6e78=; b=Z2gaifJhQWzrajKpNy4THqjTsXBziHeD19UHhvt/FqKhvsL9sCfNUy6PbllfMFdKzC cZR/1yywFT3L4k0mBun0kD7vwhNcGtiO9laEo6AWqOuu+HoZbWA7045Xlr58P35WWpvC znAUUEMLxDRyghaBvvLPT/ao/BO7Ud5NBuDnE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8sTsQiWizzrwf7qM4i18PQWMiCuOPDmGd5KJ55R6e78=; b=TbckG/yYWMEmtbbqvQN5PihwVcoSCvf6bdrPUHQba0Ja78fISoIAc4kWT1K8gH+p3a 7XOhMg9xt3HGmeSSArYRFzEWvzfwBMhDqqmEdoOcntUAXA1quajpAjSnqc3kXJ4MxdpC 4TYDuG0MS5WlKNx6ZQFI4Yfg+uFn2bRYROzENoB1xbU9wDqQ59hg2E1YT7Lc6qyUHcbe fG6YEzSsFBck6h6H9PoBdAk8SpeONT/W0LukBXw5FilqN2L4+jakugnEhvNLbVNlL5e9 ZnzzRrql9AKoRgyh3O8f0SwiZcvQ8lWpCEzunct1HgK/1s4Rh4wMNTQnq/mxLhsd2KyN Zkmw== X-Gm-Message-State: ALQs6tArMmvbRk2bZLN7k/u4n+0v/xHotu9egV+1IKIDAeEULUO17LHJ s8nKlBb3+iSZJvymCmbYUsv2vg== X-Received: by 10.28.135.195 with SMTP id j186mr4830648wmd.143.1524147447431; Thu, 19 Apr 2018 07:17:27 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id v5sm3131988wmh.19.2018.04.19.07.17.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Apr 2018 07:17:25 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 40DC03E0930; Thu, 19 Apr 2018 14:59:04 +0100 (BST) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: peter.maydell@linaro.org, cota@braap.org, famz@redhat.com, berrange@redhat.com, f4bug@amsat.org, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de Date: Thu, 19 Apr 2018 14:58:54 +0100 Message-Id: <20180419135901.30035-37-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180419135901.30035-1-alex.bennee@linaro.org> References: <20180419135901.30035-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PATCH v2 36/43] Makefile.target: add (clean-)guest-tests targets X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Alex_Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Now all the build infrastructure is in place we can build tests for each guest that we support. That support mainly depends on having cross compilers installed or docker setup. To keep all the logic for that together we put the rules in tests/tcg/Makefile.include and include it from the main Makefile.target. Signed-off-by: Alex Bennée --- Makefile.target | 5 +++ tests/tcg/Makefile.include | 79 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 tests/tcg/Makefile.include -- 2.17.0 diff --git a/Makefile.target b/Makefile.target index d0ec77a307..a30fd40257 100644 --- a/Makefile.target +++ b/Makefile.target @@ -36,6 +36,11 @@ endif PROGS=$(QEMU_PROG) $(QEMU_PROGW) STPFILES= +# Makefile Tests +ifdef CONFIG_USER_ONLY +include $(SRC_PATH)/tests/tcg/Makefile.include +endif + config-target.h: config-target.h-timestamp config-target.h-timestamp: config-target.mak diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.include new file mode 100644 index 0000000000..cb8bb36026 --- /dev/null +++ b/tests/tcg/Makefile.include @@ -0,0 +1,79 @@ +# -*- Mode: makefile -*- +# +# TCG tests (per-target rules) +# +# This Makefile fragement is included from the per-target +# Makefile.target so will be invoked for each linux-user program we +# build. We have two options for compiling, either using a configured +# guest compiler or calling one of our docker images to do it for us. +# + +# The per ARCH makefile, if it exists holds extra information about +# useful docker images or alternative compiler flags. Include it if it +# exists + +ARCH_MAKEFILE=$(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.include +CHECK_INCLUDE=$(wildcard $(ARCH_MAKEFILE)) + +ifeq ($(ARCH_MAKEFILE),$(CHECK_INCLUDE)) +include $(ARCH_MAKEFILE) +endif + +GUEST_BUILD= + +# Support installed Cross Compilers + +ifdef CROSS_CC_GUEST + +.PHONY: cross-build-guest-tests +cross-build-guest-tests: + $(call quiet-command, \ + (mkdir -p tests && cd tests && \ + make -f $(SRC_PATH)/tests/tcg/Makefile ARCH=$(TARGET_NAME) CC=$(CROSS_CC_GUEST)), \ + "CROSS-BUILD","$(TARGET_NAME) guest-tests with $(CROSS_CC_GUEST)") + + +GUEST_BUILD=cross-build-guest-tests + +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 +include $(SRC_PATH)/tests/docker/Makefile.include + +DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc --user $(shell id -u) \ + --cc $(DOCKER_CROSS_COMPILER) \ + -i qemu:$(DOCKER_IMAGE) \ + -s $(SRC_PATH) -- " +DOCKER_PREREQ=docker-image-$(DOCKER_IMAGE) + +.PHONY: docker-build-guest-tests +docker-build-guest-tests: $(DOCKER_PREREQ) + $(call quiet-command, \ + (mkdir -p tests && cd tests && \ + make -f $(SRC_PATH)/tests/tcg/Makefile ARCH=$(TARGET_NAME) CC=$(DOCKER_COMPILE_CMD)), \ + "CROSS-BUILD","$(TARGET_NAME) guest-tests with docker qemu:$(DOCKER_IMAGE)") + +GUEST_BUILD=docker-build-guest-tests + +endif +endif + +# Final targets +.PHONY: guest-tests + +ifneq ($(GUEST_BUILD),) +guest-tests: $(GUEST_BUILD) +else +guest-tests: + $(call quiet-command, /bin/true, "CROSS-BUILD", "$(TARGET_NAME) guest-tests SKIPPED") +endif + +# It doesn't mater if these don't exits +.PHONY: clean-guest-tests +clean-guest-tests: + rm -rf tests || echo "no $(TARGET_NAME) tests to remove"