diff options
Diffstat (limited to 'package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk')
-rw-r--r-- | package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk new file mode 100644 index 000000000..f988d252a --- /dev/null +++ b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk @@ -0,0 +1,79 @@ +############################################################# +# +# 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_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 +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)) |