################################################################################ # # mesa3d # ################################################################################ # When updating the version, please also update mesa3d-headers MESA3D_VERSION = 20.0.0 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 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_I915) += i915 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS) += iris 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_R300) += r300 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_V3D) += v3d 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 MESA3D_PLATFORMS = surfaceless ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) MESA3D_PLATFORMS += drm else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D),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_IRIS),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_NEEDS_X11),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_GBM),y) MESA3D_CONF_OPTS += \ -Dgbm=true else MESA3D_CONF_OPTS += \ -Dgbm=false endif ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) MESA3D_PROVIDES += libegl MESA3D_CONF_OPTS += \ -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 ifeq ($(BR2_PACKAGE_ZSTD),y) MESA3D_CONF_OPTS += -Dzstd=true MESA3D_DEPENDENCIES += zstd else MESA3D_CONF_OPTS += -Dzstd=false endif $(eval $(meson-package))