kumquat-buildroot/package/ti-gfx/ti-gfx.mk
Yann E. MORIN 727bae0245 packages: ensure linux supports modules even when not using kernel-module
Some packages build kernel modules without using the kernel-module infra
(because they use custom build systems); they do not automatically get
the kernel to support modules which is ensured when using the infra.

It must be done manually for all those packages, whenever they are
enabled.

Note: the nvidia-driver case does not need the ifeq-block other packages
use, because it is already enclosed in a more stringent ifeq-block.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Noé Rubinstein <nrubinstein@aldebaran.com>
Cc: Jan Viktorin <viktorin@rehivetech.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Jan Viktorin <viktorin@rehivetech.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-09-04 13:16:58 +02:00

219 lines
6.2 KiB
Makefile

################################################################################
#
# ti-gfx
#
################################################################################
# SDK 5_01_01_01 only support EABIhf so we downgrade to 5_01_00_01 if EABIhf is
# not available.
ifeq ($(BR2_ARM_EABIHF),y)
TI_GFX_VERSION = 5_01_01_02
TI_GFX_SOURCE = Graphics_SDK_setuplinux_hardfp_$(TI_GFX_VERSION).bin
else
TI_GFX_VERSION = 5_01_00_01
TI_GFX_SOURCE = Graphics_SDK_setuplinux_softfp_$(TI_GFX_VERSION).bin
endif
TI_GFX_SO_VERSION = 1.10.2359475
TI_GFX_SITE = http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/$(TI_GFX_VERSION)/exports
TI_GFX_LICENSE = Technology / Software Publicly Available
TI_GFX_LICENSE_FILES = TSPA.txt
TI_GFX_INSTALL_STAGING = YES
TI_GFX_DEPENDENCIES = linux
# We're building a kernel module without using the kernel-module infra,
# so we need to tell we want module support in the kernel
ifeq ($(BR2_PACKAGE_TI_GFX),y)
LINUX_NEEDS_MODULES = y
endif
TI_GFX_PROVIDES = libegl libgles powervr
ifeq ($(BR2_PACKAGE_TI_GFX_ES3),y)
TI_GFX_OMAPES = 3.x
TI_GFX_PLATFORM = omap3
endif
ifeq ($(BR2_PACKAGE_TI_GFX_ES5),y)
TI_GFX_OMAPES = 5.x
TI_GFX_PLATFORM = omap3630
endif
ifeq ($(BR2_PACKAGE_TI_GFX_ES6),y)
TI_GFX_OMAPES = 6.x
TI_GFX_PLATFORM = ti81xx
endif
ifeq ($(BR2_PACKAGE_TI_GFX_ES8),y)
TI_GFX_OMAPES = 8.x
TI_GFX_PLATFORM = ti335x
endif
ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
TI_GFX_DEBUG_LIB = dbg
TI_GFX_DEBUG_KM = debug
else
TI_GFX_DEBUG_LIB = rel
TI_GFX_DEBUG_KM = release
endif
TI_GFX_BIN_PATH = gfx_$(TI_GFX_DEBUG_LIB)_es$(TI_GFX_OMAPES)
TI_GFX_KM_MAKE_OPTS = \
$(LINUX_MAKE_FLAGS) \
BUILD=$(TI_GFX_DEBUG_KM) \
TI_PLATFORM=$(TI_GFX_PLATFORM) \
OMAPES=$(TI_GFX_OMAPES) \
SUPPORT_XORG=0 \
KERNELDIR=$(LINUX_DIR)
TI_GFX_DEMO_MAKE_OPTS = \
PLATFORM=LinuxARMV7 \
X11BUILD=0 \
PLAT_CC="$(TARGET_CC)" \
PLAT_CPP="$(TARGET_CXX)" \
PLAT_AR="$(TARGET_AR)"
# The only required binary is pvrsrvctl all others are optional
TI_GFX_BIN = pvrsrvctl
ifeq ($(BR2_PACKAGE_TI_GFX_DEBUG),y)
TI_GFX_BIN += \
eglinfo ews_server ews_server_es2 ews_test_gles1 ews_test_gles2 \
ews_test_swrender gles1test1 gles2test1 pvr2d_test services_test \
sgx_blit_test sgx_clipblit_test sgx_flip_test sgx_init_test \
sgx_render_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest
endif
TI_GFX_LIBS = \
libews libpvr2d libpvrEWS_WSEGL libpvrPVR2D_BLITWSEGL libpvrPVR2D_DRIWSEGL \
libpvrPVR2D_FLIPWSEGL libpvrPVR2D_FRONTWSEGL libpvrPVR2D_LINUXFBWSEGL \
libPVRScopeServices libsrv_init libsrv_um libusc pvr_drv
TI_GFX_EGLIMAGE_LIBS = \
libEGL libGLES_CM libGLESv2 libglslcompiler libIMGegl
TI_GFX_DEMOS = ChameleonMan MagicLantern
TI_GFX_DEMOS_LOC = GFX_Linux_SDK/OGLES2/SDKPackage/Demos
TI_GFX_DEMOS_MAKE_LOC = OGLES2/Build/LinuxGeneric
TI_GFX_DEMOS_BIN_LOC = OGLES2/Build/LinuxARMV7/ReleaseRaw/
TI_GFX_HDR_DIRS = OGLES2/EGL OGLES2/EWS OGLES2/GLES2 OGLES2/KHR \
OGLES/GLES bufferclass_ti/ pvr2d/ wsegl/
define TI_GFX_EXTRACT_CMDS
chmod +x $(DL_DIR)/$(TI_GFX_SOURCE)
printf "Y\nY\n qY\n\n" | $(DL_DIR)/$(TI_GFX_SOURCE) \
--prefix $(@D) \
--mode console
endef
define TI_GFX_BUILD_KM_CMDS
$(MAKE) $(TI_GFX_KM_MAKE_OPTS) -C $(@D)/GFX_Linux_KM all
endef
ifeq ($(BR2_PACKAGE_TI_GFX_DEMOS),y)
define TI_GFX_BUILD_DEMO_CMDS
$(foreach demo, $(TI_GFX_DEMOS), \
$(TARGET_MAKE_ENV) $(MAKE1) -C \
$(@D)/$(TI_GFX_DEMOS_LOC)/$(demo)/$(TI_GFX_DEMOS_MAKE_LOC) \
$(TI_GFX_DEMO_MAKE_OPTS) all
)
endef
endif
define TI_GFX_BUILD_CMDS
$(TI_GFX_BUILD_KM_CMDS)
$(TI_GFX_BUILD_DEMO_CMDS)
endef
# Install libs
# argument 1 is the location to install to (e.g. STAGING_DIR, TARGET_DIR)
define TI_GFX_INSTALL_LIBS
$(foreach lib,$(TI_GFX_LIBS),
$(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
$(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION); \
ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
$(1)/usr/lib/$(lib).so
)
$(foreach lib,$(TI_GFX_EGLIMAGE_LIBS),
$(if $(BR2_PACKAGE_TI_GFX_EGLIMAGE),
$(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib)_eglimage.so \
$(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
,
$(INSTALL) -D -m 0644 $(@D)/$(TI_GFX_BIN_PATH)/$(lib).so \
$(1)/usr/lib/$(lib).so.$(TI_GFX_SO_VERSION);
)
ln -sf $(lib).so.$(TI_GFX_SO_VERSION) \
$(1)/usr/lib/$(lib).so
)
endef
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))/
)
$(call TI_GFX_INSTALL_LIBS,$(STAGING_DIR))
$(INSTALL) -D -m 0644 package/ti-gfx/egl.pc \
$(STAGING_DIR)/usr/lib/pkgconfig/egl.pc
$(INSTALL) -D -m 0644 package/ti-gfx/glesv2.pc \
$(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc
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/sbin/esrev
)
endef
define TI_GFX_INSTALL_CONF_CMDS
# 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_INIT_SYSTEMD
$(INSTALL) -D -m 755 package/ti-gfx/S80ti-gfx \
$(TARGET_DIR)/usr/lib/systemd/scripts/ti-gfx
$(INSTALL) -D -m 644 package/ti-gfx/ti-gfx.service \
$(TARGET_DIR)/usr/lib/systemd/system/ti-gfx.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -sf ../../../../usr/lib/systemd/system/ti-gfx.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/ti-gfx.service
endef
define TI_GFX_INSTALL_TARGET_CMDS
$(TI_GFX_INSTALL_KM_CMDS)
$(TI_GFX_INSTALL_BINS_CMDS)
$(call TI_GFX_INSTALL_LIBS,$(TARGET_DIR))
$(TI_GFX_INSTALL_CONF_CMDS)
$(TI_GFX_INSTALL_DEMOS_CMDS)
endef
$(eval $(generic-package))