Add the device-tree-compiler source as libfdt.
I guess the package could have been named dtc as a target
variant with libfdt, but I don't know of any uses of the
dtc on target environments. So the only use I can think of
is libfdt. I think the name is more accurate towards usage,
but it isn't as symmetrical as the typical host-* and normal
variants.

The use of libfdt is separate from the host-dtc usage too,
so whatever version you'd use for external device trees are probably
not the same as target lifdt. There you'd typically want the latest
version.

This work is prepping for qemu 8.2.0+, as it requires libfdt
as a separate library. It has stopped providing one internally.

Signed-off-by: Christian Melki <christian.me...@t2data.com>
---
 rules/libfdt.in   |  9 +++++++
 rules/libfdt.make | 69 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+)
 create mode 100644 rules/libfdt.in
 create mode 100644 rules/libfdt.make

diff --git a/rules/libfdt.in b/rules/libfdt.in
new file mode 100644
index 000000000..3e30062e9
--- /dev/null
+++ b/rules/libfdt.in
@@ -0,0 +1,9 @@
+## SECTION=system_libraries
+
+menuconfig LIBFDT
+       tristate
+       prompt "libfdt                        "
+       help
+         libfdt is the flattend device tree library.
+         It's technically a part of the device tree compiler code,
+         but for target uses, libfdt is sometimes required.
\ No newline at end of file
diff --git a/rules/libfdt.make b/rules/libfdt.make
new file mode 100644
index 000000000..a7f5cc566
--- /dev/null
+++ b/rules/libfdt.make
@@ -0,0 +1,69 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 Christian Melki <christian.me...@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBFDT) += libfdt
+
+#
+# Paths and names
+#
+LIBFDT_VERSION         := 1.7.0
+LIBFDT_MD5             := f8b4469ad89f4b882091895ec60dde6b
+LIBFDT                 := dtc-$(LIBFDT_VERSION)
+LIBFDT_SUFFIX          := tar.gz
+LIBFDT_URL             := 
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(LIBFDT).$(LIBFDT_SUFFIX)
+LIBFDT_SOURCE          := $(SRCDIR)/$(LIBFDT).$(LIBFDT_SUFFIX)
+LIBFDT_DIR             := $(BUILDDIR)/$(LIBFDT)
+LIBFDT_LICENSE         := BSD-2-Clause OR GPL-2.0
+LIBFDT_LICENSE_FILES := \
+       file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e \
+       file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+       file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBFDT_CONF_TOOL := NO
+
+LIBFDT_MAKE_ENV := \
+       $(CROSS_ENV)
+
+LIBFDT_MAKE_OPT := \
+       PREFIX=/usr \
+       NO_PYTHON=1 \
+       NO_VALGRIND=1 \
+       NO_YAML=1
+
+LIBFDT_INSTALL_OPT := \
+       $(LIBFDT_MAKE_OPT) \
+       install-includes \
+       install-lib
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libfdt.targetinstall:
+       @$(call targetinfo)
+
+       @$(call install_init, libfdt)
+       @$(call install_fixup, libfdt,PRIORITY,optional)
+       @$(call install_fixup, libfdt,SECTION,base)
+       @$(call install_fixup, libfdt,AUTHOR,"Christian Melki 
<christian.me...@t2data.com>")
+       @$(call install_fixup, libfdt,DESCRIPTION,missing)
+
+       @$(call install_lib, libfdt, 0, 0, 0644, libfdt-$(LIBFDT_VERSION))
+
+       @$(call install_finish, libfdt)
+
+       @$(call touch)
+
+# vim: syntax=make
-- 
2.34.1


Reply via email to