# 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= 13.0.6 # if there is a subversion, don't include the '-' between 7.11-rc2. MESASUBVERSION= MASTER_SITES= https://mesa.freedesktop.org/archive/ \ https://mesa.freedesktop.org/archive/${MESABASEVERSION}/ \ ftp://ftp.freedesktop.org/pub/mesa/ \ ftp://ftp.freedesktop.org/pub/mesa/${MESABASEVERSION}/ DISTFILES= mesa-${MESADISTVERSION}${EXTRACT_SUFX} MAINTAINER= x11@FreeBSD.org BUILD_DEPENDS+= makedepend:devel/makedepend USES+= compiler:c++11-lib bison gettext-tools gmake libtool \ localbase pathfix pkgconfig python:2,build shebangfix tar:xz USE_LDCONFIG= yes GNU_CONFIGURE= yes PKGINSTALL= ${.CURDIR}/pkg-install PKGDEINSTALL= ${.CURDIR}/pkg-deinstall # only have one port to check with portscout. .if ${PORTNAME} != libGL PORTSCOUT= ignore:1 .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-//} .if (${ARCH} != sparc64 && ${ARCH} != ia64) # no working LLVM MESA_LLVM_VER?= 39 LDFLAGS+= -Wl,-rpath=${LOCALBASE}/llvm${MESA_LLVM_VER}/lib .endif CONFIGURE_ARGS+= --with-sha1=libcrypto 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+= --disable-glx-tls # libEGL, dri and clover need gallium enabled. # the third option in --with-egl-platforms is wayland. .if (${MESA_LLVM_VER} != "") CONFIGURE_ARGS+= --enable-egl --with-egl-platforms=x11,drm .else CONFIGURE_ARGS+= --disable-egl .endif # we don't care about GLes v1 CONFIGURE_ARGS+= --disable-gles1 --enable-gles2 # Clover (OpenCL). .if ${OPSYS} == DragonFly || \ (${OPSYS} == FreeBSD && \ (${ARCH} == amd64 || ${ARCH} == i386)) BUILD_DEPENDS+= libclc>=0.2.0.20160915: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 --enable-xvmc # gallium .if (${MESA_LLVM_VER} != "") BUILD_DEPENDS+= llvm${MESA_LLVM_VER}>=3.9.0_4:devel/llvm${MESA_LLVM_VER} .if ${COMPONENT:Mdri} != "" || ${COMPONENT:Mclover} != "" || ${COMPONENT:Megl} != "" RUN_DEPENDS+= llvm${MESA_LLVM_VER}>=3.9.0_4:devel/llvm${MESA_LLVM_VER} .endif CONFIGURE_ENV+= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${MESA_LLVM_VER} CONFIGURE_ARGS+= --enable-gallium-llvm --enable-llvm-shared-libs .else CONFIGURE_ARGS+= --disable-gallium-llvm .endif .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 RADEON R200 SWRAST ALL_GALLIUM_DRIVERS= R300 R600 RADEONSI SVGA SWRAST .if ${ARCH} == amd64 || ${ARCH} == i386 DRI_DRIVERS= I915 I965 RADEON R200 GALLIUM_DRIVERS= R300 R600 RADEONSI SVGA .endif .if ${ARCH} == powerpc || ${ARCH} == powerpc64 DRI_DRIVERS= RADEON R200 GALLIUM_DRIVERS= R300 R600 RADEONSI .endif # software rendering for all arches DRI_DRIVERS+= SWRAST GALLIUM_DRIVERS+= SWRAST .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 .if (${MESA_LLVM_VER} != "") CONFIGURE_ARGS+=--with-gallium-drivers="${GALLIUM_DRIVERS:tl}" .endif .if ${OPSYS} == DragonFly LIB_DEPENDS+= libelf.so:devel/libelf .endif