diff mbox

[v5,7/8] libglew: new package

Message ID 1396588694-6377-8-git-send-email-bernd.kuhls@t-online.de
State Superseded
Headers show

Commit Message

Bernd Kuhls April 4, 2014, 5:18 a.m. UTC
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/Config.in                        |    1 +
 package/libglew/Config.in                |   19 ++++++++++++++
 package/libglew/libglew-0001-lib64.patch |   14 +++++++++++
 package/libglew/libglew.mk               |   40 ++++++++++++++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 100644 package/libglew/Config.in
 create mode 100644 package/libglew/libglew-0001-lib64.patch
 create mode 100644 package/libglew/libglew.mk

Comments

Thomas Petazzoni April 17, 2014, 8:52 p.m. UTC | #1
Dear Bernd Kuhls,

On Fri,  4 Apr 2014 07:18:13 +0200, Bernd Kuhls wrote:

> diff --git a/package/libglew/Config.in b/package/libglew/Config.in
> new file mode 100644
> index 0000000..fdb2b91
> --- /dev/null
> +++ b/package/libglew/Config.in
> @@ -0,0 +1,19 @@
> +config BR2_PACKAGE_LIBGLEW
> +	bool "libglew"
> +	depends on BR2_PACKAGE_XSERVER_XORG_SERVER

A dependency on BR2_PACKAGE_XORG7 looks more appropriate. We
technically speaking don't depend on the X.org server, only on the
client libraries I believe.

> +	depends on BR2_PACKAGE_MESA3D_DRIVER

Why is this needed, and not only BR2_PACKAGE_MESA3D ? Also, it seems
like libglew only makes sense in a context where mesa3d has GLX
support, no?

Do you plan to include packages that depend on libglew? What are those
packages? I'm just trying to get the big picture, and see how libglew
fits in it.

> diff --git a/package/libglew/libglew-0001-lib64.patch b/package/libglew/libglew-0001-lib64.patch
> new file mode 100644
> index 0000000..b961aec
> --- /dev/null
> +++ b/package/libglew/libglew-0001-lib64.patch

All patches need a description + Signed-off-by, but...

> @@ -0,0 +1,14 @@
> +diff -uNr glew-1.10.0.org/config/Makefile.linux glew-1.10.0/config/Makefile.linux
> +--- glew-1.10.0.org/config/Makefile.linux	2013-07-22 16:11:22.000000000 +0200
> ++++ glew-1.10.0/config/Makefile.linux	2014-03-30 22:01:04.403574030 +0200
> +@@ -10,8 +10,8 @@
> +   ARCH64 = true
> + endif
> + ifeq (${ARCH64},true)
> +-  LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64
> +-  LIBDIR = $(GLEW_DEST)/lib64
> ++  LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
> ++  LIBDIR = $(GLEW_DEST)/lib

Since you're overriding LDFLAGS.EXTRA from libglew.mk, why don't you do
the same with LIBDIR ? It would avoid having to patch the package.

> + else
> +   LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
> +   LIBDIR = $(GLEW_DEST)/lib
> diff --git a/package/libglew/libglew.mk b/package/libglew/libglew.mk
> new file mode 100644
> index 0000000..e9c08d7
> --- /dev/null
> +++ b/package/libglew/libglew.mk
> @@ -0,0 +1,40 @@
> +################################################################################
> +#
> +# libglew
> +#
> +################################################################################
> +
> +LIBGLEW_VERSION = 1.10.0
> +LIBGLEW_SOURCE = glew-$(LIBGLEW_VERSION).tgz
> +LIBGLEW_SITE = http://sourceforge.net/projects/glew/files/glew/$(LIBGLEW_VERSION)
> +LIBGLEW_LICENSE = MIT

LIBGLEW_LICENSE_FILES = LICENSE.txt

> +LIBGLEW_INSTALL_STAGING = YES
> +LIBGLEW_DEPENDENCIES = \
> +	mesa3d \
> +	xlib_libX11 \
> +	xlib_libXext \
> +	xlib_libXi \
> +	xlib_libXmu
> +
> +define LIBGLEW_BUILD_CMDS
> +    $(TARGET_MAKE_ENV) \
> +    $(MAKE) -C $(@D) \
> +    GLEW_DEST="/usr" CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" LD="$(TARGET_CC)" \
> +    POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"

We usually intend with one more tab the next lines of a given command.
Also, you should use $(TARGET_CONFIGURE_OPTS) here as well:

	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="/usr" $(TARGET_CONFIGURE_OPTS) \
		POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"

> +endef
> +
> +define LIBGLEW_INSTALL_STAGING_CMDS
> +    $(TARGET_MAKE_ENV) \
> +    $(TARGET_CONFIGURE_OPTS) \
> +    $(MAKE) -C $(@D) \
> +    GLEW_DEST="$(STAGING_DIR)/usr" install

	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="$(STAGING_DIR)/usr" $(TARGET_CONFIGURE_OPTS) \
		install

> +endef
> +
> +define LIBGLEW_INSTALL_TARGET_CMDS
> +    $(TARGET_MAKE_ENV) \
> +    $(TARGET_CONFIGURE_OPTS) \
> +    $(MAKE) -C $(@D) \
> +    GLEW_DEST="$(TARGET_DIR)/usr" install

	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
		GLEW_DEST="$(TARGET_DIR)/usr" $(TARGET_CONFIGURE_OPTS) \
		install

> +endef
> +
> +$(eval $(generic-package))

Thanks!

Thomas
Bernd Kuhls April 26, 2014, 2:24 p.m. UTC | #2
Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote
in news:20140417225250.15ff2dd1@skate: 

> Do you plan to include packages that depend on libglew? What are those
> packages? I'm just trying to get the big picture, and see how libglew
> fits in it.

Hi,

xbmc gotham depends on libglew and libglu:
https://github.com/xbmc/xbmc/blob/Gotham/configure.in#L1068

Regards, Bernd
(who is working through mail backlog after holiday ;))
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 3240188..8433020 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -584,6 +584,7 @@  source "package/libexif/Config.in"
 source "package/libgail/Config.in"
 source "package/libgeotiff/Config.in"
 source "package/libglade/Config.in"
+source "package/libglew/Config.in"
 source "package/libglu/Config.in"
 source "package/libgtk2/Config.in"
 source "package/libpng/Config.in"
diff --git a/package/libglew/Config.in b/package/libglew/Config.in
new file mode 100644
index 0000000..fdb2b91
--- /dev/null
+++ b/package/libglew/Config.in
@@ -0,0 +1,19 @@ 
+config BR2_PACKAGE_LIBGLEW
+	bool "libglew"
+	depends on BR2_PACKAGE_XSERVER_XORG_SERVER
+	depends on BR2_PACKAGE_MESA3D_DRIVER
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXI
+	select BR2_PACKAGE_XLIB_LIBXMU
+	help
+	  The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++
+	  extension loading library. GLEW provides efficient run-time mechanisms
+	  for determining which OpenGL extensions are supported on the target
+	  platform. OpenGL core and extension functionality is exposed in a
+	  single header file.
+
+	  http://glew.sourceforge.net
+
+comment "libglew depends on X.org server and an activated mesa3d driver"
+	depends on !BR2_PACKAGE_XSERVER_XORG_SERVER || !BR2_PACKAGE_MESA3D_DRIVER
diff --git a/package/libglew/libglew-0001-lib64.patch b/package/libglew/libglew-0001-lib64.patch
new file mode 100644
index 0000000..b961aec
--- /dev/null
+++ b/package/libglew/libglew-0001-lib64.patch
@@ -0,0 +1,14 @@ 
+diff -uNr glew-1.10.0.org/config/Makefile.linux glew-1.10.0/config/Makefile.linux
+--- glew-1.10.0.org/config/Makefile.linux	2013-07-22 16:11:22.000000000 +0200
++++ glew-1.10.0/config/Makefile.linux	2014-03-30 22:01:04.403574030 +0200
+@@ -10,8 +10,8 @@
+   ARCH64 = true
+ endif
+ ifeq (${ARCH64},true)
+-  LDFLAGS.EXTRA = -L/usr/X11R6/lib64 -L/usr/lib64
+-  LIBDIR = $(GLEW_DEST)/lib64
++  LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
++  LIBDIR = $(GLEW_DEST)/lib
+ else
+   LDFLAGS.EXTRA = -L/usr/X11R6/lib -L/usr/lib
+   LIBDIR = $(GLEW_DEST)/lib
diff --git a/package/libglew/libglew.mk b/package/libglew/libglew.mk
new file mode 100644
index 0000000..e9c08d7
--- /dev/null
+++ b/package/libglew/libglew.mk
@@ -0,0 +1,40 @@ 
+################################################################################
+#
+# libglew
+#
+################################################################################
+
+LIBGLEW_VERSION = 1.10.0
+LIBGLEW_SOURCE = glew-$(LIBGLEW_VERSION).tgz
+LIBGLEW_SITE = http://sourceforge.net/projects/glew/files/glew/$(LIBGLEW_VERSION)
+LIBGLEW_LICENSE = MIT
+LIBGLEW_INSTALL_STAGING = YES
+LIBGLEW_DEPENDENCIES = \
+	mesa3d \
+	xlib_libX11 \
+	xlib_libXext \
+	xlib_libXi \
+	xlib_libXmu
+
+define LIBGLEW_BUILD_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="/usr" CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" LD="$(TARGET_CC)" \
+    POPT="$(TARGET_CFLAGS)" LDFLAGS.EXTRA="$(TARGET_LDFLAGS)"
+endef
+
+define LIBGLEW_INSTALL_STAGING_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(STAGING_DIR)/usr" install
+endef
+
+define LIBGLEW_INSTALL_TARGET_CMDS
+    $(TARGET_MAKE_ENV) \
+    $(TARGET_CONFIGURE_OPTS) \
+    $(MAKE) -C $(@D) \
+    GLEW_DEST="$(TARGET_DIR)/usr" install
+endef
+
+$(eval $(generic-package))