aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/dri/Makefile
blob: 64489bbc58b1108801e519093fc51414bef3b85a (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
# Created by: Eric Anholt <anholt@FreeBSD.org>
# $FreeBSD$

PORTNAME=   dri
PORTVERSION=    ${MESAVERSION}
PORTREVISION=   4
PORTEPOCH=  2
CATEGORIES= graphics

COMMENT=    OpenGL hardware acceleration drivers for the DRI

LIB_DEPENDS=    libdrm.so:${PORTSDIR}/graphics/libdrm \
        libexpat.so:${PORTSDIR}/textproc/expat2

USES+=      gettext:build
USE_XORG=   glproto x11 xext xxf86vm xdamage xfixes dri2proto

.include <bsd.port.options.mk>

# gcc from base can't handle some code in mesa 9.1+
# We only care for 9.x and 8.x, not for old pre-clang default current.
# This is for 0b0000 binary which gcc 4.3+ understands and is in the i965 driver.
.if defined(WITH_NEW_XORG)
. if (${OSVERSION} >= 901500 && ${OSVERSION} < 1000000) \
        && ${ARCH} == amd64
CC=clang
CXX=clang++
CPP=clang-cpp
. elif ${OSVERSION} < 901500
USE_GCC=yes
. endif
.endif

ALL_DRI_DRIVERS=I915 I965 R200 RADEON SWRAST

.if !defined(WITH_NEW_XORG)
ALL_DRI_DRIVERS+=I810 MACH64 MGA R128 R300 R600 SAVAGE SIS TDFX UNICHROME
.endif

.include "${.CURDIR}/../../graphics/libGL/bsd.mesalib.mk"

PLIST_SUB+= VERSION=${MESADISTVERSION}

.if ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == ia64
DRI_DRIVERS=    ${ALL_DRI_DRIVERS}
.endif

.if defined(WITH_NEW_XORG)
. if !defined(WITHOUT_GALLIUM) && (${ARCH} == i386 || ${ARCH} == amd64)
BUILD_DEPENDS+= llvm-config33:${PORTSDIR}/devel/llvm33
CONFIGURE_ENV+= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config33

CONFIGURE_ARGS+=--enable-gallium-llvm --disable-gallium-egl

CONFIGURE_ARGS+=--with-gallium-drivers=r300,r600,radeonsi,svga,swrast
PLIST_SUB+= GALLIUM=""
. else
CONFIGURE_ARGS+=--enable-gallium-llvm=no --without-gallium-drivers
PLIST_SUB+= GALLIUM="@comment "
. endif
. if ${ARCH} == powerpc || ${ARCH} == powerpc64
DRI_DRIVERS=    RADEON SWRAST
. endif
. if ${ARCH} == sparc64
DRI_DRIVERS=    SWRAST
. endif
.else # !defined(WITH_NEW_XORG)
. if ${ARCH} == powerpc || ${ARCH} == powerpc64
DRI_DRIVERS=    MACH64 RADEON SWRAST TDFX
. elif ${ARCH} == sparc64
DRI_DRIVERS=    MACH64 RADEON SWRAST
. endif
.endif # defined(WITH_NEW_XORG)

# empty for unsupported arches
DRI_DRIVERS+=

.for _d in ${ALL_DRI_DRIVERS}
.if ${DRI_DRIVERS:M${_d}}
PLIST_SUB+= ${_d}_DRIVER=""
.else
PLIST_SUB+= ${_d}_DRIVER="@comment "
.endif
.endfor

.if !(${ARCH} == amd64 || ${ARCH} == i386)
CONFIGURE_ARGS+=--disable-gallium-intel
.endif
CONFIGURE_ARGS+=--with-dri-drivers="${DRI_DRIVERS:tl}"

.if defined(WITH_NEW_XORG) && !defined(WITH_GALLIUM) \
    && (${ARCH} == i386 || ${ARCH} == amd64)
pre-everything::
    @${ECHO_MSG} ""
    @${ECHO_MSG} "For r300, r600, radeonsi and swrast gallium based drivers."
    @${ECHO_MSG} "Please define WITH_GALLIUM in /etc/make.conf"
    @${ECHO_MSG} "Note that gallium support is highly experimental."
    @${ECHO_MSG} ""
.endif

post-install:
.if defined(WITH_NEW_XORG)
    @${RM} -f ${STAGEDIR}${PREFIX}/include/GL/*.h
    @${RM} ${STAGEDIR}${PREFIX}/lib/libGL.*
    @${RM} ${STAGEDIR}${PREFIX}/lib/libglapi.*
    @${RM} -f ${STAGEDIR}${PREFIX}/libdata/pkgconfig/gl.pc  
.else
    @${RM} -f ${STAGEDIR}${PREFIX}/include/GL/*.h
    @${RM} -rf ${STAGEDIR}${PREFIX}/lib/.libGL
    @${RM} -f ${STAGEDIR}${PREFIX}/libdata/pkgconfig/gl.pc  
.endif

.include <bsd.port.mk>