freebsd-ports/graphics/libGL/Makefile.common
Koop Mast 43b2065b66 Update Mesa to 11.2.2.
Future mesa version will drop the glx-tls configure switch. This is by
default disabled on !linux and when the configure switch is dropped
glx-tls will be enabled always. Add a blob explaining why, we can't
enable this on FreeBSD yet. We might need to backport some patches
until we can.

Obtained from:	graphics team development repo.
2016-06-02 18:09:35 +00:00

199 lines
5.5 KiB
Text

# Makefile.common - shared code between MesaLib ports.
#
# !!! Here be dragons !!! (they seem to be everywhere these days)
#
# Remember to upgrade the following ports everytime you bump MESAVERSION:
#
# - graphics/dri
# - graphics/gbm
# - graphics/libEGL
# - graphics/libGL
# - graphics/libglapi
# - graphics/libglesv2
# - graphics/libosmesa
# - lang/clover
#
# $FreeBSD$
MESAVERSION= ${MESABASEVERSION}${MESASUBVERSION:C/^(.)/.\1/}
MESADISTVERSION=${MESABASEVERSION}${MESASUBVERSION:C/^(.)/-\1/}
MESABASEVERSION= 11.2.2
# if there is a subversion, don't include the '-' between 7.11-rc2.
MESASUBVERSION=
MASTER_SITES= ftp://ftp.freedesktop.org/pub/mesa/${MESABASEVERSION}/
DISTFILES= mesa-${MESADISTVERSION}${EXTRACT_SUFX}
MAINTAINER= x11@FreeBSD.org
BUILD_DEPENDS+= makedepend:devel/makedepend
LIB_DEPENDS+= libdevq.so:devel/libdevq
USES+= compiler:c++11-lib bison gettext-tools gmake libtool \
pathfix pkgconfig python:2,build shebangfix tar:xz
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CPPFLAGS+= -isystem${LOCALBASE}/include
LDFLAGS+= -Wl,-Y/usr/lib:${LOCALBASE}/lib
PKGINSTALL= ${.CURDIR}/pkg-install
PKGDEINSTALL= ${.CURDIR}/pkg-deinstall
# only have one port to check with portscout.
.if ${PORTNAME} != libGL
PORTSCOUT= ignore:1
.endif
.if ${OSVERSION} < 1000033
BUILD_DEPENDS+= ${LOCALBASE}/bin/flex:textproc/flex
CONFIGURE_ENV+= ac_cv_prog_LEX=${LOCALBASE}/bin/flex
.endif
python_OLD_CMD= "/usr/bin/env[[:space:]]python"
python_CMD= ${LOCALBASE}/bin/python2
SHEBANG_FILES= src/gallium/*/*/*.py src/gallium/tools/trace/*.py \
src/gallium/drivers/svga/svgadump/svga_dump.py \
src/mapi/glapi/gen/*.py
SHEBANG_FILES+= src/mapi/mapi_abi.py
MASTERDIR= ${.CURDIR}/../../graphics/libGL
PATCHDIR= ${MASTERDIR}/files
WRKSRC= ${WRKDIR}/mesa-${MESADISTVERSION}
DESCR= ${.CURDIR}/pkg-descr
PLIST= ${.CURDIR}/pkg-plist
INSTALL_TARGET= install-strip
COMPONENT= ${PORTNAME:tl:C/^lib//:C/mesa-//}
MESA_LLVM_VER=37
CONFIGURE_ARGS+= --with-sha1=libcrypto
# DRI3 needs PRIME support in the kernel to work
CONFIGURE_ARGS+= --disable-dri3
CONFIGURE_ARGS+= --enable-gbm
# There are issues that need to be fixed to use TLS model "initial-exec"
# So stick with "global-dynamic"'s model for now. kan@ is working on a
# patch for rtld. We might want to backport global-dynamic or
# pthread_setspecific which it uses now by default. But since this
# configure switch is going away ...
# https://lists.freebsd.org/pipermail/freebsd-arch/2016-February/017699.html
#CONFIGURE_ARGS+= --enable-glx-tls
# libEGL, dri and clover need gallium enabled.
# the third option in --with-egl-platforms is wayland.
CONFIGURE_ARGS+= --enable-egl --with-egl-platforms=x11,drm
# we don't care about GLes v1
CONFIGURE_ARGS+= --disable-gles1
CONFIGURE_ARGS+= --enable-gles2
# Clover (OpenCL).
.if ${OPSYS} == DragonFly || \
(${OPSYS} == FreeBSD && \
(${OSVERSION} >= 1001000 && ${ARCH} == amd64 || \
${OSVERSION} >= 1001000 && ${ARCH} == i386))
BUILD_DEPENDS+= libclc>=0.0.r222830:devel/libclc
# We need the clang port too even if it is not used to compile because
# Clover needs some of the clang includes to build.
.if ${COMPONENT:Mdri} != "" || ${COMPONENT:Mclover} != "" || ${COMPONENT:Mosmesa} != ""
_USES_pre_configure+= 290:clover-pre-configure
# .if !exists() evaluates too early before cairo has a chance to be installed
clover-pre-configure:
@if [ -e ${LOCALBASE}/bin/llvm-config${MESA_LLVM_VER} ] && \
! [ -e ${LOCALBASE}/bin/clang${MESA_LLVM_VER} ]; then \
${ECHO_MSG} "Your llvm${MESA_LLVM_VER} is not build with clang support, which is required."; \
${FALSE}; \
fi
.endif
CONFIGURE_ARGS+= --enable-opencl \
--enable-opencl-icd
.else
CONFIGURE_ARGS+= --disable-opencl
.endif
CONFIGURE_ARGS+= --enable-osmesa
# gallium
BUILD_DEPENDS+= llvm${MESA_LLVM_VER}>=3.7.l_1:devel/llvm${MESA_LLVM_VER}
.if ${COMPONENT:Mdri} != "" || ${COMPONENT:Mclover} != "" || ${COMPONENT:Megl} != ""
RUN_DEPENDS+= llvm${MESA_LLVM_VER}>=3.7.1_1:devel/llvm${MESA_LLVM_VER}
.endif
CONFIGURE_ENV+= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${MESA_LLVM_VER}
CONFIGURE_ARGS+=--enable-gallium-llvm \
--enable-xvmc
.if ${PORT_OPTIONS:MTEXTURE}
CONFIGURE_ARGS+=--enable-texture-float
.endif
# only support on DragonFly. FreeBSD's drm doesn't support it.
.if ${OPSYS} == DragonFly && ${COMPONENT:Mdri} != ""
CONFIGURE_ARGS+=--enable-vdpau
LIB_DEPENDS+= libvdpau.so:multimedia/libvdpau
PLIST_SUB+= VDPAU=""
.else
CONFIGURE_ARGS+=--disable-vdpau
PLIST_SUB+= VDPAU="@comment "
.endif
# VAAPI support?
CONFIGURE_ARGS+=--disable-va
ALL_DRI_DRIVERS=I915 I965 R200 RADEON SWRAST
ALL_GALLIUM_DRIVERS=R300 R600 RADEONSI SVGA SWRAST
.if ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == ia64
DRI_DRIVERS= ${ALL_DRI_DRIVERS}
GALLIUM_DRIVERS= ${ALL_GALLIUM_DRIVERS}
.endif
.if ${ARCH} == powerpc || ${ARCH} == powerpc64
DRI_DRIVERS= RADEON SWRAST
GALLIUM_DRIVERS= RADEONSI SWRAST
.endif
.if ${ARCH} == sparc64 || ${ARCH} == armv6
DRI_DRIVERS= SWRAST
GALLIUM_DRIVERS= SWRAST
.endif
# empty for unsupported arches
DRI_DRIVERS+=
GALLIUM_DRIVERS+=
.for _d in ${ALL_DRI_DRIVERS}
. if ${DRI_DRIVERS:M${_d}}
PLIST_SUB+= ${_d}_DRIVER=""
. else
PLIST_SUB+= ${_d}_DRIVER="@comment "
. endif
.endfor
CONFIGURE_ARGS+=--with-dri-drivers="${DRI_DRIVERS:tl}"
.for _gd in ${ALL_GALLIUM_DRIVERS}
. if ${GALLIUM_DRIVERS:M${_gd}}
PLIST_SUB+= ${_gd}_GDRIVER=""
. else
PLIST_SUB+= ${_gd}_GDRIVER="@comment "
. endif
.endfor
CONFIGURE_ARGS+=--with-gallium-drivers="${GALLIUM_DRIVERS:tl}"
.if ${OPSYS} == DragonFly
LIB_DEPENDS+= libelf.so:devel/libelf
.endif