All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags
@ 2019-04-08 20:43 Peter Seiderer
  2019-04-08 20:43 ` [Buildroot] [PATCH v5 2/2] libdrm: change to meson build system Peter Seiderer
  2019-04-13 16:49 ` [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Thomas Petazzoni
  0 siblings, 2 replies; 5+ messages in thread
From: Peter Seiderer @ 2019-04-08 20:43 UTC (permalink / raw)
  To: buildroot

Add LIBFOO_MESON_CFLAGS, LIBFOO_MESON_LDFLAGS and LIBFOO_MESON_CXXFLAGS
variables to allow per package additional compiler/linker flags.

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - documentation change for the new flags variables is missing

Changes v4:
  - new patch (base on the original '[RFC v3 2/4] meson: change from
    global to per package  cross-compilation.conf', see [1])

Changes v4 -> v5:
  - no changes
[1] http://lists.busybox.net/pipermail/buildroot/2018-July/226313.html
---
 package/meson/cross-compilation.conf.in | 8 ++++----
 package/meson/meson.mk                  | 3 +++
 package/pkg-meson.mk                    | 7 +++++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/package/meson/cross-compilation.conf.in b/package/meson/cross-compilation.conf.in
index fc8e27f7eb..4056c2b2f4 100644
--- a/package/meson/cross-compilation.conf.in
+++ b/package/meson/cross-compilation.conf.in
@@ -12,10 +12,10 @@ pkgconfig = '@HOST_DIR@/usr/bin/pkg-config'

 [properties]
 needs_exe_wrapper = true
-c_args = [@TARGET_CFLAGS@]
-c_link_args = [@TARGET_LDFLAGS@]
-cpp_args = [@TARGET_CXXFLAGS@]
-cpp_link_args = [@TARGET_LDFLAGS@]
+c_args = [@TARGET_CFLAGS@@PKG_TARGET_CFLAGS@]
+c_link_args = [@TARGET_LDFLAGS@@PKG_TARGET_LDFLAGS@]
+cpp_args = [@TARGET_CXXFLAGS@@PKG_TARGET_CXXFLAGS@]
+cpp_link_args = [@TARGET_LDFLAGS@@PKG_TARGET_LDFLAGS@]

 [host_machine]
 system = 'linux'
diff --git a/package/meson/meson.mk b/package/meson/meson.mk
index 49e27f5527..70128f6bad 100644
--- a/package/meson/meson.mk
+++ b/package/meson/meson.mk
@@ -60,6 +60,9 @@ define HOST_MESON_INSTALL_CROSS_CONF
 	    -e "s%@TARGET_CFLAGS@%$(HOST_MESON_SED_CFLAGS)%g" \
 	    -e "s%@TARGET_LDFLAGS@%$(HOST_MESON_SED_LDFLAGS)%g" \
 	    -e "s%@TARGET_CXXFLAGS@%$(HOST_MESON_SED_CXXFLAGS)%g" \
+	    -e "s%@PKG_TARGET_CFLAGS@%%g" \
+	    -e "s%@PKG_TARGET_LDFLAGS@%%g" \
+	    -e "s%@PKG_TARGET_CXXFLAGS@%%g" \
 	    -e "s%@HOST_DIR@%$(HOST_DIR)%g" \
 	    $(HOST_MESON_PKGDIR)/cross-compilation.conf.in \
 	    > $(HOST_DIR)/etc/meson/cross-compilation.conf
diff --git a/package/pkg-meson.mk b/package/pkg-meson.mk
index 886fcf7205..9974b1e513 100644
--- a/package/pkg-meson.mk
+++ b/package/pkg-meson.mk
@@ -57,6 +57,10 @@ $(2)_NINJA_ENV		?=
 ifndef $(2)_CONFIGURE_CMDS
 ifeq ($(4),target)

+$(2)_MESON_SED_CFLAGS = $(if $($(2)_MESON_CFLAGS),`printf '"%s"$(comma) ' $($(2)_MESON_CFLAGS)`)
+$(2)_MESON_SED_LDFLAGS = $(if $($(2)_MESON_LDFLAGS),`printf '"%s"$(comma) ' $($(2)_MESON_LDFLAGS)`)
+$(2)_MESON_SED_CXXFLAGS = $(if $($(2)_MESON_CXXFLAGS),`printf '"%s"$(comma) ' $$($$(2)_MESON_CXXFLAGS)`)
+
 # Configure package for target
 #
 #
@@ -70,6 +74,9 @@ define $(2)_CONFIGURE_CMDS
 	    -e "s%@TARGET_CFLAGS@%$$(HOST_MESON_SED_CFLAGS)%g" \
 	    -e "s%@TARGET_LDFLAGS@%$$(HOST_MESON_SED_LDFLAGS)%g" \
 	    -e "s%@TARGET_CXXFLAGS@%$$(HOST_MESON_SED_CXXFLAGS)%g" \
+	    -e "s%@PKG_TARGET_CFLAGS@%$$($$(PKG)_MESON_SED_CFLAGS)%g" \
+	    -e "s%@PKG_TARGET_LDFLAGS@%$$($$(PKG)_MESON_SED_LDFLAGS)%g" \
+	    -e "s%@PKG_TARGET_CXXFLAGS@%$$($$(PKG)_MESON_SED_CXXFLAGS)%g" \
 	    -e "s%@HOST_DIR@%$$(HOST_DIR)%g" \
 	    package/meson/cross-compilation.conf.in \
 	    > $$($$(PKG)_SRCDIR)/build/cross-compilation.conf
--
2.21.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 2/2] libdrm: change to meson build system
  2019-04-08 20:43 [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Peter Seiderer
@ 2019-04-08 20:43 ` Peter Seiderer
  2019-04-13 16:49 ` [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Thomas Petazzoni
  1 sibling, 0 replies; 5+ messages in thread
From: Peter Seiderer @ 2019-04-08 20:43 UTC (permalink / raw)
  To: buildroot

- remove legacy patch
  0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch

- add patch to fix meson atomic ops detection
  0003-meson.build-fix-intel-atomics-detection.patch

- add patch to enable static build
  0004-meson.build-enable-static-build.patch

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - convertion from "LIBDRM_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'"
    is missing (maybe meson gets it right (?) or use LIBDRM_MESON_CFLAGS
    to force it)

Changes v1 -> v2:
  - add 0003-meson.build-fix-intel-atomics-detection.patch to fix
    sparc compile

Changes v2 -> v3:
  - fix 0003-meson.build-fix-intel-atomics-detection.patch (linking
    needs main)
  - add 0004-meson.build-enable-static-build.patch to enable static
    compile

Changes v3 -> v4:
  - rebased on current master (suggested by Thomas Petazzoni)

Changes v4 -> v5:
  - fix sparc LIBDRM_MESON_CFLAGS, remove extra quotation marks
    and comma
---
 ...le.am-use-pkg-config-to-discover-lib.patch | 162 -----------------
 ...on.build-fix-intel-atomics-detection.patch |  35 ++++
 ...0004-meson.build-enable-static-build.patch | 169 ++++++++++++++++++
 package/libdrm/libdrm.mk                      |  71 ++++----
 4 files changed, 236 insertions(+), 201 deletions(-)
 delete mode 100644 package/libdrm/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
 create mode 100644 package/libdrm/0003-meson.build-fix-intel-atomics-detection.patch
 create mode 100644 package/libdrm/0004-meson.build-enable-static-build.patch

diff --git a/package/libdrm/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch b/package/libdrm/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
deleted file mode 100644
index 0fbe77ef7c..0000000000
--- a/package/libdrm/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 57d544ff2f96a26cac07d5be00ff7b67678ae7b8 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Mon, 18 Dec 2017 13:08:39 +0100
-Subject: [PATCH] configure/Makefile.am: use pkg-config to discover
- libatomic_ops
-
-The configure script currently tests the availability of libatomic_ops
-by checking the presence of atomic_ops.h. While this is good enough as
-an availability test, it is not sufficient as on some platforms,
-libatomic_ops provides an actual shared library against which we
-should be linked to access libatomic_ops functionality.
-
-Therefore, we instead use PKG_CHECK_MODULES() to test the availability
-of libatomic_ops. Besides testing its availability, this also fills in
-the ATOMIC_OPS_LIBS variable with the list of libraries we need to
-link with to use libatomic_ops.
-
-All Mesa drivers that include xf86atomic.h have been updated to link
-against ATOMIC_OPS_LIBS.
-
-Of course, if we're not using libatomic_ops, ATOMIC_OPS_LIBS is empty,
-and we don't link against it.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
-[Bernd: PKG_CHECK_MODULES should not fail when libatomic_ops is missing]
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- amdgpu/Makefile.am    | 2 +-
- configure.ac          | 2 +-
- etnaviv/Makefile.am   | 3 ++-
- freedreno/Makefile.am | 3 ++-
- intel/Makefile.am     | 3 ++-
- nouveau/Makefile.am   | 2 +-
- omap/Makefile.am      | 2 +-
- radeon/Makefile.am    | 2 +-
- tegra/Makefile.am     | 2 +-
- 9 files changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/amdgpu/Makefile.am b/amdgpu/Makefile.am
-index a1b0d05c..b2bcceff 100644
---- a/amdgpu/Makefile.am
-+++ b/amdgpu/Makefile.am
-@@ -36,7 +36,7 @@ AM_CPPFLAGS = -DAMDGPU_ASIC_ID_TABLE=\"${libdrmdatadir}/amdgpu.ids\"
- libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
- libdrm_amdgpu_ladir = $(libdir)
- libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
--libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
-
- libdrm_amdgpu_la_SOURCES = $(LIBDRM_AMDGPU_FILES)
- amdgpu_asic_id.lo: $(top_srcdir)/data/amdgpu.ids
-diff --git a/configure.ac b/configure.ac
-index 35378b33..501d0871 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -247,7 +247,7 @@ AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [
- 					  ]],[[]])], [drm_cv_atomic_primitives="Intel"],[])
-
- 	if test "x$drm_cv_atomic_primitives" = "xnone"; then
--		AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
-+		PKG_CHECK_MODULES(ATOMIC_OPS, [atomic_ops], drm_cv_atomic_primitives="libatomic-ops", true)
- 	fi
-
- 	# atomic functions defined in <atomic.h> & libc on Solaris
-diff --git a/etnaviv/Makefile.am b/etnaviv/Makefile.am
-index be96ba86..669cf14f 100644
---- a/etnaviv/Makefile.am
-+++ b/etnaviv/Makefile.am
-@@ -12,7 +12,8 @@ libdrm_etnaviv_la_LDFLAGS = -version-number 1:0:0 -no-undefined
- libdrm_etnaviv_la_LIBADD = \
- 	../libdrm.la \
- 	@PTHREADSTUBS_LIBS@ \
--	@CLOCK_LIB@
-+	@CLOCK_LIB@ \
-+	@ATOMIC_OPS_LIBS@
-
- libdrm_etnaviv_la_SOURCES = $(LIBDRM_ETNAVIV_FILES)
-
-diff --git a/freedreno/Makefile.am b/freedreno/Makefile.am
-index cbb0d031..238407e3 100644
---- a/freedreno/Makefile.am
-+++ b/freedreno/Makefile.am
-@@ -14,7 +14,8 @@ libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined
- libdrm_freedreno_la_LIBADD = \
- 	../libdrm.la \
- 	@PTHREADSTUBS_LIBS@ \
--	@CLOCK_LIB@
-+	@CLOCK_LIB@ \
-+	@ATOMIC_OPS_LIBS@
-
- libdrm_freedreno_la_SOURCES = $(LIBDRM_FREEDRENO_FILES)
- if HAVE_FREEDRENO_KGSL
-diff --git a/intel/Makefile.am b/intel/Makefile.am
-index c52e8c08..f3635a64 100644
---- a/intel/Makefile.am
-+++ b/intel/Makefile.am
-@@ -38,7 +38,8 @@ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
- libdrm_intel_la_LIBADD = ../libdrm.la \
- 	@PTHREADSTUBS_LIBS@ \
- 	@PCIACCESS_LIBS@ \
--	@CLOCK_LIB@
-+	@CLOCK_LIB@ \
-+	@ATOMIC_OPS_LIBS@
-
- libdrm_intel_la_SOURCES = $(LIBDRM_INTEL_FILES)
-
-diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
-index 344a8445..a4e6a78b 100644
---- a/nouveau/Makefile.am
-+++ b/nouveau/Makefile.am
-@@ -10,7 +10,7 @@ AM_CFLAGS = \
- libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
- libdrm_nouveau_ladir = $(libdir)
- libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined
--libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
-
- libdrm_nouveau_la_SOURCES = $(LIBDRM_NOUVEAU_FILES)
-
-diff --git a/omap/Makefile.am b/omap/Makefile.am
-index 599bb9de..524afee3 100644
---- a/omap/Makefile.am
-+++ b/omap/Makefile.am
-@@ -7,7 +7,7 @@ AM_CFLAGS = \
- libdrm_omap_la_LTLIBRARIES = libdrm_omap.la
- libdrm_omap_ladir = $(libdir)
- libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined
--libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
-
- libdrm_omap_la_SOURCES = omap_drm.c
-
-diff --git a/radeon/Makefile.am b/radeon/Makefile.am
-index e2415314..c27d3c75 100644
---- a/radeon/Makefile.am
-+++ b/radeon/Makefile.am
-@@ -33,7 +33,7 @@ AM_CFLAGS = \
- libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
- libdrm_radeon_ladir = $(libdir)
- libdrm_radeon_la_LDFLAGS = -version-number 1:0:1 -no-undefined
--libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
-
- libdrm_radeon_la_SOURCES = $(LIBDRM_RADEON_FILES)
-
-diff --git a/tegra/Makefile.am b/tegra/Makefile.am
-index fb40be55..12abe8c4 100644
---- a/tegra/Makefile.am
-+++ b/tegra/Makefile.am
-@@ -9,7 +9,7 @@ AM_CFLAGS = \
- libdrm_tegra_ladir = $(libdir)
- libdrm_tegra_la_LTLIBRARIES = libdrm_tegra.la
- libdrm_tegra_la_LDFLAGS = -version-number 0:0:0 -no-undefined
--libdrm_tegra_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
-+libdrm_tegra_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
-
- libdrm_tegra_la_SOURCES = \
- 	private.h \
---
-2.14.3
-
diff --git a/package/libdrm/0003-meson.build-fix-intel-atomics-detection.patch b/package/libdrm/0003-meson.build-fix-intel-atomics-detection.patch
new file mode 100644
index 0000000000..fe02328f3a
--- /dev/null
+++ b/package/libdrm/0003-meson.build-fix-intel-atomics-detection.patch
@@ -0,0 +1,35 @@
+From 00f6ac3c24f36fa07fa93f4a89ee873edf125098 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Mon, 16 Jul 2018 23:01:40 +0200
+Subject: [PATCH] meson.build: fix intel atomics detection
+
+Use the stronger compiler.link() test (instead of the weaker
+compiler.compile()) to fix the intel atomics detection.
+
+Fixes false positive in case of sparc compile (buildroot toolchain).
+
+Upstream suggested: https://lists.freedesktop.org/archives/dri-devel/2018-July/183885.html
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ meson.build | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9b443a5..3c8afb6 100644
+--- a/meson.build
++++ b/meson.build
+@@ -49,9 +49,10 @@ intel_atomics = false
+ lib_atomics = false
+
+ dep_atomic_ops = dependency('atomic_ops', required : false)
+-if cc.compiles('''
++if cc.links('''
+     int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
+     int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
++    int main() { }
+     ''',
+     name : 'Intel Atomics')
+   intel_atomics = true
+--
+2.18.0
+
diff --git a/package/libdrm/0004-meson.build-enable-static-build.patch b/package/libdrm/0004-meson.build-enable-static-build.patch
new file mode 100644
index 0000000000..1054788127
--- /dev/null
+++ b/package/libdrm/0004-meson.build-enable-static-build.patch
@@ -0,0 +1,169 @@
+From d58a32776e08e193c24f7bb192daf72b66fbe550 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Wed, 18 Jul 2018 21:35:18 +0200
+Subject: [PATCH] meson.build: enable static build
+
+Use meson library instead of shared_library to enable static build.
+
+Upstream suggested: https://lists.freedesktop.org/archives/dri-devel/2018-July/183886.html
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ amdgpu/meson.build    | 2 +-
+ etnaviv/meson.build   | 2 +-
+ exynos/meson.build    | 2 +-
+ freedreno/meson.build | 2 +-
+ intel/meson.build     | 2 +-
+ libkms/meson.build    | 2 +-
+ meson.build           | 2 +-
+ nouveau/meson.build   | 2 +-
+ omap/meson.build      | 2 +-
+ radeon/meson.build    | 2 +-
+ tegra/meson.build     | 2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/amdgpu/meson.build b/amdgpu/meson.build
+index f39d7bf..1b4b0be 100644
+--- a/amdgpu/meson.build
++++ b/amdgpu/meson.build
+@@ -21,7 +21,7 @@
+
+ datadir_amdgpu = join_paths(get_option('prefix'), get_option('datadir'), 'libdrm')
+
+-libdrm_amdgpu = shared_library(
++libdrm_amdgpu = library(
+   'drm_amdgpu',
+   [
+     files(
+diff --git a/etnaviv/meson.build b/etnaviv/meson.build
+index ca2aa54..a0d994e 100644
+--- a/etnaviv/meson.build
++++ b/etnaviv/meson.build
+@@ -19,7 +19,7 @@
+ # SOFTWARE.
+
+
+-libdrm_etnaviv = shared_library(
++libdrm_etnaviv = library(
+   'drm_etnaviv',
+   [
+     files(
+diff --git a/exynos/meson.build b/exynos/meson.build
+index 30d3640..fd14f3a 100644
+--- a/exynos/meson.build
++++ b/exynos/meson.build
+@@ -18,7 +18,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-libdrm_exynos = shared_library(
++libdrm_exynos = library(
+   'drm_exynos',
+   [files('exynos_drm.c', 'exynos_fimg2d.c'), config_file],
+   c_args : warn_c_args,
+diff --git a/freedreno/meson.build b/freedreno/meson.build
+index 015b7fb..6c8a6a7 100644
+--- a/freedreno/meson.build
++++ b/freedreno/meson.build
+@@ -39,7 +39,7 @@ if with_freedreno_kgsl
+   )
+ endif
+
+-libdrm_freedreno = shared_library(
++libdrm_freedreno = library(
+   'drm_freedreno',
+   [files_freedreno, config_file],
+   c_args : warn_c_args,
+diff --git a/intel/meson.build b/intel/meson.build
+index 53c7fce..14cabd3 100644
+--- a/intel/meson.build
++++ b/intel/meson.build
+@@ -18,7 +18,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-libdrm_intel = shared_library(
++libdrm_intel = library(
+   'drm_intel',
+   [
+     files(
+diff --git a/libkms/meson.build b/libkms/meson.build
+index 86d1a4e..9d21e4c 100644
+--- a/libkms/meson.build
++++ b/libkms/meson.build
+@@ -41,7 +41,7 @@ if with_exynos
+   libkms_include += include_directories('../exynos')
+ endif
+
+-libkms = shared_library(
++libkms = library(
+   'kms',
+   [files_libkms, config_file],
+   c_args : warn_c_args,
+diff --git a/meson.build b/meson.build
+index 3c8afb6..7aa5f8c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -279,7 +279,7 @@ add_project_arguments('-include', 'config.h', language : 'c')
+ inc_root = include_directories('.')
+ inc_drm = include_directories('include/drm')
+
+-libdrm = shared_library(
++libdrm = library(
+   'drm',
+   [files(
+      'xf86drm.c', 'xf86drmHash.c', 'xf86drmRandom.c', 'xf86drmSL.c',
+diff --git a/nouveau/meson.build b/nouveau/meson.build
+index 51c9a71..acba048 100644
+--- a/nouveau/meson.build
++++ b/nouveau/meson.build
+@@ -19,7 +19,7 @@
+ # SOFTWARE.
+
+
+-libdrm_nouveau = shared_library(
++libdrm_nouveau = library(
+   'drm_nouveau',
+   [files( 'nouveau.c', 'pushbuf.c', 'bufctx.c', 'abi16.c'), config_file],
+   c_args : warn_c_args,
+diff --git a/omap/meson.build b/omap/meson.build
+index e57b8f5..6cffb99 100644
+--- a/omap/meson.build
++++ b/omap/meson.build
+@@ -18,7 +18,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-libdrm_omap = shared_library(
++libdrm_omap = library(
+   'drm_omap',
+   [files('omap_drm.c'), config_file],
+   include_directories : [inc_root, inc_drm],
+diff --git a/radeon/meson.build b/radeon/meson.build
+index b08c744..2f45ff7 100644
+--- a/radeon/meson.build
++++ b/radeon/meson.build
+@@ -19,7 +19,7 @@
+ # SOFTWARE.
+
+
+-libdrm_radeon = shared_library(
++libdrm_radeon = library(
+   'drm_radeon',
+   [
+     files(
+diff --git a/tegra/meson.build b/tegra/meson.build
+index 1f5c74b..8d0cfa9 100644
+--- a/tegra/meson.build
++++ b/tegra/meson.build
+@@ -18,7 +18,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-libdrm_tegra = shared_library(
++libdrm_tegra = library(
+   'drm_tegra',
+   [files('tegra.c'), config_file],
+   include_directories : [inc_root, inc_drm],
+--
+2.18.0
+
diff --git a/package/libdrm/libdrm.mk b/package/libdrm/libdrm.mk
index cc7350c10e..77e7ad01bd 100644
--- a/package/libdrm/libdrm.mk
+++ b/package/libdrm/libdrm.mk
@@ -10,114 +10,107 @@ LIBDRM_SITE = https://dri.freedesktop.org/libdrm
 LIBDRM_LICENSE = MIT
 LIBDRM_INSTALL_STAGING = YES

-# patch 0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
-# touching configure.ac/Makefile.am (and host-xutil_util-macros dependency)
-LIBDRM_AUTORECONF = YES
-
 LIBDRM_DEPENDENCIES = \
 	libpthread-stubs \
-	host-pkgconf \
-	host-xutil_util-macros
+	host-pkgconf

 LIBDRM_CONF_OPTS = \
-	--disable-cairo-tests \
-	--disable-manpages
-
-LIBDRM_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
+	-Dcairo-tests=false \
+	-Dmanpages=false

 ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
 LIBDRM_DEPENDENCIES += libatomic_ops
 ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
-LIBDRM_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DAO_NO_SPARC_V9"
+LIBDRM_MESON_CFLAGS += -DAO_NO_SPARC_V9
 endif
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_INTEL),y)
-LIBDRM_CONF_OPTS += --enable-intel
+LIBDRM_CONF_OPTS += -Dintel=true
 LIBDRM_DEPENDENCIES += libpciaccess
 else
-LIBDRM_CONF_OPTS += --disable-intel
+LIBDRM_CONF_OPTS += -Dintel=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_RADEON),y)
-LIBDRM_CONF_OPTS += --enable-radeon
+LIBDRM_CONF_OPTS += -Dradeon=true
 else
-LIBDRM_CONF_OPTS += --disable-radeon
+LIBDRM_CONF_OPTS += -Dradeon=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_AMDGPU),y)
-LIBDRM_CONF_OPTS += --enable-amdgpu
+LIBDRM_CONF_OPTS += -Damdgpu=true
 else
-LIBDRM_CONF_OPTS += --disable-amdgpu
+LIBDRM_CONF_OPTS += -Damdgpu=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_NOUVEAU),y)
-LIBDRM_CONF_OPTS += --enable-nouveau
+LIBDRM_CONF_OPTS += -Dnouveau=true
 else
-LIBDRM_CONF_OPTS += --disable-nouveau
+LIBDRM_CONF_OPTS += -Dnouveau=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_VMWGFX),y)
-LIBDRM_CONF_OPTS += --enable-vmwgfx
+LIBDRM_CONF_OPTS += -Dvmwgfx=true
 else
-LIBDRM_CONF_OPTS += --disable-vmwgfx
+LIBDRM_CONF_OPTS += -Dvmwgfx=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_OMAP),y)
-LIBDRM_CONF_OPTS += --enable-omap-experimental-api
+LIBDRM_CONF_OPTS += -Domap=true
 else
-LIBDRM_CONF_OPTS += --disable-omap-experimental-api
+LIBDRM_CONF_OPTS += -Domap=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_ETNAVIV),y)
-LIBDRM_CONF_OPTS += --enable-etnaviv-experimental-api
+LIBDRM_CONF_OPTS += -Detnaviv=true
 else
-LIBDRM_CONF_OPTS += --disable-etnaviv-experimental-api
+LIBDRM_CONF_OPTS += -Detnaviv=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_EXYNOS),y)
-LIBDRM_CONF_OPTS += --enable-exynos-experimental-api
+LIBDRM_CONF_OPTS += -Dexynos=true
 else
-LIBDRM_CONF_OPTS += --disable-exynos-experimental-api
+LIBDRM_CONF_OPTS += -Dexynos=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_FREEDRENO),y)
-LIBDRM_CONF_OPTS += --enable-freedreno
+LIBDRM_CONF_OPTS += -Dfreedreno=true
 else
-LIBDRM_CONF_OPTS += --disable-freedreno
+LIBDRM_CONF_OPTS += -Dfreedreno=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_TEGRA),y)
-LIBDRM_CONF_OPTS += --enable-tegra-experimental-api
+LIBDRM_CONF_OPTS += -Dtegra=true
 else
-LIBDRM_CONF_OPTS += --disable-tegra-experimental-api
+LIBDRM_CONF_OPTS += -Dtegra=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_VC4),y)
-LIBDRM_CONF_OPTS += --enable-vc4
+LIBDRM_CONF_OPTS += -Dvc4=true
 else
-LIBDRM_CONF_OPTS += --disable-vc4
+LIBDRM_CONF_OPTS += -Dvc4=false
 endif

 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-LIBDRM_CONF_OPTS += --enable-udev
+LIBDRM_CONF_OPTS += -Dudev=true
 LIBDRM_DEPENDENCIES += udev
 else
-LIBDRM_CONF_OPTS += --disable-udev
+LIBDRM_CONF_OPTS += -Dudev=false
 endif

 ifeq ($(BR2_PACKAGE_VALGRIND),y)
-LIBDRM_CONF_OPTS += --enable-valgrind
+LIBDRM_CONF_OPTS += -Dvalgrind=true
 LIBDRM_DEPENDENCIES += valgrind
 else
-LIBDRM_CONF_OPTS += --disable-valgrind
+LIBDRM_CONF_OPTS += -Dvalgrind=false
 endif

 ifeq ($(BR2_PACKAGE_LIBDRM_INSTALL_TESTS),y)
-LIBDRM_CONF_OPTS += --enable-install-test-programs
+LIBDRM_CONF_OPTS += -Dinstall-test-programs=true
 ifeq ($(BR2_PACKAGE_CUNIT),y)
 LIBDRM_DEPENDENCIES += cunit
 endif
 endif

-$(eval $(autotools-package))
+$(eval $(meson-package))
--
2.21.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags
  2019-04-08 20:43 [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Peter Seiderer
  2019-04-08 20:43 ` [Buildroot] [PATCH v5 2/2] libdrm: change to meson build system Peter Seiderer
@ 2019-04-13 16:49 ` Thomas Petazzoni
  2019-04-23 18:45   ` Peter Seiderer
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2019-04-13 16:49 UTC (permalink / raw)
  To: buildroot

Hello Peter,

On Mon,  8 Apr 2019 22:43:20 +0200
Peter Seiderer <ps.report@gmx.net> wrote:

> Add LIBFOO_MESON_CFLAGS, LIBFOO_MESON_LDFLAGS and LIBFOO_MESON_CXXFLAGS
> variables to allow per package additional compiler/linker flags.
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

I did a bit of research. Meson does accept -Dc_args and a bunch of
other options on the command line, but they are ignored when a
cross-file is used. http://mesonbuild.com/Builtin-options.html says it
clearly: "c_args, cpp_args, c_link_args, and cpp_link_args only affect
native builds, when cross compiling they will not be applied to
binaries or libraries targeting the host system, only those being run
on the build system."

There is some on-going discussion upstream about this. See
https://github.com/mesonbuild/meson/issues/4767.

A cross_pkg_config_path option was merged:

  https://github.com/mesonbuild/meson/commit/91b2475e30d7659dad24eb35b47e4d098c716792

Aparently, they are talking about possibly adding cross_c_args.

What do we do ? Wait until upstream solves the problem ? Use an
intermediate solution like yours, and later one move to another one if
upstream provides one ?

Could you at least raise the fact that the Buildroot project would also
be interested in being able to pass addition cflags/cxxflags/ldflags on
the command line, as well as passing the path of tools like
libgcrypt-config ? (See my reply to J?rg Krause's patch on this topic,
on which you are Cc'ed).

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags
  2019-04-13 16:49 ` [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Thomas Petazzoni
@ 2019-04-23 18:45   ` Peter Seiderer
  2019-05-01 21:03     ` Peter Seiderer
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Seiderer @ 2019-04-23 18:45 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

On Sat, 13 Apr 2019 18:49:17 +0200, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:

> Hello Peter,
> 
> On Mon,  8 Apr 2019 22:43:20 +0200
> Peter Seiderer <ps.report@gmx.net> wrote:
> 
> > Add LIBFOO_MESON_CFLAGS, LIBFOO_MESON_LDFLAGS and LIBFOO_MESON_CXXFLAGS
> > variables to allow per package additional compiler/linker flags.
> > 
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>  
> 
> I did a bit of research. Meson does accept -Dc_args and a bunch of
> other options on the command line, but they are ignored when a
> cross-file is used. http://mesonbuild.com/Builtin-options.html says it
> clearly: "c_args, cpp_args, c_link_args, and cpp_link_args only affect
> native builds, when cross compiling they will not be applied to
> binaries or libraries targeting the host system, only those being run
> on the build system."
> 
> There is some on-going discussion upstream about this. See
> https://github.com/mesonbuild/meson/issues/4767.
> 
> A cross_pkg_config_path option was merged:
> 
>   https://github.com/mesonbuild/meson/commit/91b2475e30d7659dad24eb35b47e4d098c716792
> 
> Aparently, they are talking about possibly adding cross_c_args.
> 
> What do we do ? Wait until upstream solves the problem ? Use an
> intermediate solution like yours, and later one move to another one if
> upstream provides one ?

Use the per package cross-compilation.conf with the enhanced flags setting
solution ;-), maybe it is the canonical solution because the compiler etc.
binaries and other settings for cross compile are already given via this
config file, why not all other settings (maybe unfamiliar for long term
autotools users, used to the 'easy' (1) way of quick overwrite some compile
flags/parameters)? 

> 
> Could you at least raise the fact that the Buildroot project would also
> be interested in being able to pass addition cflags/cxxflags/ldflags on
> the command line, as well as passing the path of tools like
> libgcrypt-config ? (See my reply to J?rg Krause's patch on this topic,
> on which you are Cc'ed).

O.k., will try to give some input on the upstream discussion...

Regards,
Peter

(1) maybe newbies would call it magic

> 
> Best regards,
> 
> Thomas

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags
  2019-04-23 18:45   ` Peter Seiderer
@ 2019-05-01 21:03     ` Peter Seiderer
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Seiderer @ 2019-05-01 21:03 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

On Tue, 23 Apr 2019 20:45:55 +0200, Peter Seiderer <ps.report@gmx.net> wrote:

> Hello Thomas,
> 
> On Sat, 13 Apr 2019 18:49:17 +0200, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> 
> > Hello Peter,
> > 
> > On Mon,  8 Apr 2019 22:43:20 +0200
> > Peter Seiderer <ps.report@gmx.net> wrote:
> >   
> > > Add LIBFOO_MESON_CFLAGS, LIBFOO_MESON_LDFLAGS and LIBFOO_MESON_CXXFLAGS
> > > variables to allow per package additional compiler/linker flags.
> > > 
> > > Signed-off-by: Peter Seiderer <ps.report@gmx.net>    
> > 
> > I did a bit of research. Meson does accept -Dc_args and a bunch of
> > other options on the command line, but they are ignored when a
> > cross-file is used. http://mesonbuild.com/Builtin-options.html says it
> > clearly: "c_args, cpp_args, c_link_args, and cpp_link_args only affect
> > native builds, when cross compiling they will not be applied to
> > binaries or libraries targeting the host system, only those being run
> > on the build system."
> > 
> > There is some on-going discussion upstream about this. See
> > https://github.com/mesonbuild/meson/issues/4767.
> > 
> > A cross_pkg_config_path option was merged:
> > 
> >   https://github.com/mesonbuild/meson/commit/91b2475e30d7659dad24eb35b47e4d098c716792
> > 
> > Aparently, they are talking about possibly adding cross_c_args.
> > 
> > What do we do ? Wait until upstream solves the problem ? Use an
> > intermediate solution like yours, and later one move to another one if
> > upstream provides one ?  
> 
> Use the per package cross-compilation.conf with the enhanced flags setting
> solution ;-), maybe it is the canonical solution because the compiler etc.
> binaries and other settings for cross compile are already given via this
> config file, why not all other settings (maybe unfamiliar for long term
> autotools users, used to the 'easy' (1) way of quick overwrite some compile
> flags/parameters)? 
> 
> > 
> > Could you at least raise the fact that the Buildroot project would also
> > be interested in being able to pass addition cflags/cxxflags/ldflags on
> > the command line, as well as passing the path of tools like
> > libgcrypt-config ? (See my reply to J?rg Krause's patch on this topic,
> > on which you are Cc'ed).  
> 
> O.k., will try to give some input on the upstream discussion...

Finally done, see [1]

Regards,
Peter

[1] https://github.com/mesonbuild/meson/issues/4767#issuecomment-488424402

> 
> Regards,
> Peter
> 
> (1) maybe newbies would call it magic
> 
> > 
> > Best regards,
> > 
> > Thomas  
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-05-01 21:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-08 20:43 [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Peter Seiderer
2019-04-08 20:43 ` [Buildroot] [PATCH v5 2/2] libdrm: change to meson build system Peter Seiderer
2019-04-13 16:49 ` [Buildroot] [PATCH v5 1/2] meson: add per package optional compiler/linker flags Thomas Petazzoni
2019-04-23 18:45   ` Peter Seiderer
2019-05-01 21:03     ` Peter Seiderer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.