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