aboutsummaryrefslogtreecommitdiff
path: root/graphics/libGL/Makefile.common
blob: e3d6e223bbe0acafa23244876899bdbd5d833151 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# 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.1_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