* [Buildroot] [PATCH v2] New Package: latencytop
@ 2012-04-04 11:16 Qais Yousef
2012-04-17 11:54 ` Peter Korsgaard
0 siblings, 1 reply; 3+ messages in thread
From: Qais Yousef @ 2012-04-04 11:16 UTC (permalink / raw)
To: buildroot
This version uses $(TARGET_CONFIGURE_OPTS) instead of setting CC, LD
and PKG_CONFIG ourselves.
Signed-off-by: Qais Yousef <qais.yousef@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@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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v2] New Package: latencytop
2012-04-04 11:16 [Buildroot] [PATCH v2] New Package: latencytop Qais Yousef
@ 2012-04-17 11:54 ` Peter Korsgaard
2012-04-17 16:20 ` Qais Yousef
0 siblings, 1 reply; 3+ messages in thread
From: Peter Korsgaard @ 2012-04-17 11:54 UTC (permalink / raw)
To: buildroot
>>>>> "Qais" == Qais Yousef <qais.yousef@imgtec.com> writes:
Hi,
Qais> This version uses $(TARGET_CONFIGURE_OPTS) instead of setting CC, LD
Qais> and PKG_CONFIG ourselves.
This information should go under the '---' line, otherwise 'git am' will
add it to the commit message.
Qais> Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
Qais> ---
Qais> package/Config.in | 1 +
Qais> package/latencytop/Config.in | 15 ++++++++
Qais> package/latencytop/latencytop-makefile.patch | 46 ++++++++++++++++++++++++++
Qais> package/latencytop/latencytop.mk | 21 ++++++++++++
Qais> 4 files changed, 83 insertions(+), 0 deletions(-)
Qais> create mode 100644 package/latencytop/Config.in
Qais> create mode 100644 package/latencytop/latencytop-makefile.patch
Qais> create mode 100644 package/latencytop/latencytop.mk
Qais> diff --git a/package/Config.in b/package/Config.in
Qais> index e1629c8..24e43f6 100644
Qais> --- a/package/Config.in
Qais> +++ b/package/Config.in
Qais> @@ -37,6 +37,7 @@ source "package/strace/Config.in"
Qais> source "package/whetstone/Config.in"
Qais> source "package/valgrind/Config.in"
Qais> source "package/pv/Config.in"
Qais> +source "package/latencytop/Config.in"
Qais> endmenu
Qais> menu "Development tools"
Qais> diff --git a/package/latencytop/Config.in b/package/latencytop/Config.in
Qais> new file mode 100644
Qais> index 0000000..1c120c6
Qais> --- /dev/null
Qais> +++ b/package/latencytop/Config.in
Qais> @@ -0,0 +1,15 @@
Qais> +config BR2_PACKAGE_LATENCYTOP
Qais> + bool "latencytop"
It uses glib2 and ncurses, so it should select those packages. Glib2
depends on USE_WCHAR, so you need to depend on that as well (and show a
comment if not available similar to how glib2 does).
Qais> + help
Qais> + There are many types and causes of latency. LatencyTOP
Qais> + focuses on the type of latency that causes skips in audio,
Qais> + stutters in your desktop experience or that overloads your
Qais> + server (while you have plenty of CPU power left).
Qais> +
Qais> + LatencyTOP focuses on the cases where the applications want
Qais> + to run and execute useful code, but there's some resource
Qais> + that's not currently available (and the kernel then blocks
Qais> + the process). This is done both on a system level and on a
Qais> + per process level, so that you can see what's happening to
Qais> + the system, and which process is suffering and/or causing
Qais> + the delays.
We normally add the upstream URL at the end (http://www.latencytop.org)
Qais> diff --git a/package/latencytop/latencytop-makefile.patch b/package/latencytop/latencytop-makefile.patch
Qais> new file mode 100644
Qais> index 0000000..25be244
Qais> --- /dev/null
Qais> +++ b/package/latencytop/latencytop-makefile.patch
Qais> @@ -0,0 +1,46 @@
Qais> +pkg-config and gcc are always used, which prevents cross compiling.
Qais> +Use env variables to override the default behaviour.
Qais> +
This patch changes more than needed. I would prefer to keep the patch as
small as possible to make it easier to upgrade later.
Have you sent this patch upstream?
Qais> +Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
Qais> +
Qais> +--- latencytop-0.5/Makefile.old 2012-04-03 14:42:09.135328435 +0100
Qais> ++++ latencytop-0.5/Makefile 2012-04-03 15:05:47.878234542 +0100
Qais> +@@ -1,16 +1,17 @@
Qais> + # FIXME: Use autoconf ?
Qais> +-HAS_GTK_GUI = 1
Qais> ++HAS_GTK_GUI ?= 1
Unneeded. Variables on the make command line overrides settings in the
Makefile.
Qais> +
Qais> +-DESTDIR =
Qais> +-SBINDIR = /usr/sbin
Qais> +-XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
Qais> +-LDF = -Wl,--as-needed `pkg-config --libs glib-2.0` -lncursesw
TARGET_CONFIGURE_OPTS prepends $(HOST_DIR)/usr/bin to the path, so the
right pkg-config should get picked up without all of this.
Qais> ++DESTDIR ?=
Qais> ++SBINDIR ?= /usr/sbin
Qais> ++PKG_CONFIG ?= pkg-config
Qais> ++XCFLAGS += -W -g `$(PKG_CONFIG) --cflags glib-2.0` -D_FORTIFY_SOURCE=2 -Wno-sign-compare
Qais> ++LDFLAGS += -Wl,--as-needed `$(PKG_CONFIG) --libs glib-2.0` -lncurses
Qais> +
Qais> + OBJS= latencytop.o text_display.o translate.o fsync.o
Qais> +
Qais> +-ifdef HAS_GTK_GUI
Qais> +- XCFLAGS += `pkg-config --cflags gtk+-2.0` -DHAS_GTK_GUI
Qais> +- LDF += `pkg-config --libs gtk+-2.0`
Qais> ++ifeq (HAS_GTK_GUI, 1)
You need to expand HAS_GTK_GUI - E.G.
ifeq ($(HAS_GTK_GUI),1)
Qais> ++ XCFLAGS += `$(PKG_CONFIG) --cflags gtk+-2.0` -DHAS_GTK_GUI
Qais> ++ LDFLAGS += `$(PKG_CONFIG) --libs gtk+-2.0`
Qais> + OBJS += gtk_display.o
Qais> + endif
Qais> +
Qais> +@@ -26,10 +27,10 @@
Qais> +
Qais> + # We write explicity this "implicit rule"
Qais> + %.o : %.c
Qais> +- gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@
Qais> ++ $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@
Qais> +
Qais> + latencytop: $(OBJS) latencytop.h Makefile
Qais> +- gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop
Qais> ++ $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o latencytop
Qais> +
Qais> + clean:
Qais> + rm -f *~ latencytop DEADJOE *.o
So I think the only things that should get patches are:
s/ifdef HAS_GTK_GUI/ifeq ($(HAS_GTK_GUI),1)/
s/gcc/$(CC)/
Qais> diff --git a/package/latencytop/latencytop.mk b/package/latencytop/latencytop.mk
Qais> new file mode 100644
Qais> index 0000000..f55a564
Qais> --- /dev/null
Qais> +++ b/package/latencytop/latencytop.mk
Qais> @@ -0,0 +1,21 @@
Qais> +#############################################################
Qais> +#
Qais> +# latencytop
Qais> +#
Qais> +#############################################################
Qais> +
Qais> +LATENCYTOP_VERSION = 0.5
Qais> +LATENCYTOP_SITE = http://www.latencytop.org/download/
Qais> +LATENCYTOP_DEPENDENCIES = libglib2 ncurses
Qais> +
Qais> +# NOTE: GTK is heavy weight, we intentionally build the text (ncurses)
Qais> +# version only
Not a big deal, but we do have libgtk2 in buildroot, so it would be nice
to build the gtk version if libgtk2 is enabled.
Qais> +define LATENCYTOP_BUILD_CMDS
Qais> + $(TARGET_CONFIGURE_OPTS) $(MAKE) HAS_GTK_GUI=0 -C $(@D)
Qais> +endef
Qais> +
Qais> +define LATENCYTOP_INSTALL_TARGET_CMDS
Qais> + $(MAKE) install -C $(@D) DESTDIR=$(TARGET_DIR)
Qais> +endef
Qais> +
Qais> +$(eval $(call GENTARGETS))
Care to fix and resend?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v2] New Package: latencytop
2012-04-17 11:54 ` Peter Korsgaard
@ 2012-04-17 16:20 ` Qais Yousef
0 siblings, 0 replies; 3+ messages in thread
From: Qais Yousef @ 2012-04-17 16:20 UTC (permalink / raw)
To: buildroot
Hi,
> Qais> menu "Development tools"
> Qais> diff --git a/package/latencytop/Config.in
> b/package/latencytop/Config.in Qais> new file mode 100644 Qais>
index
> 0000000..1c120c6 Qais> --- /dev/null Qais> +++
> b/package/latencytop/Config.in Qais> @@ -0,0 +1,15 @@ Qais> +config
> BR2_PACKAGE_LATENCYTOP
> Qais> + bool "latencytop"
>
> It uses glib2 and ncurses, so it should select those packages. Glib2
depends
> on USE_WCHAR, so you need to depend on that as well (and show a
> comment if not available similar to how glib2 does).
Done.
> Qais> + help
> Qais> + There are many types and causes of latency. LatencyTOP
> Qais> + focuses on the type of latency that causes skips in
audio,
> Qais> + stutters in your desktop experience or that overloads
your
> Qais> + server (while you have plenty of CPU power left).
> Qais> +
> Qais> + LatencyTOP focuses on the cases where the applications
> want
> Qais> + to run and execute useful code, but there's some
resource
> Qais> + that's not currently available (and the kernel then
blocks
> Qais> + the process). This is done both on a system level and
on a
> Qais> + per process level, so that you can see what's
happening to
> Qais> + the system, and which process is suffering and/or
causing
> Qais> + the delays.
>
> We normally add the upstream URL at the end
(http://www.latencytop.org)
Done.
> Qais> diff --git a/package/latencytop/latencytop-makefile.patch
> b/package/latencytop/latencytop-makefile.patch
> Qais> new file mode 100644
> Qais> index 0000000..25be244
> Qais> --- /dev/null
> Qais> +++ b/package/latencytop/latencytop-makefile.patch
> Qais> @@ -0,0 +1,46 @@
> Qais> +pkg-config and gcc are always used, which prevents cross
compiling.
> Qais> +Use env variables to override the default behaviour.
> Qais> +
>
> This patch changes more than needed. I would prefer to keep the patch
as
> small as possible to make it easier to upgrade later.
>
> Have you sent this patch upstream?
No I didn't. The last upstream commit was back in 2009 so I didn't think
anyone would care much. I'll see if I can find a point of contact.
Latencytop is still a useful package even if it is not actively
maintained, I think ;-)
> Qais> +Signed-off-by: Qais Yousef <qais.yousef@imgtec.com> Qais> +
> Qais> +--- latencytop-0.5/Makefile.old 2012-04-03
14:42:09.135328435 +0100
> Qais> ++++ latencytop-0.5/Makefile 2012-04-03 15:05:47.878234542
+0100
> Qais> +@@ -1,16 +1,17 @@
> Qais> + # FIXME: Use autoconf ?
> Qais> +-HAS_GTK_GUI = 1
> Qais> ++HAS_GTK_GUI ?= 1
>
> Unneeded. Variables on the make command line overrides settings in the
> Makefile.
>
> Qais> +
> Qais> +-DESTDIR =
> Qais> +-SBINDIR = /usr/sbin
> Qais> +-XCFLAGS = -W -g `pkg-config --cflags glib-2.0` -
> D_FORTIFY_SOURCE=2 -Wno-sign-compare
> Qais> +-LDF = -Wl,--as-needed `pkg-config --libs glib-2.0`
-lncursesw
>
> TARGET_CONFIGURE_OPTS prepends $(HOST_DIR)/usr/bin to the path, so
> the right pkg-config should get picked up without all of this.
Yep, you're right. Fixed both.
> Qais> ++DESTDIR ?=
> Qais> ++SBINDIR ?= /usr/sbin
> Qais> ++PKG_CONFIG ?= pkg-config
> Qais> ++XCFLAGS += -W -g `$(PKG_CONFIG) --cflags glib-2.0` -
> D_FORTIFY_SOURCE=2 -Wno-sign-compare
> Qais> ++LDFLAGS += -Wl,--as-needed `$(PKG_CONFIG) --libs glib-2.0`
-
> lncurses
> Qais> +
> Qais> + OBJS= latencytop.o text_display.o translate.o fsync.o Qais>
+ Qais>
> +-ifdef HAS_GTK_GUI Qais> +- XCFLAGS += `pkg-config --cflags
gtk+-2.0` -
> DHAS_GTK_GUI Qais> +- LDF += `pkg-config --libs gtk+-2.0` Qais>
++ifeq
> (HAS_GTK_GUI, 1)
>
> You need to expand HAS_GTK_GUI - E.G.
>
> ifeq ($(HAS_GTK_GUI),1)
I used ifneq ($(HAS_GTK_GUI),0) instead. Logically makes more sense I
guess.
> Qais> ++ XCFLAGS += `$(PKG_CONFIG) --cflags gtk+-2.0` -DHAS_GTK_GUI
> Qais> ++ LDFLAGS += `$(PKG_CONFIG) --libs gtk+-2.0`
> Qais> + OBJS += gtk_display.o
> Qais> + endif
> Qais> +
> Qais> +@@ -26,10 +27,10 @@
> Qais> +
> Qais> + # We write explicity this "implicit rule"
> Qais> + %.o : %.c
> Qais> +- gcc -c $(CFLAGS) $(XCFLAGS) $< -o $@
> Qais> ++ $(CC) -c $(CFLAGS) $(XCFLAGS) $< -o $@
> Qais> +
> Qais> + latencytop: $(OBJS) latencytop.h Makefile
> Qais> +- gcc $(CFLAGS) $(OBJS) $(LDF) -o latencytop
> Qais> ++ $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o latencytop
> Qais> +
> Qais> + clean:
> Qais> + rm -f *~ latencytop DEADJOE *.o
>
>
> So I think the only things that should get patches are:
>
> s/ifdef HAS_GTK_GUI/ifeq ($(HAS_GTK_GUI),1)/ s/gcc/$(CC)/
Almost. You missed s/lncursesw/lncurses/ otherwise I would get linking
error.
> Qais> diff --git a/package/latencytop/latencytop.mk
> b/package/latencytop/latencytop.mk
> Qais> new file mode 100644
> Qais> index 0000000..f55a564
> Qais> --- /dev/null
> Qais> +++ b/package/latencytop/latencytop.mk
> Qais> @@ -0,0 +1,21 @@
> Qais>
> +#########################################################
> ####
> Qais> +#
> Qais> +# latencytop
> Qais> +#
> Qais>
> +#########################################################
> ####
> Qais> +
> Qais> +LATENCYTOP_VERSION = 0.5
> Qais> +LATENCYTOP_SITE = http://www.latencytop.org/download/
> Qais> +LATENCYTOP_DEPENDENCIES = libglib2 ncurses Qais> + Qais> +#
> NOTE: GTK is heavy weight, we intentionally build the text (ncurses)
Qais>
> +# version only
>
> Not a big deal, but we do have libgtk2 in buildroot, so it would be
nice to build
> the gtk version if libgtk2 is enabled.
It might be a bit difficult for me to get this tested properly so I
avoided it altogether.
> Qais> +define LATENCYTOP_BUILD_CMDS
> Qais> + $(TARGET_CONFIGURE_OPTS) $(MAKE) HAS_GTK_GUI=0 -C
> $(@D)
> Qais> +endef
> Qais> +
> Qais> +define LATENCYTOP_INSTALL_TARGET_CMDS
> Qais> + $(MAKE) install -C $(@D) DESTDIR=$(TARGET_DIR)
> Qais> +endef
> Qais> +
> Qais> +$(eval $(call GENTARGETS))
>
> Care to fix and resend?
Sure, I'll repost the updated patch shortly :-)
Thanks,
Qais
> --
> Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-04-17 16:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-04 11:16 [Buildroot] [PATCH v2] New Package: latencytop Qais Yousef
2012-04-17 11:54 ` Peter Korsgaard
2012-04-17 16:20 ` Qais Yousef
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.