[Buildroot] [PATCH v2] New Package: latencytop
Peter Korsgaard
jacmet at uclibc.org
Tue Apr 17 11:54:22 UTC 2012
>>>>> "Qais" == Qais Yousef <qais.yousef at 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 at 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 at 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
More information about the buildroot
mailing list