| ################################################################################ |
| # |
| # gpu-viv-bin-mx6q |
| # |
| ################################################################################ |
| |
| GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION) |
| GPU_VIV_BIN_MX6Q_SITE = $(FREESCALE_IMX_MIRROR_SITE) |
| GPU_VIV_BIN_MX6Q_SOURCE = gpu-viv-bin-mx6q-$(GPU_VIV_BIN_MX6Q_VERSION).bin |
| |
| GPU_VIV_BIN_MX6Q_INSTALL_STAGING = YES |
| |
| GPU_VIV_BIN_MX6Q_LICENSE = Freescale Semiconductor Software License Agreement |
| |
| # No license file is included in the archive; we could extract it from |
| # the self-extractor, but that's just too much effort. |
| # This is a legal minefield: the EULA specifies that |
| # the Board Support Package includes software and hardware (sic!) |
| # for which a separate license is needed... |
| GPU_VIV_BIN_MX6Q_REDISTRIBUTE = NO |
| |
| # DirectFB is not supported (wrong version) |
| ifeq ($(BR2_PACKAGE_XORG7),y) |
| GPU_VIV_BIN_MX6Q_DEPENDENCIES = xlib_libXdamage xlib_libXext |
| GPU_VIV_BIN_MX6Q_LIB_TARGET = x11 |
| else |
| GPU_VIV_BIN_MX6Q_LIB_TARGET = fb |
| endif |
| |
| # The archive is a shell-self-extractor of a bzipped tar. It happens |
| # to extract in the correct directory (gpu-viv-bin-mx6q-x.y.z) |
| # The --force makes sure it doesn't fail if the source dir already exists. |
| # The --auto-accept skips the license check - not needed for us |
| # because we have legal-info. |
| define GPU_VIV_BIN_MX6Q_EXTRACT_CMDS |
| (cd $(BUILD_DIR); \ |
| sh $(DL_DIR)/$(GPU_VIV_BIN_MX6Q_SOURCE) --force --auto-accept) |
| endef |
| |
| # Instead of building, we fix up the inconsistencies that exist |
| # in the upstream archive here. |
| # Make sure these commands are idempotent. |
| define GPU_VIV_BIN_MX6Q_BUILD_CMDS |
| $(SED) 's/defined(LINUX)/defined(__linux__)/g' $(@D)/usr/include/*/*.h |
| for lib in EGL GAL VIVANTE; do \ |
| ln -sf lib$${lib}-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so \ |
| $(@D)/usr/lib/lib$${lib}.so; \ |
| done |
| ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so.1 |
| ln -sf libGL.so.1.2 $(@D)/usr/lib/libGL.so |
| endef |
| |
| define GPU_VIV_BIN_MX6Q_INSTALL_STAGING_CMDS |
| cp -r $(@D)/usr/* $(STAGING_DIR)/usr |
| for lib in egl glesv2 vg; do \ |
| $(INSTALL) -m 0644 -D \ |
| package/freescale-imx/gpu-viv-bin-mx6q/$${lib}.pc \ |
| $(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \ |
| if [ "$(GPU_VIV_BIN_MX6Q_LIB_TARGET)" != "fb" ]; then \ |
| $(SED) "s/-DEGL_API_FB=1//" \ |
| $(STAGING_DIR)/usr/lib/pkgconfig/$${lib}.pc; \ |
| fi; \ |
| done |
| endef |
| |
| ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q_EXAMPLES),y) |
| define GPU_VIV_BIN_MX6Q_INSTALL_EXAMPLES |
| mkdir -p $(TARGET_DIR)/usr/share/examples/ |
| cp -r $(@D)/opt/* $(TARGET_DIR)/usr/share/examples/ |
| endef |
| endif |
| |
| # On the target, remove the unused libraries. |
| # Note that this is _required_, else ldconfig may create symlinks |
| # to the wrong library |
| define GPU_VIV_BIN_MX6Q_INSTALL_TARGET_CMDS |
| $(GPU_VIV_BIN_MX6Q_INSTALL_EXAMPLES) |
| cp -a $(@D)/usr/lib $(TARGET_DIR)/usr |
| for lib in EGL GAL VIVANTE; do \ |
| for f in $(TARGET_DIR)/usr/lib/lib$${lib}-*.so; do \ |
| case $$f in \ |
| *-$(GPU_VIV_BIN_MX6Q_LIB_TARGET).so) : ;; \ |
| *) $(RM) $$f ;; \ |
| esac; \ |
| done; \ |
| done |
| endef |
| |
| $(eval $(generic-package)) |