diff mbox series

[v2] package/hawktracer: new package

Message ID 20211024113626.88663-1-gilles.talis@gmail.com
State Accepted
Headers show
Series [v2] package/hawktracer: new package | expand

Commit Message

Gilles Talis Oct. 24, 2021, 11:36 a.m. UTC
HawkTracer is a highly portable, low-overhead, configurable profiling tool

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
---
Changes v1 -> v2:
- Added C++ support (Heiko Thiery's review)
- Bumped to latest upstream revision
---
 DEVELOPERS                         |  1 +
 package/Config.in                  |  1 +
 package/hawktracer/Config.in       | 25 +++++++++++++++++
 package/hawktracer/hawktracer.hash |  3 ++
 package/hawktracer/hawktracer.mk   | 44 ++++++++++++++++++++++++++++++
 5 files changed, 74 insertions(+)
 create mode 100644 package/hawktracer/Config.in
 create mode 100644 package/hawktracer/hawktracer.hash
 create mode 100644 package/hawktracer/hawktracer.mk

Comments

Thomas Petazzoni July 25, 2022, 8:44 a.m. UTC | #1
On Sun, 24 Oct 2021 13:36:26 +0200
Gilles Talis <gilles.talis@gmail.com> wrote:

> HawkTracer is a highly portable, low-overhead, configurable profiling tool
> 
> Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
> ---
> Changes v1 -> v2:
> - Added C++ support (Heiko Thiery's review)
> - Bumped to latest upstream revision
> ---
>  DEVELOPERS                         |  1 +
>  package/Config.in                  |  1 +
>  package/hawktracer/Config.in       | 25 +++++++++++++++++
>  package/hawktracer/hawktracer.hash |  3 ++
>  package/hawktracer/hawktracer.mk   | 44 ++++++++++++++++++++++++++++++
>  5 files changed, 74 insertions(+)
>  create mode 100644 package/hawktracer/Config.in
>  create mode 100644 package/hawktracer/hawktracer.hash
>  create mode 100644 package/hawktracer/hawktracer.mk

Finally applied to master. Thanks!

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index f864f7ef47..4abda3685c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1036,6 +1036,7 @@  F:	configs/freescale_imx8mmevk_defconfig
 F:	package/cctz/
 F:	package/faad2/
 F:	package/fdk-aac/
+F:	package/hawktracer/
 F:	package/httping/
 F:	package/iozone/
 F:	package/leptonica/
diff --git a/package/Config.in b/package/Config.in
index d40eb9dabc..dc7bbf52b8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1694,6 +1694,7 @@  endmenu
 
 menu "Logging"
 	source "package/glog/Config.in"
+	source "package/hawktracer/Config.in"
 	source "package/liblog4c-localtime/Config.in"
 	source "package/liblogging/Config.in"
 	source "package/log4cplus/Config.in"
diff --git a/package/hawktracer/Config.in b/package/hawktracer/Config.in
new file mode 100644
index 0000000000..456c2867bf
--- /dev/null
+++ b/package/hawktracer/Config.in
@@ -0,0 +1,25 @@ 
+config BR2_PACKAGE_HAWKTRACER
+	bool "hawktracer"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	help
+	  HawkTracer is a highly portable, low-overhead, configurable
+	  profiling tool built in Amazon Video for getting performance
+	  metrics from low-end devices.
+
+	  https://www.hawktracer.org/
+
+if BR2_PACKAGE_HAWKTRACER
+
+config BR2_PACKAGE_HAWKTRACER_TCP_LISTENER
+	bool "Enable hawktracer TCP listener"
+	default y
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+
+comment "Hawktracer TCP listener feature needs a toolchain w/ threads"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+endif
+
+comment "hawktracer needs a toolchain w/ C++, gcc >= 4.8"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/hawktracer/hawktracer.hash b/package/hawktracer/hawktracer.hash
new file mode 100644
index 0000000000..87aa67c4b6
--- /dev/null
+++ b/package/hawktracer/hawktracer.hash
@@ -0,0 +1,3 @@ 
+# Computed locally
+sha256  b6c7fdfbe8178bc7ba49ef840ec18a92d1488ad73ac9f64d2a09042410ad3ef4  hawktracer-e53b07bc812c4cfe8f6253ddb48ac43de8fa74a8.tar.gz
+sha256  2f377333e64ad08ad3afec8ed6c2c96ced2a6d7d67443eb2784a931bb7b3fd59  LICENSE
diff --git a/package/hawktracer/hawktracer.mk b/package/hawktracer/hawktracer.mk
new file mode 100644
index 0000000000..f4654b2274
--- /dev/null
+++ b/package/hawktracer/hawktracer.mk
@@ -0,0 +1,44 @@ 
+################################################################################
+#
+# hawktracer
+#
+################################################################################
+
+HAWKTRACER_VERSION = e53b07bc812c4cfe8f6253ddb48ac43de8fa74a8
+HAWKTRACER_SITE = $(call github,amzn,hawktracer,$(HAWKTRACER_VERSION))
+HAWKTRACER_LICENSE = MIT
+HAWKTRACER_LICENSE_FILES = LICENSE
+HAWKTRACER_INSTALL_STAGING = YES
+
+HAWKTRACER_CONF_OPTS = \
+	-DENABLE_ASAN=OFF \
+	-DENABLE_TESTS=OFF \
+	-DENABLE_CODE_COVERAGE=OFF \
+	-DENABLE_BENCHMARKS=OFF \
+	-DENABLE_DOC=OFF \
+	-DENABLE_PYTHON_BINDINGS=OFF \
+	-DENABLE_MAINTAINER_MODE=OFF \
+	-DENABLE_RELEASE_MODE=OFF \
+	-DENABLE_CLIENT=OFF \
+	-DENABLE_EXAMPLES=OFF
+
+ifeq ($(BR2_STATIC_LIBS),y)
+HAWKTRACER_CONF_OPTS += -DBUILD_STATIC_LIB=ON
+else
+HAWKTRACER_CONF_OPTS += -DBUILD_STATIC_LIB=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_HAWKTRACER_TCP_LISTENER),y)
+HAWKTRACER_CONF_OPTS += -DENABLE_TCP_LISTENER=ON
+else
+HAWKTRACER_CONF_OPTS += -DENABLE_TCP_LISTENER=OFF
+endif
+
+# Enable threads support if supported by toolchain
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+HAWKTRACER_CONF_OPTS += -DENABLE_THREADS=ON
+else
+HAWKTRACER_CONF_OPTS += -DENABLE_THREADS=OFF
+endif
+
+$(eval $(cmake-package))