02beed6cab
From [1] "Prior to xvmc 1.0.12 libxvmc incorrectly required libxv, but that was fixed. This results in compilation failures for the gallium xvmc tracker and tools. This patch fixes that by explicitly linking to libxv." Add xlib_libXv dependency to mesa3d when BR2_PACKAGE_MESA3D_XVMC is set. [1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=e456a053c3d6ec4f3d4581edcad05c72dfdaa407 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Bernd Kuhls <bernd.kuhls@t-online.de> Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
248 lines
7.3 KiB
Makefile
248 lines
7.3 KiB
Makefile
################################################################################
|
|
#
|
|
# mesa3d
|
|
#
|
|
################################################################################
|
|
|
|
# When updating the version, please also update mesa3d-headers
|
|
MESA3D_VERSION = 19.2.2
|
|
MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz
|
|
MESA3D_SITE = https://mesa.freedesktop.org/archive
|
|
MESA3D_LICENSE = MIT, SGI, Khronos
|
|
MESA3D_LICENSE_FILES = docs/license.html
|
|
# 0002-configure.ac-invert-order-for-wayland-scanner-check.patch
|
|
# 0003-set-LIBCLC_INCLUDEDIR.patch
|
|
MESA3D_AUTORECONF = YES
|
|
|
|
MESA3D_INSTALL_STAGING = YES
|
|
|
|
MESA3D_PROVIDES =
|
|
|
|
MESA3D_DEPENDENCIES = \
|
|
host-bison \
|
|
host-flex \
|
|
host-python3-mako \
|
|
expat \
|
|
libdrm \
|
|
zlib
|
|
|
|
MESA3D_CONF_OPTS = \
|
|
-Dgallium-omx=disabled \
|
|
-Dpower8=false \
|
|
-Dvalgrind=false
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y)
|
|
MESA3D_DEPENDENCIES += host-llvm llvm
|
|
MESA3D_MESON_EXTRA_BINARIES += llvm-config='$(STAGING_DIR)/usr/bin/llvm-config'
|
|
MESA3D_CONF_OPTS += -Dllvm=true
|
|
else
|
|
# Avoid automatic search of llvm-config
|
|
MESA3D_CONF_OPTS += -Dllvm=false
|
|
endif
|
|
|
|
# Disable opencl-icd: OpenCL lib will be named libOpenCL instead of
|
|
# libMesaOpenCL and CL headers are installed
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y)
|
|
MESA3D_PROVIDES += libopencl
|
|
MESA3D_DEPENDENCIES += clang libclc
|
|
MESA3D_CONF_OPTS += -Dgallium-opencl=standalone
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-opencl=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y)
|
|
MESA3D_DEPENDENCIES += elfutils
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y)
|
|
# Disable-mangling not yet supported by meson build system.
|
|
# glx:
|
|
# dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi
|
|
# xlib : xlib conflicts with any dri driver
|
|
# gallium-xlib : Gallium-xlib based GLX requires at least one gallium driver || Gallium-xlib based GLX requires softpipe or llvmpipe || gallium-xlib conflicts with any dri driver.
|
|
MESA3D_CONF_OPTS += -Dglx=dri
|
|
ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_XA),y)
|
|
MESA3D_CONF_OPTS += -Dgallium-xa=true
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-xa=false
|
|
endif
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Dglx=disabled \
|
|
-Dgallium-xa=false
|
|
endif
|
|
|
|
# Drivers
|
|
|
|
#Gallium Drivers
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV) += etnaviv
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO) += freedreno
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO) += kmsro
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA) += lima
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU) += nouveau
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST) += panfrost
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) += r600
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) += radeonsi
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA) += svga
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST) += swrast
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA) += tegra
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4) += vc4
|
|
MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL) += virgl
|
|
# DRI Drivers
|
|
MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST) += swrast
|
|
MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I915) += i915
|
|
MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965
|
|
MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau
|
|
MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
|
|
# Vulkan Drivers
|
|
MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL) += intel
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
|
|
MESA3D_CONF_OPTS += \
|
|
-Dgallium-drivers= \
|
|
-Dgallium-extra-hud=false
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Dshared-glapi=true \
|
|
-Dgallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) \
|
|
-Dgallium-extra-hud=true
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),)
|
|
MESA3D_CONF_OPTS += \
|
|
-Ddri-drivers= -Ddri3=false
|
|
else
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y)
|
|
MESA3D_DEPENDENCIES += xlib_libxshmfence
|
|
MESA3D_CONF_OPTS += -Ddri3=true
|
|
else
|
|
MESA3D_CONF_OPTS += -Ddri3=false
|
|
endif
|
|
MESA3D_CONF_OPTS += \
|
|
-Dshared-glapi=true \
|
|
-Dglx-direct=true \
|
|
-Ddri-drivers=$(subst $(space),$(comma),$(MESA3D_DRI_DRIVERS-y))
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
|
|
MESA3D_CONF_OPTS += \
|
|
-Dvulkan-drivers=
|
|
else
|
|
MESA3D_DEPENDENCIES += xlib_libxshmfence
|
|
MESA3D_CONF_OPTS += \
|
|
-Ddri3=true \
|
|
-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
|
|
endif
|
|
|
|
# APIs
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_CLASSIC),y)
|
|
MESA3D_CONF_OPTS += -Dosmesa=classic
|
|
else
|
|
MESA3D_CONF_OPTS += -Dosmesa=none
|
|
endif
|
|
|
|
# Always enable OpenGL:
|
|
# - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled.
|
|
MESA3D_CONF_OPTS += -Dopengl=true
|
|
|
|
# libva and mesa3d have a circular dependency
|
|
# we do not need libva support in mesa3d, therefore disable this option
|
|
MESA3D_CONF_OPTS += -Dgallium-va=false
|
|
|
|
# libGL is only provided for a full xorg stack
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y)
|
|
MESA3D_PROVIDES += libgl
|
|
else
|
|
define MESA3D_REMOVE_OPENGL_HEADERS
|
|
rm -rf $(STAGING_DIR)/usr/include/GL/
|
|
endef
|
|
|
|
MESA3D_POST_INSTALL_STAGING_HOOKS += MESA3D_REMOVE_OPENGL_HEADERS
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL),y)
|
|
MESA3D_PLATFORMS = drm
|
|
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI),y)
|
|
MESA3D_PLATFORMS = drm
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_WAYLAND),y)
|
|
MESA3D_DEPENDENCIES += wayland wayland-protocols
|
|
MESA3D_PLATFORMS += wayland
|
|
MESA3D_CONF_OPTS += -Dwayland-scanner-path=$(HOST_DIR)/bin/wayland-scanner
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y)
|
|
MESA3D_DEPENDENCIES += \
|
|
xlib_libX11 \
|
|
xlib_libXext \
|
|
xlib_libXdamage \
|
|
xlib_libXfixes \
|
|
xlib_libXrandr \
|
|
xlib_libXxf86vm \
|
|
xorgproto \
|
|
libxcb
|
|
MESA3D_PLATFORMS += x11
|
|
endif
|
|
|
|
MESA3D_CONF_OPTS += \
|
|
-Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS))
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
|
|
MESA3D_PROVIDES += libegl
|
|
MESA3D_CONF_OPTS += \
|
|
-Dgbm=true \
|
|
-Degl=true
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Degl=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
|
|
MESA3D_PROVIDES += libgles
|
|
MESA3D_CONF_OPTS += -Dgles1=true -Dgles2=true
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgles1=false -Dgles2=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_XVMC),y)
|
|
MESA3D_DEPENDENCIES += xlib_libXv xlib_libXvMC
|
|
MESA3D_CONF_OPTS += -Dgallium-xvmc=true
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-xvmc=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
|
|
MESA3D_CONF_OPTS += -Dlibunwind=true
|
|
MESA3D_DEPENDENCIES += libunwind
|
|
else
|
|
MESA3D_CONF_OPTS += -Dlibunwind=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_VDPAU),y)
|
|
MESA3D_DEPENDENCIES += libvdpau
|
|
MESA3D_CONF_OPTS += -Dgallium-vdpau=true
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-vdpau=false
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LM_SENSORS),y)
|
|
MESA3D_CONF_OPTS += -Dlmsensors=true
|
|
MESA3D_DEPENDENCIES += lm-sensors
|
|
else
|
|
MESA3D_CONF_OPTS += -Dlmsensors=false
|
|
endif
|
|
|
|
$(eval $(meson-package))
|