diff mbox series

[next,1/2] package/opencsd: new package

Message ID 20230222204134.38884-1-ju.o@free.fr
State Accepted
Headers show
Series [next,1/2] package/opencsd: new package | expand

Commit Message

Julien Olivain Feb. 22, 2023, 8:41 p.m. UTC
This library provides an API suitable for the decode of
ARM(r) CoreSight(tm) trace streams.

OpenCSD is for example an optional dependency in the Linux
"perf" tool, starting from kernel version 5.1.

https://github.com/Linaro/OpenCSD

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Patch tested on branch next at commit 9793454 with commands:

    make check-package
    ...
    0 warnings generated

    ./utils/test-pkg -a -p opencsd
                             arm-aarch64 [ 1/45]: OK
                   bootlin-aarch64-glibc [ 2/45]: OK
               bootlin-arcle-hs38-uclibc [ 3/45]: SKIPPED
                    bootlin-armv5-uclibc [ 4/45]: OK
                     bootlin-armv7-glibc [ 5/45]: OK
                   bootlin-armv7m-uclibc [ 6/45]: SKIPPED
                      bootlin-armv7-musl [ 7/45]: OK
                bootlin-m68k-5208-uclibc [ 8/45]: SKIPPED
               bootlin-m68k-68040-uclibc [ 9/45]: SKIPPED
             bootlin-microblazeel-uclibc [10/45]: SKIPPED
                bootlin-mipsel32r6-glibc [11/45]: SKIPPED
                   bootlin-mipsel-uclibc [12/45]: SKIPPED
                     bootlin-nios2-glibc [13/45]: SKIPPED
                 bootlin-openrisc-uclibc [14/45]: SKIPPED
        bootlin-powerpc64le-power8-glibc [15/45]: SKIPPED
           bootlin-powerpc-e500mc-uclibc [16/45]: SKIPPED
                   bootlin-riscv32-glibc [17/45]: SKIPPED
                   bootlin-riscv64-glibc [18/45]: SKIPPED
                    bootlin-riscv64-musl [19/45]: SKIPPED
                 bootlin-s390x-z13-glibc [20/45]: SKIPPED
                      bootlin-sh4-uclibc [21/45]: SKIPPED
                   bootlin-sparc64-glibc [22/45]: SKIPPED
                    bootlin-sparc-uclibc [23/45]: SKIPPED
                    bootlin-x86-64-glibc [24/45]: SKIPPED
                     bootlin-x86-64-musl [25/45]: SKIPPED
                   bootlin-x86-64-uclibc [26/45]: SKIPPED
                   bootlin-xtensa-uclibc [27/45]: SKIPPED
                            br-arm-basic [28/45]: SKIPPED
                    br-arm-full-nothread [29/45]: OK
                      br-arm-full-static [30/45]: SKIPPED
                   br-i386-pentium4-full [31/45]: SKIPPED
                br-i386-pentium-mmx-musl [32/45]: SKIPPED
                      br-mips64-n64-full [33/45]: SKIPPED
                 br-mips64r6-el-hf-glibc [34/45]: SKIPPED
               br-powerpc-603e-basic-cpp [35/45]: SKIPPED
               br-powerpc64-power7-glibc [36/45]: SKIPPED
                       linaro-aarch64-be [37/45]: OK
                          linaro-aarch64 [38/45]: OK
                              linaro-arm [39/45]: OK
                     sourcery-arm-armv4t [40/45]: OK
                            sourcery-arm [41/45]: OK
                     sourcery-arm-thumb2 [42/45]: OK
                         sourcery-mips64 [43/45]: SKIPPED
                           sourcery-mips [44/45]: SKIPPED
                          sourcery-nios2 [45/45]: SKIPPED
    45 builds, 33 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed
---
 DEVELOPERS                   |  1 +
 package/Config.in            |  1 +
 package/opencsd/Config.in    | 27 +++++++++++++++++++++++++++
 package/opencsd/opencsd.hash |  3 +++
 package/opencsd/opencsd.mk   | 31 +++++++++++++++++++++++++++++++
 5 files changed, 63 insertions(+)
 create mode 100644 package/opencsd/Config.in
 create mode 100644 package/opencsd/opencsd.hash
 create mode 100644 package/opencsd/opencsd.mk

Comments

Thomas Petazzoni July 30, 2023, 9:25 p.m. UTC | #1
Hello Julien,

On Wed, 22 Feb 2023 21:41:33 +0100
Julien Olivain <ju.o@free.fr> wrote:

> This library provides an API suitable for the decode of
> ARM(r) CoreSight(tm) trace streams.
> 
> OpenCSD is for example an optional dependency in the Linux
> "perf" tool, starting from kernel version 5.1.
> 
> https://github.com/Linaro/OpenCSD
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>

Applied with very, very small tweaks.

> +config BR2_PACKAGE_OPENCSD
> +	bool "OpenCSD"

	bool "opencsd"

(for consistency, we want all package prompts to be lower-case)

> +	depends on BR2_PACKAGE_OPENCSD_ARCH_SUPPORTS
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
> +	help
> +	  This library provides an API suitable for the decode of
> +	  ARM(r) CoreSight(tm) trace streams.
> +
> +	  OpenCSD is for example an optional dependency in the Linux
> +	  "perf" tool, starting from kernel version 5.1.
> +
> +	  https://github.com/Linaro/OpenCSD
> +
> +comment "OpenCSD needs a toolchain w/ C++11, gcc >= 4.8, dynamic libraries"

            ^^^^^^ opencsd
                                                                    ^^^^^^^^^ library

Thanks!

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 599cfe6886..32524c152a 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1696,6 +1696,7 @@  F:	package/highway/
 F:	package/libjxl/
 F:	package/octave/
 F:	package/ola/
+F:	package/opencsd/
 F:	package/perftest/
 F:	package/ptm2human/
 F:	package/python-distro/
diff --git a/package/Config.in b/package/Config.in
index 6c5238a9b0..fcbf8e8b6c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1708,6 +1708,7 @@  menu "Hardware handling"
 	source "package/mtdev/Config.in"
 	source "package/ne10/Config.in"
 	source "package/neardal/Config.in"
+	source "package/opencsd/Config.in"
 	source "package/opensc/Config.in"
 	source "package/owfs/Config.in"
 	source "package/pcsc-lite/Config.in"
diff --git a/package/opencsd/Config.in b/package/opencsd/Config.in
new file mode 100644
index 0000000000..0e63d99251
--- /dev/null
+++ b/package/opencsd/Config.in
@@ -0,0 +1,27 @@ 
+config BR2_PACKAGE_OPENCSD_ARCH_SUPPORTS
+	bool
+	default y if BR2_arm
+	default y if BR2_armeb
+	default y if BR2_aarch64
+	default y if BR2_aarch64_be
+
+config BR2_PACKAGE_OPENCSD
+	bool "OpenCSD"
+	depends on BR2_PACKAGE_OPENCSD_ARCH_SUPPORTS
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	help
+	  This library provides an API suitable for the decode of
+	  ARM(r) CoreSight(tm) trace streams.
+
+	  OpenCSD is for example an optional dependency in the Linux
+	  "perf" tool, starting from kernel version 5.1.
+
+	  https://github.com/Linaro/OpenCSD
+
+comment "OpenCSD needs a toolchain w/ C++11, gcc >= 4.8, dynamic libraries"
+	depends on BR2_PACKAGE_OPENCSD_ARCH_SUPPORTS
+	depends on BR2_STATIC_LIBS \
+		|| !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/opencsd/opencsd.hash b/package/opencsd/opencsd.hash
new file mode 100644
index 0000000000..84a762fb36
--- /dev/null
+++ b/package/opencsd/opencsd.hash
@@ -0,0 +1,3 @@ 
+# Locally Computed:
+sha256  e1bb6d8d09e87974cb5ca6db2a13b0e1ba9e51117ca2ed71879df07ff7af4de2  opencsd-1.4.0.tar.gz
+sha256  980eef4b0744e63834e3ec0d50c2a4ff6d81d7ec62dd8ba8c66acae0ec5a2e88  LICENSE
diff --git a/package/opencsd/opencsd.mk b/package/opencsd/opencsd.mk
new file mode 100644
index 0000000000..680364d01d
--- /dev/null
+++ b/package/opencsd/opencsd.mk
@@ -0,0 +1,31 @@ 
+################################################################################
+#
+# opencsd
+#
+################################################################################
+
+OPENCSD_VERSION = 1.4.0
+OPENCSD_SITE = $(call github,Linaro,OpenCSD,v$(OPENCSD_VERSION))
+OPENCSD_LICENSE = BSD-3-Clause
+OPENCSD_LICENSE_FILES = LICENSE
+OPENCSD_INSTALL_STAGING = YES
+
+OPENCSD_MAKE_OPTS = \
+	CROSS_COMPILE="$(TARGET_CROSS)"
+
+define OPENCSD_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/decoder/build/linux \
+		$(OPENCSD_MAKE_OPTS) all
+endef
+
+define OPENCSD_INSTALL_TARGET_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/decoder/build/linux \
+		$(OPENCSD_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install
+endef
+
+define OPENCSD_INSTALL_STAGING_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/decoder/build/linux \
+		$(OPENCSD_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install
+endef
+
+$(eval $(generic-package))