# 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