mesa3d.mk 8.0 KB

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