1################################################################################ 2# 3# mesa3d 4# 5################################################################################ 6 7# When updating the version, please also update mesa3d-headers 8MESA3D_VERSION = 21.1.8 9MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz 10MESA3D_SITE = https://archive.mesa3d.org 11MESA3D_LICENSE = MIT, SGI, Khronos 12MESA3D_LICENSE_FILES = docs/license.rst 13MESA3D_CPE_ID_VENDOR = mesa3d 14MESA3D_CPE_ID_PRODUCT = mesa 15 16MESA3D_INSTALL_STAGING = YES 17 18MESA3D_PROVIDES = 19 20MESA3D_DEPENDENCIES = \ 21 host-bison \ 22 host-flex \ 23 host-python3-mako \ 24 expat \ 25 libdrm \ 26 zlib 27 28MESA3D_CONF_OPTS = \ 29 -Dgallium-omx=disabled \ 30 -Dpower8=disabled 31 32# Codesourcery ARM 2014.05 fail to link libmesa_dri_drivers.so with --as-needed linker 33# flag due to a linker bug between binutils 2.24 and 2.25 (2.24.51.20140217). 34ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM),y) 35MESA3D_CONF_OPTS += -Db_asneeded=false 36endif 37 38ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y) 39MESA3D_DEPENDENCIES += host-llvm llvm 40MESA3D_MESON_EXTRA_BINARIES += llvm-config='$(STAGING_DIR)/usr/bin/llvm-config' 41MESA3D_CONF_OPTS += -Dllvm=enabled 42else 43# Avoid automatic search of llvm-config 44MESA3D_CONF_OPTS += -Dllvm=disabled 45endif 46 47# Disable opencl-icd: OpenCL lib will be named libOpenCL instead of 48# libMesaOpenCL and CL headers are installed 49ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y) 50MESA3D_PROVIDES += libopencl 51MESA3D_DEPENDENCIES += clang libclc 52MESA3D_CONF_OPTS += -Dgallium-opencl=standalone 53else 54MESA3D_CONF_OPTS += -Dgallium-opencl=disabled 55endif 56 57ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y) 58MESA3D_DEPENDENCIES += elfutils 59endif 60 61ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y) 62# Disable-mangling not yet supported by meson build system. 63# glx: 64# dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi 65# xlib : xlib conflicts with any dri driver 66# 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. 67MESA3D_CONF_OPTS += -Dglx=dri 68ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_XA),y) 69MESA3D_CONF_OPTS += -Dgallium-xa=enabled 70else 71MESA3D_CONF_OPTS += -Dgallium-xa=disabled 72endif 73else 74MESA3D_CONF_OPTS += \ 75 -Dglx=disabled \ 76 -Dgallium-xa=disabled 77endif 78 79ifeq ($(BR2_ARM_CPU_HAS_NEON),y) 80MESA3D_CONF_OPTS += -Dgallium-vc4-neon=auto 81else 82MESA3D_CONF_OPTS += -Dgallium-vc4-neon=disabled 83endif 84 85# Drivers 86 87#Gallium Drivers 88MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV) += etnaviv 89MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO) += freedreno 90MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915) += i915 91MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS) += iris 92MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA) += lima 93MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU) += nouveau 94MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST) += panfrost 95MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300) += r300 96MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) += r600 97MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) += radeonsi 98MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA) += svga 99MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST) += swrast 100MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA) += tegra 101MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D) += v3d 102MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4) += vc4 103MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL) += virgl 104# DRI Drivers 105MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I915) += i915 106MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965 107MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau 108MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100 109# Vulkan Drivers 110MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL) += intel 111 112ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),) 113MESA3D_CONF_OPTS += \ 114 -Dgallium-drivers= \ 115 -Dgallium-extra-hud=false 116else 117MESA3D_CONF_OPTS += \ 118 -Dshared-glapi=enabled \ 119 -Dgallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) \ 120 -Dgallium-extra-hud=true 121endif 122 123ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) 124MESA3D_CONF_OPTS += \ 125 -Ddri-drivers= -Ddri3=disabled 126else 127ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y) 128MESA3D_DEPENDENCIES += xlib_libxshmfence 129MESA3D_CONF_OPTS += -Ddri3=enabled 130else 131MESA3D_CONF_OPTS += -Ddri3=disabled 132endif 133MESA3D_CONF_OPTS += \ 134 -Dshared-glapi=enabled \ 135 -Dglx-direct=true \ 136 -Ddri-drivers=$(subst $(space),$(comma),$(MESA3D_DRI_DRIVERS-y)) 137endif 138 139ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),) 140MESA3D_CONF_OPTS += \ 141 -Dvulkan-drivers= 142else 143MESA3D_DEPENDENCIES += xlib_libxshmfence 144MESA3D_CONF_OPTS += \ 145 -Ddri3=enabled \ 146 -Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y)) 147endif 148 149# APIs 150 151ifeq ($(BR2_PACKAGE_MESA3D_OSMESA_GALLIUM),y) 152MESA3D_CONF_OPTS += -Dosmesa=true 153else 154MESA3D_CONF_OPTS += -Dosmesa=false 155endif 156 157# Always enable OpenGL: 158# - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled. 159MESA3D_CONF_OPTS += -Dopengl=true 160 161# libva and mesa3d have a circular dependency 162# we do not need libva support in mesa3d, therefore disable this option 163MESA3D_CONF_OPTS += -Dgallium-va=disabled 164 165# libGL is only provided for a full xorg stack 166ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y) 167MESA3D_PROVIDES += libgl 168else 169define MESA3D_REMOVE_OPENGL_HEADERS 170 rm -rf $(STAGING_DIR)/usr/include/GL/ 171endef 172 173MESA3D_POST_INSTALL_STAGING_HOOKS += MESA3D_REMOVE_OPENGL_HEADERS 174endif 175 176ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_X11),y) 177MESA3D_DEPENDENCIES += \ 178 xlib_libX11 \ 179 xlib_libXext \ 180 xlib_libXdamage \ 181 xlib_libXfixes \ 182 xlib_libXrandr \ 183 xlib_libXxf86vm \ 184 xorgproto \ 185 libxcb 186MESA3D_PLATFORMS += x11 187endif 188ifeq ($(BR2_PACKAGE_WAYLAND),y) 189MESA3D_DEPENDENCIES += wayland wayland-protocols 190MESA3D_PLATFORMS += wayland 191endif 192 193MESA3D_CONF_OPTS += \ 194 -Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS)) 195 196ifeq ($(BR2_PACKAGE_MESA3D_GBM),y) 197MESA3D_CONF_OPTS += \ 198 -Dgbm=enabled 199else 200MESA3D_CONF_OPTS += \ 201 -Dgbm=disabled 202endif 203 204ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) 205MESA3D_PROVIDES += libegl 206MESA3D_CONF_OPTS += \ 207 -Degl=enabled 208else 209MESA3D_CONF_OPTS += \ 210 -Degl=disabled 211endif 212 213ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y) 214MESA3D_PROVIDES += libgles 215MESA3D_CONF_OPTS += -Dgles1=enabled -Dgles2=enabled 216else 217MESA3D_CONF_OPTS += -Dgles1=disabled -Dgles2=disabled 218endif 219 220ifeq ($(BR2_PACKAGE_MESA3D_XVMC),y) 221MESA3D_DEPENDENCIES += xlib_libXv xlib_libXvMC 222MESA3D_CONF_OPTS += -Dgallium-xvmc=enabled 223else 224MESA3D_CONF_OPTS += -Dgallium-xvmc=disabled 225endif 226 227ifeq ($(BR2_PACKAGE_VALGRIND),y) 228MESA3D_CONF_OPTS += -Dvalgrind=enabled 229MESA3D_DEPENDENCIES += valgrind 230else 231MESA3D_CONF_OPTS += -Dvalgrind=disabled 232endif 233 234ifeq ($(BR2_PACKAGE_LIBUNWIND),y) 235MESA3D_CONF_OPTS += -Dlibunwind=enabled 236MESA3D_DEPENDENCIES += libunwind 237else 238MESA3D_CONF_OPTS += -Dlibunwind=disabled 239endif 240 241ifeq ($(BR2_PACKAGE_MESA3D_VDPAU),y) 242MESA3D_DEPENDENCIES += libvdpau 243MESA3D_CONF_OPTS += -Dgallium-vdpau=enabled 244else 245MESA3D_CONF_OPTS += -Dgallium-vdpau=disabled 246endif 247 248ifeq ($(BR2_PACKAGE_LM_SENSORS),y) 249MESA3D_CONF_OPTS += -Dlmsensors=enabled 250MESA3D_DEPENDENCIES += lm-sensors 251else 252MESA3D_CONF_OPTS += -Dlmsensors=disabled 253endif 254 255ifeq ($(BR2_PACKAGE_ZSTD),y) 256MESA3D_CONF_OPTS += -Dzstd=enabled 257MESA3D_DEPENDENCIES += zstd 258else 259MESA3D_CONF_OPTS += -Dzstd=disabled 260endif 261 262MESA3D_CFLAGS = $(TARGET_CFLAGS) 263 264# m68k needs 32-bit offsets in switch tables to build 265ifeq ($(BR2_m68k),y) 266MESA3D_CFLAGS += -mlong-jump-table-offsets 267endif 268 269$(eval $(meson-package)) 270