9014c21cac
mesa3d-headers is a little bit special: it uses the same sources as
the mesa3d package, named just 'mesa' upstream. mesa uses the meson
buildsystem, an that is what we use in the mesa3d package.
However, mesa3d-headers does not install the whole of mesa; it only
installs a select set of headers for those binary blobs that do not
provide them.
mesa does not provide such a feature (only installing headers) with
its meson buildsystem. As a consequence, we've made mesa3d-headers a
generic package, that basically only copies headers over.
Additionally, mesa3d-headers also provides the dri.pc file for when
Xorg is enabled; see 7468b60e7c
(package/mesa3d-headers: also install
dri header and .pc file).
We used to manually generate that file from a .in template that was
present in mesa source code at the time it was still using autotools.
But when they switched over to using meson, the template was dropped
[0], and the dri.pc is now entirely generated using meson internals
[1].
So we now have no template present in the source code, so we must
come up with our own. This simplifies the replacement pattern to
just inject the version string.
[0] https://cgit.freedesktop.org/mesa/mesa/commit/?id=158758618264eac113025a86a360dc305ed4498b
[1] https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/meson.build?h=19.2#n93
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Tested-by: Vincent Fazio <vfazio@xes-inc.com>
[yann.morin.1998@free.fr:
- entirely rework the commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
76 lines
2.0 KiB
Makefile
76 lines
2.0 KiB
Makefile
################################################################################
|
|
#
|
|
# mesa3d-headers
|
|
#
|
|
################################################################################
|
|
|
|
# mesa3d-headers is inherently incompatible with mesa3d, so error out
|
|
# if both are enabled.
|
|
ifeq ($(BR2_PACKAGE_MESA3D)$(BR2_PACKAGE_MESA3D_HEADERS),yy)
|
|
$(error mesa3d-headers enabled, but mesa3d enabled too)
|
|
endif
|
|
|
|
# Not possible to directly refer to mesa3d variables, because of
|
|
# first/second expansion trickery...
|
|
MESA3D_HEADERS_VERSION = 20.0.5
|
|
MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz
|
|
MESA3D_HEADERS_SITE = https://mesa.freedesktop.org/archive
|
|
MESA3D_HEADERS_DL_SUBDIR = mesa3d
|
|
MESA3D_HEADERS_LICENSE = MIT, SGI, Khronos
|
|
MESA3D_HEADERS_LICENSE_FILES = docs/license.html
|
|
|
|
# Only installs header files
|
|
MESA3D_HEADERS_INSTALL_STAGING = YES
|
|
MESA3D_HEADERS_INSTALL_TARGET = NO
|
|
|
|
MESA3D_HEADERS_DIRS = KHR
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
|
|
|
|
MESA3D_HEADERS_DIRS += GL
|
|
|
|
ifeq ($(BR2_PACKAGE_XORG7),y)
|
|
|
|
# Not using $(SED) because we do not want to work in-place, and $(SED)
|
|
# contains -i.
|
|
define MESA3D_HEADERS_BUILD_DRI_PC
|
|
sed -e 's:@VERSION@:$(MESA3D_HEADERS_VERSION):' \
|
|
package/mesa3d-headers/dri.pc \
|
|
>$(@D)/src/mesa/drivers/dri/dri.pc
|
|
endef
|
|
|
|
define MESA3D_HEADERS_INSTALL_DRI_PC
|
|
$(INSTALL) -D -m 0644 $(@D)/include/GL/internal/dri_interface.h \
|
|
$(STAGING_DIR)/usr/include/GL/internal/dri_interface.h
|
|
$(INSTALL) -D -m 0644 $(@D)/src/mesa/drivers/dri/dri.pc \
|
|
$(STAGING_DIR)/usr/lib/pkgconfig/dri.pc
|
|
endef
|
|
|
|
endif # Xorg
|
|
|
|
endif # OpenGL
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
|
|
MESA3D_HEADERS_DIRS += EGL
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
|
|
MESA3D_HEADERS_DIRS += GLES GLES2
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_HAS_LIBOPENCL),y)
|
|
MESA3D_HEADERS_DIRS += CL
|
|
endif
|
|
|
|
define MESA3D_HEADERS_BUILD_CMDS
|
|
$(MESA3D_HEADERS_BUILD_DRI_PC)
|
|
endef
|
|
|
|
define MESA3D_HEADERS_INSTALL_STAGING_CMDS
|
|
$(foreach d,$(MESA3D_HEADERS_DIRS),\
|
|
cp -dpfr $(@D)/include/$(d) $(STAGING_DIR)/usr/include/ || exit 1$(sep))
|
|
$(MESA3D_HEADERS_INSTALL_DRI_PC)
|
|
endef
|
|
|
|
$(eval $(generic-package))
|