[Buildroot] [PATCH v2] New Package: latencytop
Qais Yousef
qais.yousef at imgtec.com
Wed Apr 4 11:16:00 UTC 2012
This version uses $(TARGET_CONFIGURE_OPTS) instead of setting CC, LD
and PKG_CONFIG ourselves.
Signed-off-by: Qais Yousef <qais.yousef at imgtec.com>
---
package/Config.in | 1 +
package/latencytop/Config.in | 15 ++++++++
package/latencytop/latencytop-makefile.patch | 46 ++++++++++++++++++++++++++
package/latencytop/latencytop.mk | 21 ++++++++++++
4 files changed, 83 insertions(+), 0 deletions(-)
create mode 100644 package/latencytop/Config.in
create mode 100644 package/latencytop/latencytop-makefile.patch
create mode 100644 package/latencytop/latencytop.mk
diff --git a/package/Config.in b/package/Config.in
index e1629c8..24e43f6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -37,6 +37,7 @@ source "package/strace/Config.in"
source "package/whetstone/Config.in"
source "package/valgrind/Config.in"
source "package/pv/Config.in"
+source "package/latencytop/Config.in"
endmenu
menu "Development tools"
diff --git a/package/latencytop/Config.in b/package/latencytop/Config.in
new file mode 100644
index 0000000..1c120c6
--- /dev/null
+++ b/package/latencytop/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_LATENCYTOP
+ bool "latencytop"
+ help
+ There are many types and causes of latency. LatencyTOP
+ focuses on the type of latency that causes skips in audio,
+ stutters in your desktop experience or that overloads your
+ server (while you have plenty of CPU power left).
+
+ LatencyTOP focuses on the cases where the applications want
+ to run and execute useful code, but there's some resource
+ that's not currently available (and the kernel then blocks
+ the process). This is done both on a system level and on a
+ per process level, so that you can see what's happening to
+ the system, and which process is suffering and/or causing
+ the delays.
diff --git a/package/latencytop/latencytop-makefile.patch b/package/latencytop/latencytop-makefile.patch
new file mode 100644
index 0000000..25be244
--- /dev/null
+++ b/package/latencytop/latencytop-makefile.patch
@@ -0,0 +1,46 @@
+pkg-config and gcc are always used, which prevents cross compiling.
+Use env variables to override the default behaviour.
+
+Signed-off-by: Qais Yousef <qais.yousef at imgtec.com>
+
+--- latencytop-0.5/Makefile.old 2012-04-03 14:42:09.135328435 +0100
++++ latencytop-0.5/Makefile 2012-04-03 15:05:47.878234542 +0100
+@@ -1,16 +1,17 @@
+ # FIXME: Use autoconf ?
+-HAS_GTK_GUI = 1
++HAS_GTK_GUI ?= 1
+
+-DESTDIR =
+-SBINDIR = /usr/sbin
+-XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
+-LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncursesw
++DESTDIR ?=
++SBINDIR ?= /usr/sbin
++PKG_CONFIG ?= pkg-config
++XCFLAGS += -W -g `$(PKG_CONFIG) --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
++LDFLAGS += -Wl,--as-needed `$(PKG_CONFIG) --libs glib-2.0` -lncurses
+
+ OBJS= latencytop.o text_display.o translate.o fsync.o
+
+-ifdef HAS_GTK_GUI
+- XCFLAGS += `pkg-config --cflags gtk+-2.0` -DHAS_GTK_GUI
+- LDF += `pkg-config --libs gtk+-2.0`
++ifeq (HAS_GTK_GUI, 1)
++ XCFLAGS += `$(PKG_CONFIG) --cflags gtk+-2.0` -DHAS_GTK_GUI
++ LDFLAGS += `$(PKG_CONFIG) --libs gtk+-2.0`
+ OBJS += gtk_display.o
+ endif
+
+@@ -26,10 +27,10 @@
+
+ # We write explicity this "implicit rule"
+ %.o : %.c
+- gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@
++ $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@
+
+ latencytop: $(OBJS) latencytop.h Makefile
+- gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop
++ $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o latencytop
+
+ clean:
+ rm -f *~ latencytop DEADJOE *.o
diff --git a/package/latencytop/latencytop.mk b/package/latencytop/latencytop.mk
new file mode 100644
index 0000000..f55a564
--- /dev/null
+++ b/package/latencytop/latencytop.mk
@@ -0,0 +1,21 @@
+#############################################################
+#
+# latencytop
+#
+#############################################################
+
+LATENCYTOP_VERSION = 0.5
+LATENCYTOP_SITE = http://www.latencytop.org/download/
+LATENCYTOP_DEPENDENCIES = libglib2 ncurses
+
+# NOTE: GTK is heavy weight, we intentionally build the text (ncurses)
+# version only
+define LATENCYTOP_BUILD_CMDS
+ $(TARGET_CONFIGURE_OPTS) $(MAKE) HAS_GTK_GUI=0 -C $(@D)
+endef
+
+define LATENCYTOP_INSTALL_TARGET_CMDS
+ $(MAKE) install -C $(@D) DESTDIR=$(TARGET_DIR)
+endef
+
+$(eval $(call GENTARGETS))
--
1.7.1
More information about the buildroot
mailing list