From patchwork Tue Sep 15 09:46:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Norbert Lange X-Patchwork-Id: 1364190 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Zb+BQGoI; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BrJKX57Xyz9sVB for ; Tue, 15 Sep 2020 19:46:56 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 9922720110; Tue, 15 Sep 2020 09:46:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3CrRPYpt21GU; Tue, 15 Sep 2020 09:46:45 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 8EE5220354; Tue, 15 Sep 2020 09:46:45 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 2D0321BF28B for ; Tue, 15 Sep 2020 09:46:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 29D9586341 for ; Tue, 15 Sep 2020 09:46:44 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a-QFKsBIr0de for ; Tue, 15 Sep 2020 09:46:43 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by fraxinus.osuosl.org (Postfix) with ESMTPS id D414E862A5 for ; Tue, 15 Sep 2020 09:46:42 +0000 (UTC) Received: by mail-wr1-f53.google.com with SMTP id a17so2581742wrn.6 for ; Tue, 15 Sep 2020 02:46:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=O0bhPPxT+ton0qCNNt0pnKwS56bP+NAWBBwPjOiyV9w=; b=Zb+BQGoIw2p4T2x1ZYv55qK6Giw9mGTgYA4AYkv7EnfUZOC/SBDDccqeXe9UNo4rYY YZcMiZ1eDffx8GlkYNSmlobF2nx7VLKi22rSejthaH8YZVbWQHJmjYi535xNkoo/y5s6 7MRVGjvwaN3r7v69eAgXvyTdKfcf32zxRlmkFJAEM1Kxujog9ISlxXVxyisHqsMcHN79 +Xpj3FG6GVHYrwHD4MjEytKFKltN16pJpvehiDYBkATLRcBzUtOrjcUih0tsx82maDVc 2Mn+Kgfd6esf8HstOIs8yJKc9FcObaE+JOGytggSibW+mMPjkE/BTJ6+uitoiQiDwB3R 6Fxw== 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=O0bhPPxT+ton0qCNNt0pnKwS56bP+NAWBBwPjOiyV9w=; b=H3cagxLViRT2swy7apct/IAkvj55/w2b8D329bx5hJNGhIIJfFF1XFhAA7j30A+gLc HqDeT0y91ZheTm5VmWCPjyN37vzCJyTZW/SaN4ma5+KuJ+tEIA4xhtUMPIDmI6YrPb+w watziyAZ4+ro/2QVT2V6WmybgPTs9Y6TmQhPs6u08qcj9gT2Z+7zbFaY1or1wqiBFx+6 Xhrrn5FJ+hFQNC4B4GWNPj2xOvlTC0B/VbjheQYVlELQ+vdTzfQvuGmSteoz38Jjn5kI pvlyNodJvXSKqfwjSonemiiXvxlrtg6/Fpx8UfwPVKoiCj8ouR9Lf/nqEg11A2K7aUT7 OQmQ== X-Gm-Message-State: AOAM5303bCkGhJkijLMMKdHuvZnL0mWitEZKugf3OTcjh6dVeu/b4g1x O7IwD9AJa6osICOaQK/0LgBRA/HFd9o= X-Google-Smtp-Source: ABdhPJxpxgkG7G7rPdEoLf1REaigkEHsOHHMUmY6epm1M7WGcqNy1udI+iNibCZXtKuxHB3UHN1iQw== X-Received: by 2002:adf:f504:: with SMTP id q4mr20159348wro.353.1600163200772; Tue, 15 Sep 2020 02:46:40 -0700 (PDT) Received: from lano-work.andritz.com ([80.120.136.76]) by smtp.gmail.com with ESMTPSA id y5sm23870413wmg.21.2020.09.15.02.46.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 02:46:40 -0700 (PDT) From: Norbert Lange To: buildroot@buildroot.org Date: Tue, 15 Sep 2020 11:46:24 +0200 Message-Id: <20200915094625.598048-3-nolange79@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200915094625.598048-1-nolange79@gmail.com> References: <20200915094625.598048-1-nolange79@gmail.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 3/3] package/pkg-meson: move crosscompilation support out of package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eric Le Bihan , Norbert Lange Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" install the cross-compilation.conf file when setting up the toolchain, not as part of host-meson. This allows external usage of the buildroot toolchain through meson, whether the host-meson package is built or not (similar to other build systems). Removed a few variables, as they were only used to communicate between meson package and pkg-meson and are needed anymore. Signed-off-by: Norbert Lange --- package/meson/meson.mk | 32 ------- package/pkg-meson.mk | 90 ++++++++++++------- .../misc}/cross-compilation.conf.in | 0 3 files changed, 60 insertions(+), 62 deletions(-) rename {package/meson => support/misc}/cross-compilation.conf.in (100%) diff --git a/package/meson/meson.mk b/package/meson/meson.mk index 8633a2f717..acbd21b6f1 100644 --- a/package/meson/meson.mk +++ b/package/meson/meson.mk @@ -13,38 +13,6 @@ MESON_SETUP_TYPE = setuptools HOST_MESON_DEPENDENCIES = host-ninja HOST_MESON_NEEDS_HOST_PYTHON = python3 -HOST_MESON_TARGET_ENDIAN = $(call qstrip,$(call LOWERCASE,$(BR2_ENDIAN))) -HOST_MESON_TARGET_CPU = $(GCC_TARGET_CPU) - -# https://mesonbuild.com/Reference-tables.html#cpu-families -ifeq ($(BR2_arcle)$(BR2_arceb),y) -HOST_MESON_TARGET_CPU_FAMILY = arc -else ifeq ($(BR2_arm)$(BR2_armeb),y) -HOST_MESON_TARGET_CPU_FAMILY = arm -else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) -HOST_MESON_TARGET_CPU_FAMILY = aarch64 -else ifeq ($(BR2_i386),y) -HOST_MESON_TARGET_CPU_FAMILY = x86 -else ifeq ($(BR2_mips)$(BR2_mipsel),y) -HOST_MESON_TARGET_CPU_FAMILY = mips -else ifeq ($(BR2_mips64)$(BR2_mips64el),y) -HOST_MESON_TARGET_CPU_FAMILY = mips64 -else ifeq ($(BR2_powerpc),y) -HOST_MESON_TARGET_CPU_FAMILY = ppc -else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) -HOST_MESON_TARGET_CPU_FAMILY = ppc64 -else ifeq ($(BR2_riscv),y) -HOST_MESON_TARGET_CPU_FAMILY = riscv64 -else ifeq ($(BR2_sparc),y) -HOST_MESON_TARGET_CPU_FAMILY = sparc -else ifeq ($(BR2_sparc64),y) -HOST_MESON_TARGET_CPU_FAMILY = sparc64 -else ifeq ($(BR2_x86_64),y) -HOST_MESON_TARGET_CPU_FAMILY = x86_64 -else -HOST_MESON_TARGET_CPU_FAMILY = $(ARCH) -endif - # Avoid interpreter shebang longer than 128 chars define HOST_MESON_SET_INTERPRETER $(SED) '1s:.*:#!/usr/bin/env python3:' $(HOST_DIR)/bin/meson diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk index 7d103add98..a9ded9fe5a 100644 --- a/package/pkg-meson.mk +++ b/package/pkg-meson.mk @@ -57,29 +57,17 @@ $(2)_NINJA_ENV ?= ifndef $(2)_CONFIGURE_CMDS ifeq ($(4),target) -$(2)_CFLAGS ?= $$(TARGET_CFLAGS) -$(2)_LDFLAGS ?= $$(TARGET_LDFLAGS) -$(2)_CXXFLAGS ?= $$(TARGET_CXXFLAGS) - # Configure package for target # # define $(2)_CONFIGURE_CMDS rm -rf $$($$(PKG)_SRCDIR)/build mkdir -p $$($$(PKG)_SRCDIR)/build - sed -e 's%@TARGET_CROSS@%$$(TARGET_CROSS)%g' \ - -e 's%@TARGET_ARCH@%$$(HOST_MESON_TARGET_CPU_FAMILY)%g' \ - -e 's%@TARGET_CPU@%$$(HOST_MESON_TARGET_CPU)%g' \ - -e 's%@TARGET_ENDIAN@%$$(HOST_MESON_TARGET_ENDIAN)%g' \ - -e "s%@TARGET_CFLAGS@%$$(call make-sq-comma-list,$$($(2)_CFLAGS))%g" \ - -e "s%@TARGET_LDFLAGS@%$$(call make-sq-comma-list,$$($(2)_LDFLAGS))%g" \ - -e "s%@TARGET_CXXFLAGS@%$$(call make-sq-comma-list,$$($(2)_CXXFLAGS))%g" \ - -e 's%@HOST_DIR@%$$(HOST_DIR)%g' \ - -e 's%@STAGING_DIR@%$$(STAGING_DIR)%g' \ - -e 's%@STATIC@%$$(if $$(BR2_STATIC_LIBS),true,false)%g' \ - -e "/^\[binaries\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES),\n$$(x)):" \ + sed -e "/^\[binaries\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_BINARIES),\n$$(x)):" \ -e "/^\[properties\]$$$$/s:$$$$:$$(foreach x,$$($(2)_MESON_EXTRA_PROPERTIES),\n$$(x)):" \ - package/meson/cross-compilation.conf.in \ + $$(call PKG_MESON_CROSSCONFIG_SED,$$(if $$($(2)_CFLAGS),$(2)_CFLAGS,TARGET_CFLAGS), \ + $$(if $$($(2)_CXXFLAGS),$(2)_CXXFLAGS,TARGET_CXXFLAGS), \ + $$(if $$($(2)_LDFLAGS),$(2)_LDFLAGS,TARGET_LDFLAGS)) \ > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf PATH=$$(BR_PATH) $$($$(PKG)_CONF_ENV) $$(MESON) \ --prefix=/usr \ @@ -178,30 +166,72 @@ meson-package = $(call inner-meson-package,$(pkgname),$(call UPPERCASE,$(pkgname host-meson-package = $(call inner-meson-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host) ################################################################################ -# Generation of the Meson cross-compilation.conf file +# Generation of the Meson compile flags and cross-compilation file ################################################################################ +# https://mesonbuild.com/Reference-tables.html#cpu-families +ifeq ($(BR2_arcle)$(BR2_arceb),y) +PKG_MESON_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +PKG_MESON_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +PKG_MESON_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +PKG_MESON_TARGET_CPU_FAMILY = x86 +else ifeq ($(BR2_mips)$(BR2_mipsel),y) +PKG_MESON_TARGET_CPU_FAMILY = mips +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +PKG_MESON_TARGET_CPU_FAMILY = mips64 +else ifeq ($(BR2_powerpc),y) +PKG_MESON_TARGET_CPU_FAMILY = ppc +else ifeq ($(BR2_powerpc64)$(BR2_powerpc64le),y) +PKG_MESON_TARGET_CPU_FAMILY = ppc64 +else ifeq ($(BR2_riscv),y) +PKG_MESON_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_sparc),y) +PKG_MESON_TARGET_CPU_FAMILY = sparc +else ifeq ($(BR2_sparc64),y) +PKG_MESON_TARGET_CPU_FAMILY = sparc64 +else ifeq ($(BR2_x86_64),y) +PKG_MESON_TARGET_CPU_FAMILY = x86_64 +else +PKG_MESON_TARGET_CPU_FAMILY = $(ARCH) +endif + +# Generates sed patterns for patching the cross-compilation.conf template, +# since Flags might contain commas the arguments are passed indirectly by +# variable name (stripped to deal with whitespaces). +# Aruments are variable containing cflags, cxxflags, ldflags. +define PKG_MESON_CROSSCONFIG_SED + -e "s%@TARGET_CROSS@%$(TARGET_CROSS)%g" \ + -e "s%@TARGET_CC@%$(TARGET_CC)%g" \ + -e "s%@TARGET_CXX@%$(TARGET_CXX)%g" \ + -e "s%@TARGET_AR@%$(TARGET_AR)%g" \ + -e "s%@TARGET_STRIP@%$(TARGET_STRIP)%g" \ + -e "s%@TARGET_ARCH@%$(PKG_MESON_TARGET_CPU_FAMILY)%g" \ + -e "s%@TARGET_CPU@%$(GCC_TARGET_CPU)%g" \ + -e "s%@TARGET_ENDIAN@%$(call LOWERCASE,$(BR2_ENDIAN))%g" \ + -e "s%@TARGET_CFLAGS@%$(call make-sq-comma-list,$($(strip $(1))))%g" \ + -e "s%@TARGET_LDFLAGS@%$(call make-sq-comma-list,$($(strip $(3))))%g" \ + -e "s%@TARGET_CXXFLAGS@%$(call make-sq-comma-list,$($(strip $(2))))%g" \ + -e "s%@HOST_DIR@%$(HOST_DIR)%g" \ + -e "s%@PKG_CONFIG_HOST_BINARY@%$(PKG_CONFIG_HOST_BINARY)%g" \ + -e "s%@STAGING_DIR@%$(STAGING_DIR)%g" \ + -e 's%@STATIC@%$(if $(BR2_STATIC_LIBS),true,false)%g' \ + $(TOPDIR)/support/misc/cross-compilation.conf.in +endef + # Generate a Meson cross-compilation.conf suitable for use with the # SDK; also install the file as a template for users to add their # own flags if they need to. define PKG_MESON_INSTALL_CROSS_CONF mkdir -p $(HOST_DIR)/etc/meson - sed -e 's%@TARGET_CROSS@%$(TARGET_CROSS)%g' \ - -e 's%@TARGET_ARCH@%$(HOST_MESON_TARGET_CPU_FAMILY)%g' \ - -e 's%@TARGET_CPU@%$(HOST_MESON_TARGET_CPU)%g' \ - -e 's%@TARGET_ENDIAN@%$(HOST_MESON_TARGET_ENDIAN)%g' \ - -e "s%@TARGET_CFLAGS@%$(call make-sq-comma-list,$(TARGET_CFLAGS))@PKG_TARGET_CFLAGS@%g" \ + sed -e "s%@TARGET_CFLAGS@%$(call make-sq-comma-list,$(TARGET_CFLAGS))@PKG_TARGET_CFLAGS@%g" \ -e "s%@TARGET_LDFLAGS@%$(call make-sq-comma-list,$(TARGET_LDFLAGS))@PKG_TARGET_CFLAGS@%g" \ -e "s%@TARGET_CXXFLAGS@%$(call make-sq-comma-list,$(TARGET_CXXFLAGS))@PKG_TARGET_CFLAGS@%g" \ - -e 's%@HOST_DIR@%$(HOST_DIR)%g' \ - -e 's%@STAGING_DIR@%$(STAGING_DIR)%g' \ - -e 's%@STATIC@%$$(if $(BR2_STATIC_LIBS),true,false)%g' \ - $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \ + $(call PKG_MESON_CROSSCONFIG_SED) \ > $(HOST_DIR)/etc/meson/cross-compilation.conf.in - sed -e 's%@PKG_TARGET_CFLAGS@%%g' \ - -e 's%@PKG_TARGET_LDFLAGS@%%g' \ - -e 's%@PKG_TARGET_CXXFLAGS@%%g' \ - $(HOST_DIR)/etc/meson/cross-compilation.conf.in \ + sed $(call PKG_MESON_CROSSCONFIG_SED,TARGET_CFLAGS,TARGET_CXXFLAGS,TARGET_LDFLAGS) \ > $(HOST_DIR)/etc/meson/cross-compilation.conf endef diff --git a/package/meson/cross-compilation.conf.in b/support/misc/cross-compilation.conf.in similarity index 100% rename from package/meson/cross-compilation.conf.in rename to support/misc/cross-compilation.conf.in