473a172c9a
Move graphics/MesaLib to graphics/MesaLib11.
299 lines
7.6 KiB
Makefile
299 lines
7.6 KiB
Makefile
# $NetBSD: options.mk,v 1.65 2019/08/21 13:35:28 nia Exp $
|
|
|
|
PKG_OPTIONS_VAR= PKG_OPTIONS.MesaLib
|
|
PKG_SUPPORTED_OPTIONS= llvm dri wayland
|
|
PKG_SUGGESTED_OPTIONS=
|
|
|
|
PKG_SUPPORTED_OPTIONS+= glx-tls xvmc debug
|
|
PKG_SUPPORTED_OPTIONS+= vdpau vaapi
|
|
PKG_SUPPORTED_OPTIONS+= osmesa
|
|
PKG_SUPPORTED_OPTIONS+= glesv1 glesv2
|
|
PKG_SUPPORTED_OPTIONS+= xa
|
|
PKG_SUPPORTED_OPTIONS+= noatexit
|
|
PKG_SUPPORTED_OPTIONS+= vulkan
|
|
|
|
# PKG_SUGGESTED_OPTIONS+= xvmc
|
|
PKG_SUGGESTED_OPTIONS+= vdpau vaapi
|
|
PKG_SUGGESTED_OPTIONS+= glesv1 glesv2
|
|
|
|
PKG_SUGGESTED_OPTIONS+= xa
|
|
PKG_SUGGESTED_OPTIONS+= noatexit
|
|
|
|
# The LLVM option enables JIT accelerated software rendering and
|
|
# is also required to support the latest RADEON GPUs, so enable it
|
|
# by default on platforms where such GPUs might be encountered.
|
|
.if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && \
|
|
${OPSYS} != "SunOS" && ${OPSYS} != "Darwin"
|
|
PKG_SUGGESTED_OPTIONS+= llvm
|
|
.endif
|
|
|
|
.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "OpenBSD" || \
|
|
${OPSYS} == "DragonFly" || ${OPSYS} == "Linux" || \
|
|
${OPSYS} == "SunOS" || ${OPSYS} == "NetBSD" || \
|
|
${OPSYS} == "Darwin"
|
|
PKG_SUGGESTED_OPTIONS+= dri
|
|
.endif
|
|
|
|
|
|
# Use Thread Local Storage in GLX where it is supported by Mesa and works.
|
|
.if \
|
|
!empty(MACHINE_PLATFORM:MNetBSD-[789].*-i386) || \
|
|
!empty(MACHINE_PLATFORM:MNetBSD-[789].*-x86_64) || \
|
|
!empty(MACHINE_PLATFORM:MLinux-*-i386) || \
|
|
!empty(MACHINE_PLATFORM:MLinux-*-x86_64) || \
|
|
!empty(MACHINE_PLATFORM:MFreeBSD-1[0-9].*-x86_64) || \
|
|
!empty(MACHINE_PLATFORM:MDragonFly-*-x86_64)
|
|
PKG_SUGGESTED_OPTIONS+= glx-tls
|
|
.endif
|
|
|
|
.include "../../mk/bsd.options.mk"
|
|
|
|
# gallium
|
|
PLIST_VARS+= freedreno i915 i965 nouveau r300 r600 radeonsi \
|
|
swrast svga vc4 virgl vulkan
|
|
# classic DRI
|
|
PLIST_VARS+= dri swrast_dri nouveau_dri radeon_dri r200
|
|
# other features
|
|
PLIST_VARS+= egl gbm vaapi vdpau wayland xatracker
|
|
PLIST_VARS+= osmesa xvmc
|
|
PLIST_VARS+= glesv1 glesv2
|
|
|
|
EGL_PLATFORMS+= x11
|
|
|
|
.if ${OPSYS} != "Darwin"
|
|
EGL_PLATFORMS+= drm
|
|
.endif
|
|
|
|
.if !empty(PKG_OPTIONS:Mwayland)
|
|
EGL_PLATFORMS+= wayland
|
|
PLIST.wayland= yes
|
|
.include "../../devel/wayland/buildlink3.mk"
|
|
.include "../../devel/wayland-protocols/buildlink3.mk"
|
|
.endif
|
|
|
|
.if !empty(PKG_OPTIONS:Mdri)
|
|
CONFIGURE_ARGS+= --enable-dri
|
|
# Having DRI3 and egl compiled in by default doesn't hurt, the X server
|
|
# will only use it if it is supported at run time.
|
|
CONFIGURE_ARGS+= --enable-dri3
|
|
. if ${OPSYS} != "Darwin"
|
|
CONFIGURE_ARGS+= --enable-egl
|
|
CONFIGURE_ARGS+= --enable-gbm
|
|
PLIST.egl= yes
|
|
PLIST.gbm= yes
|
|
. else
|
|
CONFIGURE_ARGS+= --disable-egl
|
|
CONFIGURE_ARGS+= --disable-gbm
|
|
. endif
|
|
|
|
. if !empty(PKG_OPTIONS:Mosmesa)
|
|
CONFIGURE_ARGS+= --enable-osmesa
|
|
PLIST.osmesa= yes
|
|
. endif
|
|
|
|
. if !empty(PKG_OPTIONS:Mglesv1)
|
|
CONFIGURE_ARGS+= --enable-gles1
|
|
PLIST.glesv1= yes
|
|
. else
|
|
CONFIGURE_ARGS+= --disable-gles1
|
|
. endif
|
|
|
|
. if !empty(PKG_OPTIONS:Mglesv2)
|
|
CONFIGURE_ARGS+= --enable-gles2
|
|
PLIST.glesv2= yes
|
|
. else
|
|
CONFIGURE_ARGS+= --disable-gles2
|
|
. endif
|
|
|
|
. if !empty(PKG_OPTIONS:Mglx-tls)
|
|
# Recommended by
|
|
# http://www.freedesktop.org/wiki/Software/Glamor/
|
|
CONFIGURE_ARGS+= --enable-glx-tls
|
|
. else
|
|
# (EE) Failed to load /usr/pkg/lib/xorg/modules/extensions/libglx.so:
|
|
# /usr/pkg/lib/libGL.so.1: Use of initialized Thread Local Storage with model
|
|
# initial-exec and dlopen is not supported
|
|
CONFIGURE_ARGS+= --disable-glx-tls
|
|
. endif # glx-tls
|
|
|
|
# DRI on Linux needs either sysfs or udev
|
|
CONFIGURE_ARGS.Linux+= --enable-sysfs
|
|
|
|
PLIST.dri= yes
|
|
|
|
. if ${OPSYS} != "Darwin"
|
|
BUILDLINK_DEPMETHOD.libpciaccess= full
|
|
. include "../../sysutils/libpciaccess/buildlink3.mk"
|
|
. endif
|
|
. include "../../graphics/MesaLib/dri.mk"
|
|
|
|
DRI_DRIVERS= #
|
|
GALLIUM_DRIVERS= #
|
|
VULKAN_DRIVERS= #
|
|
|
|
# Software rasterizer
|
|
PLIST.swrast_dri= yes
|
|
DRI_DRIVERS+= swrast
|
|
. if ${OPSYS} != "Darwin"
|
|
PLIST.swrast= yes
|
|
GALLIUM_DRIVERS+= swrast
|
|
. endif
|
|
|
|
# x86 only drivers
|
|
. if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && ${OPSYS} != "Darwin"
|
|
# svga / VMWare driver
|
|
PLIST.svga= yes
|
|
GALLIUM_DRIVERS+= svga
|
|
|
|
# Intel chipsets, x86 only
|
|
PLIST.i915= yes
|
|
GALLIUM_DRIVERS+= i915
|
|
DRI_DRIVERS+= i915
|
|
|
|
PLIST.i965= yes
|
|
DRI_DRIVERS+= i965
|
|
|
|
. endif
|
|
|
|
# Vulkan support
|
|
. if !empty(PKG_OPTIONS:Mvulkan)
|
|
VULKAN_DRIVERS+= intel
|
|
VULKAN_DRIVERS+= radeon
|
|
PLIST.vulkan= yes
|
|
. endif
|
|
|
|
# ARM drivers
|
|
. if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)
|
|
# Qualcomm SnapDragon, libdrm_freedreno.pc
|
|
#GALLIUM_DRIVERS+= freedreno
|
|
#PLIST.freedreno= yes
|
|
|
|
# Broadcom VideoCore 4
|
|
GALLIUM_DRIVERS+= vc4
|
|
PLIST.vc4= yes
|
|
. endif
|
|
|
|
# qemu Linux guest driver
|
|
. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
|
|
# XXX test this
|
|
#GALLIUM_DRIVERS+= virgl
|
|
#PLIST.virgl= yes
|
|
. endif
|
|
|
|
# theoretically cross platform PCI drivers
|
|
. if ${OPSYS} != "Darwin" && empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
|
|
empty(MACHINE_PLATFORM:MNetBSD-*-mipsel)
|
|
|
|
# AMD Radeon r600
|
|
PLIST.r600= yes
|
|
GALLIUM_DRIVERS+= r600
|
|
|
|
# FULL_OS_VERSION_CMD= ${UNAME} -r
|
|
# FULL_OS_VERSION= ${FULL_OS_VERSION_CMD:sh}
|
|
|
|
# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
|
|
. if ${OPSYS} != "FreeBSD"
|
|
# nVidia
|
|
PLIST.nouveau= yes
|
|
GALLIUM_DRIVERS+= nouveau
|
|
. endif
|
|
|
|
# classic DRI radeon
|
|
PLIST.radeon_dri= yes
|
|
DRI_DRIVERS+= radeon
|
|
|
|
# classic DRI r200
|
|
PLIST.r200= yes
|
|
DRI_DRIVERS+= r200
|
|
|
|
# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
|
|
. if ${OPSYS} != "FreeBSD"
|
|
# classic DRI nouveau
|
|
PLIST.nouveau_dri= yes
|
|
DRI_DRIVERS+= nouveau
|
|
. endif
|
|
. endif
|
|
# end cross platform PCI drivers
|
|
|
|
. if !empty(PKG_OPTIONS:Mllvm)
|
|
# VA-API and VDPAU
|
|
. if !empty(PKG_OPTIONS:Mvaapi)
|
|
. include "../../multimedia/libva/available.mk"
|
|
. if ${VAAPI_AVAILABLE} == "yes"
|
|
PLIST.vaapi= yes
|
|
. include "../../multimedia/libva/buildlink3.mk"
|
|
. endif
|
|
. endif # vaapi
|
|
. if !empty(PKG_OPTIONS:Mvdpau)
|
|
. include "../../multimedia/libvdpau/available.mk"
|
|
. if ${VDPAU_AVAILABLE} == "yes"
|
|
PLIST.vdpau= yes
|
|
. include "../../multimedia/libvdpau/buildlink3.mk"
|
|
. endif
|
|
. endif # vdpau
|
|
|
|
# XA is useful for accelerating xf86-video-vmware
|
|
. if !empty(PKG_OPTIONS:Mxa)
|
|
CONFIGURE_ARGS+= --enable-xa
|
|
PLIST.xatracker= yes
|
|
. endif
|
|
|
|
# AMD Radeon r300
|
|
PLIST.r300= yes
|
|
GALLIUM_DRIVERS+= r300
|
|
# AMD Canary Islands GPUs
|
|
PLIST.radeonsi= yes
|
|
GALLIUM_DRIVERS+= radeonsi
|
|
CONFIGURE_ARGS+= --enable-llvm
|
|
CONFIGURE_ARGS+= --enable-llvm-shared-libs
|
|
|
|
. if !exists(/usr/include/libelf.h)
|
|
. include "../../devel/libelf/buildlink3.mk"
|
|
. endif
|
|
|
|
BUILDLINK_API_DEPENDS.libLLVM+= libLLVM>=7.0
|
|
. include "../../lang/libLLVM/buildlink3.mk"
|
|
CONFIGURE_ENV+= ac_cv_path_ac_pt_LLVM_CONFIG=${LLVM_CONFIG_PATH:Q}
|
|
. else # !llvm
|
|
CONFIGURE_ARGS+= --disable-xa
|
|
CONFIGURE_ARGS+= --disable-llvm
|
|
CONFIGURE_ARGS+= --disable-llvm-shared-libs
|
|
. endif # llvm
|
|
|
|
CONFIGURE_ARGS+= --with-gallium-drivers=${GALLIUM_DRIVERS:ts,}
|
|
CONFIGURE_ARGS+= --with-dri-drivers=${DRI_DRIVERS:ts,}
|
|
CONFIGURE_ARGS+= --with-vulkan-drivers=${VULKAN_DRIVERS:ts,}
|
|
CONFIGURE_ARGS+= --with-platforms=${EGL_PLATFORMS:S/ /,/gW}
|
|
|
|
.else # !dri
|
|
CONFIGURE_ARGS+= --with-gallium-drivers=
|
|
CONFIGURE_ARGS+= --with-dri-drivers=
|
|
CONFIGURE_ARGS+= --with-vulkan-drivers=
|
|
CONFIGURE_ARGS+= --disable-dri
|
|
CONFIGURE_ARGS+= --disable-dri3
|
|
CONFIGURE_ARGS+= --disable-egl
|
|
CONFIGURE_ARGS+= --disable-gbm
|
|
CONFIGURE_ARGS+= --disable-gles1
|
|
CONFIGURE_ARGS+= --disable-gles2
|
|
CONFIGURE_ARGS+= --enable-xlib-glx
|
|
CONFIGURE_ARGS+= --with-platforms=x11
|
|
. if !empty(PKG_OPTIONS:Mllvm)
|
|
PKG_FAIL_REASON+= "The llvm PKG_OPTION must also be disabled when dri is disabled"
|
|
. endif
|
|
.endif # dri
|
|
|
|
.if !empty(PKG_OPTIONS:Mdebug)
|
|
CONFIGURE_ARGS+= --enable-debug
|
|
.endif
|
|
|
|
.if !empty(PKG_OPTIONS:Mxvmc)
|
|
CONFIGURE_ARGS+= --enable-xvmc
|
|
.include "../../x11/libXvMC/buildlink3.mk"
|
|
PLIST.xvmc= yes
|
|
.else
|
|
CONFIGURE_ARGS+= --disable-xvmc
|
|
.endif
|
|
|
|
.if !empty(PKG_OPTIONS:Mnoatexit)
|
|
CPPFLAGS+= -DHAVE_NOATEXIT
|
|
.endif
|