86150bd7a2
mesa3d should only need expat for a limited set of drivers. However, the condition in their meson.build is borked: required: not with_platform_android or with_any_broadcom or with_any_intel So, as soon as the platform is not android, expat is required. If it is not already present in the configuraiotn, then meson will try to be helpful and will try to download its own copy under the table: Run-time dependency expat found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency expat Downloading expat source from https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2 <urlopen error unknown url type: https> A fallback URL could be specified using source_fallback_url key in the wrap file ../O/build/mesa3d-20.3.3/meson.build:1366:2: ERROR: could not get https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2 is the internet available? Ideally, we would like to fix the condition in the meson.build, to drop the spurious and dubious condition on the android platform. However it is not totally obvious what the prupose was, and expat compiles quikly, so we just add expat as an unconditional mandatory dependency. Fixes: http://autobuild.buildroot.org/results/f71865771482b1d71d12e77767d236ca693785d5/ http://autobuild.buildroot.org/results/98290b9681a38b3be820017823a4a4196d474476/ .... Reported-by: Titouan Christophe <titouanchristophe@gmail.com> Signed-off-by: Fabio Estevam <festevam@gmail.com> [yann.morin.1998@free.fr: - make it a generic fix, not tied to freedreno, reported by Fabio - rewrite commit log to explain the root cause - also reported about virgl, by Titouan ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
263 lines
7.6 KiB
Makefile
263 lines
7.6 KiB
Makefile
################################################################################
|
|
#
|
|
# mesa3d
|
|
#
|
|
################################################################################
|
|
|
|
# When updating the version, please also update mesa3d-headers
|
|
MESA3D_VERSION = 20.3.3
|
|
MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz
|
|
MESA3D_SITE = https://mesa.freedesktop.org/archive
|
|
MESA3D_LICENSE = MIT, SGI, Khronos
|
|
MESA3D_LICENSE_FILES = docs/license.rst
|
|
|
|
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=disabled
|
|
|
|
# Codesourcery ARM 2014.05 fail to link libmesa_dri_drivers.so with --as-needed linker
|
|
# flag due to a linker bug between binutils 2.24 and 2.25 (2.24.51.20140217).
|
|
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM),y)
|
|
MESA3D_CONF_OPTS += -Db_asneeded=false
|
|
endif
|
|
|
|
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=enabled
|
|
else
|
|
# Avoid automatic search of llvm-config
|
|
MESA3D_CONF_OPTS += -Dllvm=disabled
|
|
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=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-xa=disabled
|
|
endif
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Dglx=disabled \
|
|
-Dgallium-xa=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
|
|
MESA3D_CONF_OPTS += -Dgallium-vc4-neon=auto
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-vc4-neon=disabled
|
|
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=enabled \
|
|
-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=disabled
|
|
else
|
|
ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y)
|
|
MESA3D_DEPENDENCIES += xlib_libxshmfence
|
|
MESA3D_CONF_OPTS += -Ddri3=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += -Ddri3=disabled
|
|
endif
|
|
MESA3D_CONF_OPTS += \
|
|
-Dshared-glapi=enabled \
|
|
-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=enabled \
|
|
-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=disabled
|
|
|
|
# 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_NEEDS_X11),y)
|
|
MESA3D_DEPENDENCIES += \
|
|
xlib_libX11 \
|
|
xlib_libXext \
|
|
xlib_libXdamage \
|
|
xlib_libXfixes \
|
|
xlib_libXrandr \
|
|
xlib_libXxf86vm \
|
|
xorgproto \
|
|
libxcb
|
|
MESA3D_PLATFORMS += x11
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_WAYLAND),y)
|
|
MESA3D_DEPENDENCIES += wayland wayland-protocols
|
|
MESA3D_PLATFORMS += wayland
|
|
endif
|
|
|
|
MESA3D_CONF_OPTS += \
|
|
-Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS))
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_GBM),y)
|
|
MESA3D_CONF_OPTS += \
|
|
-Dgbm=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Dgbm=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
|
|
MESA3D_PROVIDES += libegl
|
|
MESA3D_CONF_OPTS += \
|
|
-Degl=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += \
|
|
-Degl=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
|
|
MESA3D_PROVIDES += libgles
|
|
MESA3D_CONF_OPTS += -Dgles1=enabled -Dgles2=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgles1=disabled -Dgles2=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_XVMC),y)
|
|
MESA3D_DEPENDENCIES += xlib_libXv xlib_libXvMC
|
|
MESA3D_CONF_OPTS += -Dgallium-xvmc=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-xvmc=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_VALGRIND),y)
|
|
MESA3D_CONF_OPTS += -Dvalgrind=enabled
|
|
MESA3D_DEPENDENCIES += valgrind
|
|
else
|
|
MESA3D_CONF_OPTS += -Dvalgrind=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
|
|
MESA3D_CONF_OPTS += -Dlibunwind=enabled
|
|
MESA3D_DEPENDENCIES += libunwind
|
|
else
|
|
MESA3D_CONF_OPTS += -Dlibunwind=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_MESA3D_VDPAU),y)
|
|
MESA3D_DEPENDENCIES += libvdpau
|
|
MESA3D_CONF_OPTS += -Dgallium-vdpau=enabled
|
|
else
|
|
MESA3D_CONF_OPTS += -Dgallium-vdpau=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LM_SENSORS),y)
|
|
MESA3D_CONF_OPTS += -Dlmsensors=enabled
|
|
MESA3D_DEPENDENCIES += lm-sensors
|
|
else
|
|
MESA3D_CONF_OPTS += -Dlmsensors=disabled
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZSTD),y)
|
|
MESA3D_CONF_OPTS += -Dzstd=enabled
|
|
MESA3D_DEPENDENCIES += zstd
|
|
else
|
|
MESA3D_CONF_OPTS += -Dzstd=disabled
|
|
endif
|
|
|
|
$(eval $(meson-package))
|