QEMU-Devel Archive on lore.kernel.org
 help / color / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>
Subject: [PATCH v4 05/11] rules.mak: Add base-arch() rule
Date: Fri, 22 May 2020 18:37:53 +0200
Message-ID: <20200522163759.11480-6-philmd@redhat.com> (raw)
In-Reply-To: <20200522163759.11480-1-philmd@redhat.com>

Add a rule to return the base architecture for a QEMU target.

The current list of TARGET_BASE_ARCH is:

  $ git grep  TARGET_BASE_ARCH configure
  configure:7785:TARGET_BASE_ARCH=""
  configure:7795:    TARGET_BASE_ARCH=i386
  configure:7813:    TARGET_BASE_ARCH=arm
  configure:7846:    TARGET_BASE_ARCH=mips
  configure:7854:    TARGET_BASE_ARCH=mips
  configure:7864:    TARGET_BASE_ARCH=openrisc
  configure:7871:    TARGET_BASE_ARCH=ppc
  configure:7879:    TARGET_BASE_ARCH=ppc
  configure:7887:    TARGET_BASE_ARCH=ppc
  configure:7894:    TARGET_BASE_ARCH=riscv
  configure:7900:    TARGET_BASE_ARCH=riscv
  configure:7920:    TARGET_BASE_ARCH=sparc
  configure:7925:    TARGET_BASE_ARCH=sparc

The rule can be tested calling 'print-base-arch-$TARGET':

  $ make \
      print-base-arch-openrisc \
      print-base-arch-aarch64 \
      print-base-arch-x86_64 \
      print-base-arch-mips64el \
      print-base-arch-ppc64
  openrisc=openrisc
  aarch64=arm
  x86_64=i386
  mips64el=mips
  ppc64=ppc

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
v4:
- use startwith()
- fix openrisc (rth)
---
 rules.mak | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/rules.mak b/rules.mak
index e39bee93d5..2ce527e885 100644
--- a/rules.mak
+++ b/rules.mak
@@ -445,3 +445,30 @@ atomic = $(eval $1: $(call sentinel,$1) ; @:) \
 
 print-%:
 	@echo '$*=$($*)'
+
+# base-arch
+# Usage: $(call base-arch, target)
+#
+# @target: the target architecture.
+#
+# This macro will return the base architecture for a target.
+#
+# As example, $(call base-arch, aarch64) returns 'arm'.
+base-arch = $(strip \
+		$(if $(call startwith,mips,$1),mips,\
+		  $(if $(call startwith,ppc,$1),ppc,\
+		    $(if $(call startwith,sparc,$1),sparc,\
+		      $(if $(call startwith,risc,$1),risc,\
+		        $(if $(call startwith,aarch64,$1),arm,\
+		          $(if $(call startwith,x86_64,$1),i386,\
+		            $1\
+		           )\
+		         )\
+		       )\
+		     )\
+		   )\
+		 )\
+		)
+
+print-base-arch-%:
+	@echo '$*=$(call base-arch, $*)'
-- 
2.21.3



  parent reply index

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-22 16:37 [PATCH v4 00/11] accel: Allow targets to use Kconfig Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 01/11] MAINTAINERS: Fix KVM path expansion glob Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 02/11] MAINTAINERS: Add an 'overall' entry for accelerators Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 03/11] MAINTAINERS: Add an entry for the HAX accelerator Philippe Mathieu-Daudé
2020-05-22 16:43   ` Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 04/11] rules.mak: Add startwith() rule Philippe Mathieu-Daudé
2020-05-22 16:37 ` Philippe Mathieu-Daudé [this message]
2020-06-01  2:13   ` [PATCH v4 05/11] rules.mak: Add base-arch() rule Richard Henderson
2020-06-01  7:26     ` Philippe Mathieu-Daudé
2020-06-05  7:27       ` Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 06/11] Makefile: Remove dangerous EOL trailing backslash Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 07/11] Makefile: Write MINIKCONF variables as one entry per line Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 08/11] accel/Kconfig: Extract accel selectors into their own config Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 09/11] accel/Kconfig: Add the TCG selector Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 10/11] Makefile: Allow target-specific optional Kconfig Philippe Mathieu-Daudé
2020-05-22 16:37 ` [PATCH v4 11/11] accel/tcg: Add stub for probe_access() Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200522163759.11480-6-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

QEMU-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git
	git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \
		qemu-devel@nongnu.org
	public-inbox-index qemu-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git