Skip to contentSkip to conversation

ti-gfx: add new package

PATCH New Spenser Gilliland 3 participants 5 messages Jul 10, 2013 – Jul 12, 2013

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/2 ti-gfx: add new package

adds accelerated GPU support for the OMAP35xx, AM35xx, AM37xx, DM37xx, AM387x, C6A814x, AM389x, C6A816x, and AM335x platforms.

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>

---
v4:
- Fix header issue with qt.
- Add eglimage version installation.
v3:
- integrate reviews from thomas.
- Add qt patch
v2:
- Take into account reviews.
- Simplfy init script.
- Fix header installation.
v1:
- Added .pc files
- all review issues addressed
RFC v3:
- all reviews addressed
- added demos
- added hard float (not runtime tested)
- added init script
- added SGX detection script (untested)
- tested on beaglexm using demos
RFC v2:
- basic working with minor issues during tests
RFC v1:
- inital revision

---
 package/Config.in                              |   1 +
 package/opengl/libegl/libegl.mk                |   4 +
 package/opengl/libgles/libgles.mk              |   4 +
 package/ti-gfx/Config.in                       |  68 +++++++++
 package/ti-gfx/S80ti-gfx                       |  54 +++++++
 package/ti-gfx/egl.pc                          |  10 ++
 package/ti-gfx/esrev.sh                        |  59 ++++++++
 package/ti-gfx/glesv2.pc                       |  10 ++
 package/ti-gfx/powervr.ini                     |   2 +
 package/ti-gfx/ti-gfx-km_install_modules.patch |  19 +++
 package/ti-gfx/ti-gfx-newclkapi.patch          | 143 ++++++++++++++++++
 package/ti-gfx/ti-gfx.mk                       | 192 +++++++++++++++++++++++++
 12 files changed, 566 insertions(+)
 create mode 100644 package/ti-gfx/Config.in
 create mode 100644 package/ti-gfx/S80ti-gfx
 create mode 100644 package/ti-gfx/egl.pc
 create mode 100644 package/ti-gfx/esrev.sh
 create mode 100644 package/ti-gfx/glesv2.pc
 create mode 100644 package/ti-gfx/powervr.ini
 create mode 100644 package/ti-gfx/ti-gfx-km_install_modules.patch
 create mode 100644 package/ti-gfx/ti-gfx-newclkapi.patch
 create mode 100644 package/ti-gfx/ti-gfx.mk
package/Config.in +1 -0
index 7c24dab..c8b90a8 100644
@@ -292,6 +292,7 @@ source "package/snowball-hdmiservice/Config.in"
 source "package/sredird/Config.in"
 source "package/statserial/Config.in"
 source "package/sysstat/Config.in"
+source "package/ti-gfx/Config.in"
 source "package/ti-utils/Config.in"
 source "package/uboot-tools/Config.in"
 source "package/udev/Config.in"
package/opengl/libegl/libegl.mk +4 -0
index bd8040d..00e1f19 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBEGL_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBEGL_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
 	echo "No libEGL implementation selected. Configuration error."
package/opengl/libgles/libgles.mk +4 -0
index a0048a7..d2fe11b 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBGLES_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBGLES_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
 	echo "No libGLES implementation selected. Configuration error."
package/ti-gfx/Config.in new file +68 -0

68 lines not on this page · raw message

package/ti-gfx/S80ti-gfx new file +54 -0

54 lines not on this page · raw message

package/ti-gfx/egl.pc new file +10 -0
new file mode 100644
index 0000000..9f6ed51
@@ -0,0 +1,10 @@
+prefix=/usr/
+exec_prefix=/usr/
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: egl
+Description: TI Graphics SDK implementation of EGL
+Version: 1.9.2188537
+Libs: -L${libdir} -lEGL -lIMGegl
+Cflags: -I{includedir}/EGL/
package/ti-gfx/esrev.sh new file +59 -0

59 lines not on this page · raw message

package/ti-gfx/glesv2.pc new file +10 -0
new file mode 100644
index 0000000..e646e2e
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: glesv2
+Description: TI Graphics SDK implementation of OpenGL ESv2
+Version: 1.9.2188537
+Libs: -L${libdir} -lGLESv2 -lGLES_CM -lsrv_um -lusc -lEGL -lIMGegl
+Cflags: -I${includedir}/
package/ti-gfx/powervr.ini new file +2 -0
new file mode 100644
index 0000000..8d2d853
@@ -0,0 +1,2 @@
+[default]
+WindowSystem=libpvrPVR2D_FRONTWSEGL.so
package/ti-gfx/ti-gfx-km_install_modules.patch new file +19 -0
new file mode 100644
index 0000000..2cf6e81
@@ -0,0 +1,19 @@
+Patch to add modules_install target to the modules makefile.  This makes
+installation a little easier.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+----
+Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile
+===================================================================
+--- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile	2013-03-07 11:00:11.000000000 -0600
++++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile	2013-05-23 01:36:29.356676281 -0500
+@@ -479,6 +479,9 @@
+ all:
+ 	$(MAKE) -C $(KERNELDIR) M=`pwd` $*
+ 
++install:
++	$(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
++
+ clean:
+ 	@find . -name "*.o" -exec rm -r {} \;
+ 	@find . -name "*.ko" -exec rm -r {} \;
package/ti-gfx/ti-gfx-newclkapi.patch new file +143 -0

143 lines not on this page · raw message

package/ti-gfx/ti-gfx.mk new file +192 -0

192 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#1 lore raw

PATCH v4 1/2 ti-gfx: add new package

adds accelerated GPU support for the OMAP35xx, AM35xx, AM37xx, DM37xx, AM387x, C6A814x, AM389x, C6A816x, and AM335x platforms.

Cc Thomas Petazzoni <[email protected]>
Cc Sundareson, Prabindh <[email protected]>
Cc Peter Korsgaard <[email protected]>

---

v4:
- Fix header issue with qt.
- Add eglimage version installation.
v3:
- integrate reviews from thomas.
- Add qt patch
v2:
- Take into account reviews.
- Simplfy init script.
- Fix header installation.
v1:
- Added .pc files
- all review issues addressed
RFC v3:
- all reviews addressed
- added demos
- added hard float (not runtime tested)
- added init script
- added SGX detection script (untested)
- tested on beaglexm using demos
RFC v2:
- basic working with minor issues during tests
RFC v1:
- inital revision

---
 package/Config.in                              |   1 +
 package/opengl/libegl/libegl.mk                |   4 +
 package/opengl/libgles/libgles.mk              |   4 +
 package/ti-gfx/Config.in                       |  68 +++++++++
 package/ti-gfx/S80ti-gfx                       |  54 +++++++
 package/ti-gfx/egl.pc                          |  10 ++
 package/ti-gfx/esrev.sh                        |  59 ++++++++
 package/ti-gfx/glesv2.pc                       |  10 ++
 package/ti-gfx/powervr.ini                     |   2 +
 package/ti-gfx/ti-gfx-km_install_modules.patch |  19 +++
 package/ti-gfx/ti-gfx-newclkapi.patch          | 143 ++++++++++++++++++
 package/ti-gfx/ti-gfx.mk                       | 192 +++++++++++++++++++++++++
 12 files changed, 566 insertions(+)
 create mode 100644 package/ti-gfx/Config.in
 create mode 100644 package/ti-gfx/S80ti-gfx
 create mode 100644 package/ti-gfx/egl.pc
 create mode 100644 package/ti-gfx/esrev.sh
 create mode 100644 package/ti-gfx/glesv2.pc
 create mode 100644 package/ti-gfx/powervr.ini
 create mode 100644 package/ti-gfx/ti-gfx-km_install_modules.patch
 create mode 100644 package/ti-gfx/ti-gfx-newclkapi.patch
 create mode 100644 package/ti-gfx/ti-gfx.mk
package/Config.in +1 -0
index 7c24dab..c8b90a8 100644
@@ -292,6 +292,7 @@ source "package/snowball-hdmiservice/Config.in"
 source "package/sredird/Config.in"
 source "package/statserial/Config.in"
 source "package/sysstat/Config.in"
+source "package/ti-gfx/Config.in"
 source "package/ti-utils/Config.in"
 source "package/uboot-tools/Config.in"
 source "package/udev/Config.in"
package/opengl/libegl/libegl.mk +4 -0
index bd8040d..00e1f19 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBEGL_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBEGL_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
 	echo "No libEGL implementation selected. Configuration error."
package/opengl/libgles/libgles.mk +4 -0
index a0048a7..d2fe11b 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBGLES_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_TI_GFX),y)
+LIBGLES_DEPENDENCIES += ti-gfx
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
 	echo "No libGLES implementation selected. Configuration error."
package/ti-gfx/Config.in new file +68 -0

68 lines not on this page · raw message

package/ti-gfx/S80ti-gfx new file +54 -0

54 lines not on this page · raw message

package/ti-gfx/egl.pc new file +10 -0
new file mode 100644
index 0000000..9f6ed51
@@ -0,0 +1,10 @@
+prefix=/usr/
+exec_prefix=/usr/
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: egl
+Description: TI Graphics SDK implementation of EGL
+Version: 1.9.2188537
+Libs: -L${libdir} -lEGL -lIMGegl
+Cflags: -I{includedir}/EGL/
package/ti-gfx/esrev.sh new file +59 -0

59 lines not on this page · raw message

package/ti-gfx/glesv2.pc new file +10 -0
new file mode 100644
index 0000000..e646e2e
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=/usr
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: glesv2
+Description: TI Graphics SDK implementation of OpenGL ESv2
+Version: 1.9.2188537
+Libs: -L${libdir} -lGLESv2 -lGLES_CM -lsrv_um -lusc -lEGL -lIMGegl
+Cflags: -I${includedir}/
package/ti-gfx/powervr.ini new file +2 -0
new file mode 100644
index 0000000..8d2d853
@@ -0,0 +1,2 @@
+[default]
+WindowSystem=libpvrPVR2D_FRONTWSEGL.so
package/ti-gfx/ti-gfx-km_install_modules.patch new file +19 -0
new file mode 100644
index 0000000..2cf6e81
@@ -0,0 +1,19 @@
+Patch to add modules_install target to the modules makefile.  This makes
+installation a little easier.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+----
+Index: ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile
+===================================================================
+--- ti-gfx-4_09_00_01.orig/GFX_Linux_KM/Makefile	2013-03-07 11:00:11.000000000 -0600
++++ ti-gfx-4_09_00_01/GFX_Linux_KM/Makefile	2013-05-23 01:36:29.356676281 -0500
+@@ -479,6 +479,9 @@
+ all:
+ 	$(MAKE) -C $(KERNELDIR) M=`pwd` $*
+ 
++install:
++	$(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
++
+ clean:
+ 	@find . -name "*.o" -exec rm -r {} \;
+ 	@find . -name "*.ko" -exec rm -r {} \;
package/ti-gfx/ti-gfx-newclkapi.patch new file +143 -0

143 lines not on this page · raw message

package/ti-gfx/ti-gfx.mk new file +192 -0

192 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#2 lore raw

PATCH v4 1/2 ti-gfx: add new package

In reply to Spenser Gilliland

Dear Spenser Gilliland,

package/ti-gfx/Config.in line 68

Quoted 2 lines · Spenser Gilliland
package/ti-gfx/Config.in new file +2 -0
+comment "requires an eglibc/glibc based toolchain and the linux kernel"
+	depends on !(BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm)

When a comment like this a shown, the package option is not visible, so you must mention the package name in the comment, otherwise it's impossible for the user to understand what the comment is about. So it should be:

comment "ti-gfx requires ..."

package/ti-gfx/ti-gfx.mk line 107

Quoted 13 lines
package/ti-gfx/ti-gfx.mk new file +13 -0
+define TI_GFX_CONFIGURE_CMDS
+	$(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
+		mv -f $(@D)/$(TI_GFX_BIN_PATH)/libEGL_eglimage.so \
+			$(@D)/$(TI_GFX_BIN_PATH)/libEGL.so; \
+		mv -f $(@D)/$(TI_GFX_BIN_PATH)/libGLES_CM_eglimage.so \
+			$(@D)/$(TI_GFX_BIN_PATH)/libGLES_CM.so; \
+		mv -f $(@D)/$(TI_GFX_BIN_PATH)/libGLESv2_eglimage.so \
+		   $(@D)/$(TI_GFX_BIN_PATH)/libGLESv2.so; \
+		mv -f $(@D)/$(TI_GFX_BIN_PATH)/libglslcompiler_eglimage.so \
+			$(@D)/$(TI_GFX_BIN_PATH)/libglslcompiler.so; \
+		mv -f $(@D)/$(TI_GFX_BIN_PATH)/libIMGegl_eglimage.so \
+			$(@D)/$(TI_GFX_BIN_PATH)/libIMGegl.so;
+	)

This seems not really nice to do, it should be handled at install time.

package/ti-gfx/ti-gfx.mk line 117

Quoted 10 lines
package/ti-gfx/ti-gfx.mk new file +10 -0
+endef
+
+define TI_GFX_BUILD_KM_CMDS
+	$(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
+endef
+
+define TI_GFX_BUILD_DEMO_CMDS
+	$(foreach demo, $(TI_GFX_DEMOS), \
+		cd $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC); \
+		$(TARGET_MAKE_ENV) $(MAKE1) $(TI_GFX_DEMO_MAKE_OPTS) all
	$(MAKE1) -C $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC)

will avoid the need for the cd.

package/ti-gfx/ti-gfx.mk line 126

Quoted 9 lines
package/ti-gfx/ti-gfx.mk new file +9 -0
+	)
+endef
+
+define TI_GFX_BUILD_CMDS
+	$(TI_GFX_BUILD_KM_CMDS)
+	$(if $(BR2_PACKAGE_TI_GFX_DEMOS),
+		$(TI_GFX_BUILD_DEMO_CMDS)
+	)
+endef

I think I've said it before, but we generally do:

ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
define TI_GFX_BUILD_DEMO_CMDS

	...

endef
endif

define TI_GFX_BUILD_CMDS

	...
	$(TI_GFX_BUILD_DEMO_CMDS)

endef

Quoted 20 lines
package/ti-gfx/ti-gfx.mk new file +20 -0
+
+define TI_GFX_INSTALL_STAGING_CMDS
+	$(foreach incdir,$(TI_GFX_HDR_DIRS),
+		$(INSTALL) -d $(STAGING_DIR)/usr/include/$(notdir $(incdir)); \
+		$(INSTALL) -D -m 0644 $(@D)/include/$(incdir)/*.h \
+			$(STAGING_DIR)/usr/include/$(notdir $(incdir))/
+	)
+	$(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/*.so $(STAGING_DIR)/usr/lib/
+	$(INSTALL) -D -m 0644 package/ti-gfx/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/
+	$(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc $(STAGING_DIR)/usr/lib/pkgconfig/
+endef
+
+define TI_GFX_INSTALL_KM_CMDS
+	$(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM install
+endef
+
+define TI_GFX_INSTALL_BINS_CMDS
+	$(foreach bin,$(TI_GFX_BIN),
+		$(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(bin) \
+			$(TARGET_DIR)/usr/bin/$(bin)

package/ti-gfx/ti-gfx.mk line 156

Quoted 10 lines
package/ti-gfx/ti-gfx.mk new file +10 -0
+	)
+	$(if $(BR2_PACKAGE_TI_GFX_DEBUG),
+		$(INSTALL) -D -m 0755 package/ti-gfx/esrev.sh \
+			$(TARGET_DIR)/usr/bin/esrev)
+endef
+
+define TI_GFX_INSTALL_LIBS_CMDS
+	# create symlinks and install libraries.  these libraries do not have a 
+	# SONAME defined; therefore, they will not be automatically renamed and 
+	# must be renamed manually.

I still don't understand this "automatically renamed" comment here.

Quoted 23 lines
package/ti-gfx/ti-gfx.mk new file +23 -0
+	$(foreach lib,$(TI_GFX_LIBS),
+		$(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
+			$(TARGET_DIR)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
+		ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
+			$(TARGET_DIR)/usr/lib/$(lib).so
+	)
+	# libs use the following file for configuration.
+	$(INSTALL) -D -m 0644 package/ti-gfx/powervr.ini \
+		$(TARGET_DIR)/etc/powervr.ini
+endef
+
+ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
+define TI_GFX_INSTALL_DEMOS_CMDS
+	$(foreach demo,$(TI_GFX_DEMOS),
+		$(INSTALL) -D -m 0755 \
+		$(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_BIN_LOC)/OGLES2$(demo) \
+		$(TARGET_DIR)/usr/bin/OGLES2$(demo)
+	)
+endef
+endif
+
+define TI_GFX_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 0755 package/ti-gfx/S80ti-gfx \

package/ti-gfx/ti-gfx.mk line 189

Quoted 10 lines
package/ti-gfx/ti-gfx.mk new file +10 -0
+		$(TARGET_DIR)/etc/init.d/S80ti-gfx
+endef
+
+define TI_GFX_INSTALL_TARGET_CMDS
+	$(TI_GFX_INSTALL_KM_CMDS)
+	$(TI_GFX_INSTALL_BINS_CMDS)
+	$(TI_GFX_INSTALL_LIBS_CMDS)
+	$(if $(BR2_PACKAGE_TI_GFX_DEMOS),
+		$(TI_GFX_INSTALL_DEMOS_CMDS)
+	)

Same comment as above for demo build, especially since TI_GFX_INSTALL_DEMOS_CMDS is not defined when BR2_PACKAGE_TI_GFX_DEMOS is not enabled.

package/ti-gfx/ti-gfx.mk line 192

Quoted 3 lines
package/ti-gfx/ti-gfx.mk new file +3 -0
+endef
+
+$(eval $(generic-package))

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#3 lore raw

PATCH v4 1/2 ti-gfx: add new package

Thomas,

Quoted 6 lines

When a comment like this a shown, the package option is not visible, so you must mention the package name in the comment, otherwise it's impossible for the user to understand what the comment is about. So it should be:

comment "ti-gfx requires ..."

Will fix.

Quoted 14 lines

package/ti-gfx/ti-gfx.mk line 107

Quoted 13 lines
package/ti-gfx/ti-gfx.mk new file +13 -0
+define TI_GFX_CONFIGURE_CMDS
+     $(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
+             mv -f $(@D)/$(TI_GFX_BIN_PATH)/libEGL_eglimage.so \
+                     $(@D)/$(TI_GFX_BIN_PATH)/libEGL.so; \
+             mv -f $(@D)/$(TI_GFX_BIN_PATH)/libGLES_CM_eglimage.so \
+                     $(@D)/$(TI_GFX_BIN_PATH)/libGLES_CM.so; \
+             mv -f $(@D)/$(TI_GFX_BIN_PATH)/libGLESv2_eglimage.so \
+                $(@D)/$(TI_GFX_BIN_PATH)/libGLESv2.so; \
+             mv -f $(@D)/$(TI_GFX_BIN_PATH)/libglslcompiler_eglimage.so \
+                     $(@D)/$(TI_GFX_BIN_PATH)/libglslcompiler.so; \
+             mv -f $(@D)/$(TI_GFX_BIN_PATH)/libIMGegl_eglimage.so \
+                     $(@D)/$(TI_GFX_BIN_PATH)/libIMGegl.so;
+     )
Quoted 1 line

This seems not really nice to do, it should be handled at install time.

Will fix.

Quoted 13 lines

package/ti-gfx/ti-gfx.mk line 117

Quoted 10 lines
package/ti-gfx/ti-gfx.mk new file +10 -0
+endef
+
+define TI_GFX_BUILD_KM_CMDS
+     $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
+endef
+
+define TI_GFX_BUILD_DEMO_CMDS
+     $(foreach demo, $(TI_GFX_DEMOS), \
+             cd $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC); \
+             $(TARGET_MAKE_ENV) $(MAKE1) $(TI_GFX_DEMO_MAKE_OPTS) all
        $(MAKE1) -C $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC)
Quoted 1 line

will avoid the need for the cd.

Will fix.

Quoted 14 lines

package/ti-gfx/ti-gfx.mk line 126

Quoted 9 lines
package/ti-gfx/ti-gfx.mk new file +9 -0
+     )
+endef
+
+define TI_GFX_BUILD_CMDS
+     $(TI_GFX_BUILD_KM_CMDS)
+     $(if $(BR2_PACKAGE_TI_GFX_DEMOS),
+             $(TI_GFX_BUILD_DEMO_CMDS)
+     )
+endef

I think I've said it before, but we generally do:

ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
define TI_GFX_BUILD_DEMO_CMDS

Quoted 8 lines
        ...

endef
endif

define TI_GFX_BUILD_CMDS

        ...
        $(TI_GFX_BUILD_DEMO_CMDS)

endef

Ok I think I understand this better now. Will fix.

Quoted 24 lines
Quoted 24 lines
package/ti-gfx/ti-gfx.mk new file +24 -0
+
+define TI_GFX_INSTALL_STAGING_CMDS
+     $(foreach incdir,$(TI_GFX_HDR_DIRS),
+             $(INSTALL) -d $(STAGING_DIR)/usr/include/$(notdir $(incdir)); \
+             $(INSTALL) -D -m 0644 $(@D)/include/$(incdir)/*.h \
+                     $(STAGING_DIR)/usr/include/$(notdir $(incdir))/
+     )
+     $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/*.so $(STAGING_DIR)/usr/lib/
+     $(INSTALL) -D -m 0644 package/ti-gfx/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/
+     $(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc $(STAGING_DIR)/usr/lib/pkgconfig/
+endef
+
+define TI_GFX_INSTALL_KM_CMDS
+     $(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM install
+endef
+
+define TI_GFX_INSTALL_BINS_CMDS
+     $(foreach bin,$(TI_GFX_BIN),
+             $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(bin) \
+                     $(TARGET_DIR)/usr/bin/$(bin)
+     )
+     $(if $(BR2_PACKAGE_TI_GFX_DEBUG),
+             $(INSTALL) -D -m 0755 package/ti-gfx/esrev.sh \
+                     $(TARGET_DIR)/usr/bin/esrev)
Quoted 8 lines

package/ti-gfx/ti-gfx.mk line 156

Quoted 6 lines
package/ti-gfx/ti-gfx.mk new file +6 -0
+endef
+
+define TI_GFX_INSTALL_LIBS_CMDS
+     # create symlinks and install libraries.  these libraries do not have a
+     # SONAME defined; therefore, they will not be automatically renamed and
+     # must be renamed manually.

I still don't understand this "automatically renamed" comment here.

i remember hearing that in some rootfs fixup, the libraries are renamed with symlinks according to the SONAME. However, I can't find it in the code so maybe this was just bad information. I'll remove the comment.

Quoted 29 lines
Quoted 29 lines
package/ti-gfx/ti-gfx.mk new file +29 -0
+     $(foreach lib,$(TI_GFX_LIBS),
+             $(INSTALL) -D -m 0755 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
+                     $(TARGET_DIR)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
+             ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
+                     $(TARGET_DIR)/usr/lib/$(lib).so
+     )
+     # libs use the following file for configuration.
+     $(INSTALL) -D -m 0644 package/ti-gfx/powervr.ini \
+             $(TARGET_DIR)/etc/powervr.ini
+endef
+
+ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
+define TI_GFX_INSTALL_DEMOS_CMDS
+     $(foreach demo,$(TI_GFX_DEMOS),
+             $(INSTALL) -D -m 0755 \
+             $(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_BIN_LOC)/OGLES2$(demo) \
+             $(TARGET_DIR)/usr/bin/OGLES2$(demo)
+     )
+endef
+endif
+
+define TI_GFX_INSTALL_INIT_SYSV
+     $(INSTALL) -D -m 0755 package/ti-gfx/S80ti-gfx \
+             $(TARGET_DIR)/etc/init.d/S80ti-gfx
+endef
+
+define TI_GFX_INSTALL_TARGET_CMDS
+     $(TI_GFX_INSTALL_KM_CMDS)
+     $(TI_GFX_INSTALL_BINS_CMDS)
Quoted 8 lines

package/ti-gfx/ti-gfx.mk line 189

Quoted 4 lines
package/ti-gfx/ti-gfx.mk new file +4 -0
+     $(TI_GFX_INSTALL_LIBS_CMDS)
+     $(if $(BR2_PACKAGE_TI_GFX_DEMOS),
+             $(TI_GFX_INSTALL_DEMOS_CMDS)
+     )

Same comment as above for demo build, especially since TI_GFX_INSTALL_DEMOS_CMDS is not defined when BR2_PACKAGE_TI_GFX_DEMOS is not enabled.

Wil fix.

Quoted 6 lines

package/ti-gfx/ti-gfx.mk line 192

Quoted 3 lines
package/ti-gfx/ti-gfx.mk new file +3 -0
+endef
+
+$(eval $(generic-package))

Thanks!

Quoted 6 lines

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

--
Spenser Gilliland
Computer Engineer
Doctoral Candidate

#4 lore raw

PATCH v4 1/2 ti-gfx: add new package

Spenser, All,

On 2013-07-11 11:07 -0500, Spenser Gilliland spake thusly:
[--SNIP--]

Quoted 10 lines
Quoted 6 lines

package/ti-gfx/ti-gfx.mk line 156

Quoted 4 lines
package/ti-gfx/ti-gfx.mk new file +4 -0
+define TI_GFX_INSTALL_LIBS_CMDS
+     # create symlinks and install libraries.  these libraries do not have a
+     # SONAME defined; therefore, they will not be automatically renamed and
+     # must be renamed manually.

I still don't understand this "automatically renamed" comment here.

i remember hearing that in some rootfs fixup, the libraries are renamed with symlinks according to the SONAME. However, I can't find it in the code so maybe this was just bad information.

No, that's not done.

I suggested the idea that, by renaming the libraries to their SONAME, we could get rid of the symlinks (since we do not need them at runtime), and thus reduce the number of inodes needed (since symlinks take one inode each), and thus reduce the filesystem size.

But the gain would be small, and almost un-noticeable on large filesystem with biggish libs (Qt, Xorg...), so doing it in Buildroot has been deemed too complex given the small size it would gain.

If anyone wants to do it, it would be fit for a post-build script.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'