Magellan Linux

Diff of /smage/trunk/core/mesa/mesa-20.1.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 14164 by niro, Fri Jul 3 13:37:12 2020 UTC revision 14168 by niro, Mon Jul 6 07:50:15 2020 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2    
3  PNAME="mesa"  PNAME="mesa"
4  PVER="20.1.2"  PVER="19.2.2"
5  PBUILD="r1"  PBUILD="r1"
6    
7  SPLIT_PACKAGES="mesa-xa-tracker mesa mesa-dev"  # 1=enable mesa features
8    # 0=disable mesa features
9    ENABLE_VDPAU=0
10    ENABLE_VAAPI=0
11    ENABLE_XVMC=0
12    
13    # 1=enable dev split packages
14    # 0=disable dev split packages
15    ENABLE_DEV_PACKAGES="1"
16    
17    SPLIT_PACKAGES="mesa"
18    if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
19    then
20     SPLIT_PACKAGES+=" mesa-dev"
21    fi
22    SPLIT_PACKAGES+=" mesa-xa-tracker"
23    if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
24    then
25     SPLIT_PACKAGES+=" mesa-xa-tracker-dev"
26    fi
27    # dri
28    SPLIT_PACKAGES+=" mesa-dri-i915"
29    SPLIT_PACKAGES+=" mesa-dri-i965"
30    SPLIT_PACKAGES+=" mesa-dri-nouveau"
31    SPLIT_PACKAGES+=" mesa-dri-r100"
32    SPLIT_PACKAGES+=" mesa-dri-r200"
33    # gallium
34    SPLIT_PACKAGES+=" mesa-dri-r300"
35    SPLIT_PACKAGES+=" mesa-dri-r600"
36    SPLIT_PACKAGES+=" mesa-dri-radeonsi"
37    SPLIT_PACKAGES+=" mesa-dri-swrast"
38    SPLIT_PACKAGES+=" mesa-dri-svga"
39    SPLIT_PACKAGES+=" mesa-dri-virgl"
40    SPLIT_PACKAGES+=" mesa-dri-iris"
41    # vulkan
42    SPLIT_PACKAGES+=" mesa-vulkan-radeon"
43    SPLIT_PACKAGES+=" mesa-vulkan-intel"
44    # vdpau
45    if [[ ${ENABLE_VDPAU} =1 ]]
46    then
47     SPLIT_PACKAGES+=" mesa-vdpau-nouveau"
48     SPLIT_PACKAGES+=" mesa-vdpau-r300"
49     SPLIT_PACKAGES+=" mesa-vdpau-r600"
50     SPLIT_PACKAGES+=" mesa-vdpau-radeonsi"
51    fi
52    # vaapi
53    if [[ ${ENABLE_VAAPI} = 1 ]]
54    then
55     SPLIT_PACKAGES+=" mesa-vaapi-nouveau"
56     SPLIT_PACKAGES+=" mesa-vaapi-r600"
57     SPLIT_PACKAGES+=" mesa-vaapi-radeonsi"
58    fi
59    
60  PCAT="media-libs"  PCAT="media-libs"
61  HOMEPAGE="http://mesa3d.sourceforge.net/"  HOMEPAGE="http://mesa3d.sourceforge.net/"
# Line 12  HOMEPAGE="http://mesa3d.sourceforge.net/ Line 63  HOMEPAGE="http://mesa3d.sourceforge.net/
63  # hardcoded llvm version for libxatracker  # hardcoded llvm version for libxatracker
64  LLVM_PVER="10.0.0"  LLVM_PVER="10.0.0"
65    
66  MESA_DEPEND=">= dev-libs/expat-2.1  MESA_DEPEND=">= dev-libs/expat-2.2
67   >= dev-libs/libffi-3.3   >= dev-libs/libffi-3.3
68   >= x11-libs/libX11-1.6   >= x11-libs/libX11-1.6
69   >= x11-libs/libXext-1.3   >= x11-libs/libXext-1.3
70   >= x11-libs/libXxf86vm-1.1   >= x11-libs/libXxf86vm-1.1
71   >= x11-libs/libXi-1.7   >= x11-libs/libXi-1.7
72   >= x11-libs/libXmu-1.1   >= x11-libs/libXmu-1.1
73   >= x11-libs/libdrm-2.4.100   >= x11-libs/libXrandr-1.5
74     >= x11-libs/libdrm-2.4.102
75   >= x11-libs/libICE-1   >= x11-libs/libICE-1
76   >= x11-base/opengl-update-2.3   >= x11-libs/libglvnd-1.2
77   >= x11-libs/libxcb-1.14   >= x11-libs/libxcb-1.14
78   >= x11-libs/libXfixes-5   >= x11-libs/libXfixes-5
79   >= x11-libs/libXdamage-1   >= x11-libs/libXdamage-1
80   >= x11-libs/libxshmfence-1.3   >= x11-libs/libxshmfence-1.3
81   >= sys-libs/libstdc++-8.3   >= sys-libs/libstdc++-8.3
82   >= sys-fs/libudev-242   >= sys-fs/libudev-242
83   >= sys-libs/libelf-0.176"   >= sys-libs/libelf-0.179"
84  #>= x11-libs/libXvMC-1  if [[ ${ENABLE_VDPAU} = 1 ]]
85  # >= x11-libs/libvdpau-1.1  then
86  # >= x11-libs/libva-1.7   MESA_DEPEND="${MESA_DEPEND}
87     >= x11-libs/libvdpau-1.1"
88    fi
89    if [[ ${ENABLE_VAAPI} = 1 ]]
90    then
91     MESA_DEPEND="${MESA_DEPEND}
92     >= x11-libs/libva-1.8"
93    fi
94    if [[ ${ENABLE_XVMC} = 1 ]]
95    then
96     MESA_DEPEND="${MESA_DEPEND}
97     >= x11-libs/libXvMC-1"
98    fi
99    
100  # mesa-dev runtime deps  # mesa-dev runtime deps
101  MESA_DEV_DEPEND=">= dev-libs/expat-dev-2.1  MESA_DEV_DEPEND=">= dev-libs/expat-dev-2.2
102   >= dev-libs/libffi-dev-3.3   >= dev-libs/libffi-dev-3.3
103   >= x11-libs/libX11-dev-1.6   >= x11-libs/libX11-dev-1.6
104   >= x11-libs/libXext-dev-1.3   >= x11-libs/libXext-dev-1.3
105   >= x11-libs/libXxf86vm-dev-1.1   >= x11-libs/libXxf86vm-dev-1.1
106   >= x11-libs/libXi-dev-1.7   >= x11-libs/libXi-dev-1.7
107   >= x11-libs/libXmu-dev-1.1   >= x11-libs/libXmu-dev-1.1
108   >= x11-libs/libdrm-dev-2.4.100   >= x11-libs/libdrm-dev-2.4.102
109   >= x11-libs/libICE-dev-1   >= x11-libs/libICE-dev-1
110   >= x11-libs/libxcb-dev-1.14   >= x11-libs/libxcb-dev-1.14
111   >= x11-libs/libXfixes-dev-5   >= x11-libs/libXfixes-dev-5
# Line 49  MESA_DEV_DEPEND=">= dev-libs/expat-dev-2 Line 113  MESA_DEV_DEPEND=">= dev-libs/expat-dev-2
113   >= x11-libs/libxshmfence-dev-1.3   >= x11-libs/libxshmfence-dev-1.3
114   >= sys-libs/libstdc++-dev-8.3   >= sys-libs/libstdc++-dev-8.3
115   >= sys-fs/libudev-dev-242   >= sys-fs/libudev-dev-242
116   >= sys-libs/libelf-dev-0.176"   >= sys-libs/libelf-dev-0.179"
117    if [[ ${ENABLE_VDPAU} = 1 ]]
118    then
119     MESA_DEPEND="${MESA_DEV_DEPEND}
120     >= x11-libs/libvdpau-dev-1.1"
121    fi
122    if [[ ${ENABLE_VAAPI} = 1 ]]
123    then
124     MESA_DEPEND="${MESA_DEV_DEPEND}
125     >= x11-libs/libva-dev-1.8"
126    fi
127    if [[ ${ENABLE_XVMC} = 1 ]]
128    then
129     MESA_DEPEND="${MESA_DEV_DEPEND}
130     >= x11-libs/libXvMC-dev-1"
131    fi
132    
133  XA_TRACKER_DEPEND=">= sys-libs/llvm-libs-${LLVM_PVER}"  XA_TRACKER_DEPEND=">= sys-libs/llvm-libs-${LLVM_PVER}"
134    
135  SDEPEND="${MESA_DEPEND}  SDEPEND="${MESA_DEPEND}
136   ${XA_TRACKER_DEPEND}   ${XA_TRACKER_DEPEND}
137   >= dev-util/pkgconfig-0.25   >= dev-util/pkgconfig-0.25
  >= x11-misc/makedepend-1  
138   >= x11-libs/libXxf86vm-1.1   >= x11-libs/libXxf86vm-1.1
139   >= virtual/glproto   >= virtual/glproto
140   >= virtual/xf86driproto   >= virtual/xf86driproto
# Line 64  SDEPEND="${MESA_DEPEND} Line 142  SDEPEND="${MESA_DEPEND}
142   >= virtual/dri3proto   >= virtual/dri3proto
143   >= virtual/presentproto   >= virtual/presentproto
144   >= virtual/xf86vidmodeproto   >= virtual/xf86vidmodeproto
145   >= dev-lang/python-2.7   >= dev-lang/python3-3.7
146   >= sys-dev/llvm-${LLVM_PVER}   >= dev-python/python3-mako-1
147   ${MESA_DEV_DEPEND}"   >= sys-dev/llvm-${LLVM_PVER}"
148    
149  # must be set before the include of multilib!  sminclude multilib xorg mtools meson cleanutils
 EMUL_LINUX_32=true  
 sminclude multilib xorg mtools mbuild cleanutils  
150  msetfeature "!check"  msetfeature "!check"
151    
152  # must be set *after* the include of xorg!  # must be set *after* the include of xorg!
# Line 78  SRCFILE="${PNAME}-${PVER/_/-}.tar.xz" Line 154  SRCFILE="${PNAME}-${PVER/_/-}.tar.xz"
154  # libs SRCDIR  # libs SRCDIR
155  SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}"  SRCDIR="${BUILDDIR}/${PNAME}-${PVER/_/-}"
156    
157  # known drivers:  SRC_URI=(
158  # dri: dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon,dri-i810,dri-mach64,dri-mga,   ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE}
159  # dri-r128,dri-r300,dri-r600,dri-savage,dri-sis,dri-tdfx,dri-unichrome   ftp://ftp.freedesktop.org/pub/mesa/${SRCFILE}
160  # gallium: gallium-i915,gallium-i965,gallium-r300,gallium-r600,gallium-vmwgfx,gallium-swrast,gallium-nouveau, gallium-radeonsi   mirror://${PNAME}/${SRCFILE}
161  MESA_DRIVERS="dri-swrast,dri-i915,dri-i965,dri-r200,dri-radeon,dri-nouveau"  )
 MESA_DRIVERS+=","  
 MESA_DRIVERS+="gallium-i915,gallium-nouveau,gallium-r300,gallium-r600,gallium-radeonsi,gallium-vmwgfx,gallium-swrast"  
162    
163  # helper functions  UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | highesttarball xz"
164  driver_enabled()  
165    split_info_mesa()
166  {  {
167   local driver="$1"   DESCRIPTION="Mesa3D OpenGL graphics library."
168     DEPEND="${MESA_DEPEND}"
169    
170   if [[ ${MESA_DRIVERS//${driver}} != ${MESA_DRIVERS} ]]   PROVIDE="virtual/opengl"
  then  
  return 0  
  else  
  return 1  
  fi  
171  }  }
172    
173  add_dri_driver()  split_info_mesa-xa-tracker()
174  {  {
175   local driver="$1"   DESCRIPTION="Mesa XA state tracker."
176     DEPEND="== media-libs/mesa-${PVER}
177   if [[ -z ${MESA_DRI_DRIVERS} ]]   ${XA_TRACKER_DEPEND}"
  then  
  MESA_DRI_DRIVERS="${driver}"  
  elif [[ ${MESA_DRI_DRIVERS//${driver}} = ${MESA_DRI_DRIVERS} ]]  
  then  
  MESA_DRI_DRIVERS+=",${driver}"  
  fi  
178  }  }
179    
180  add_gallium_driver()  split_info_mesa-dri-i915()
181  {  {
182   local driver="$1"   DESCRIPTION="Mesa Intel i915 DRI driver."
183     DEPEND="== ${PCAT}/mesa-${PVER}"
  if [[ -z ${MESA_GALLIUM_DRIVERS} ]]  
  then  
  MESA_GALLIUM_DRIVERS="${driver}"  
  elif [[ ${MESA_GALLIUM_DRIVERS//${driver}} = ${MESA_GALLIUM_DRIVERS} ]]  
  then  
  MESA_GALLIUM_DRIVERS+=",${driver}"  
  fi  
184  }  }
185    
186  install_dri_driver()  split_info_mesa-dri-i965()
187  {  {
188   local driver="$1"   DESCRIPTION="Mesa Intel i965 DRI driver."
189   local dri_drivers   DEPEND="== ${PCAT}/mesa-${PVER}"
  local i  
   
  case ${driver} in  
  nouveau) dri_drivers="nouveau_vieux_dri.so" ;;  
  *) dri_drivers="${driver}_dri.so" ;;  
  esac  
   
  # glapi install required beforehand  
  mmake -C src/mapi DESTDIR=${BINDIR} install || die  
  mmake -C src/mesa/drivers/dri DESTDIR=${BINDIR} install || die  
  zapmost ${BINDIR} \  
  $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \  
  $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \  
  || die  
190  }  }
191    
192  install_gallium_driver()  split_info_mesa-dri-r200()
193  {  {
194   local driver="$1"   DESCRIPTION="Mesa AMD Radeon r200 DRI driver."
195   local dri_drivers   DEPEND="== ${PCAT}/mesa-${PVER}"
   
  case ${driver} in  
  # honor kms-swrast  
  swrast) dri_drivers="swrast_dri.so kms_swrast_dri.so" ;;  
  *) dri_drivers="${driver}_dri.so" ;;  
  esac  
   
  # glapi install required beforehand  
  mmake -C src/mapi DESTDIR=${BINDIR} install || die  
  mmake -C src/gallium/targets/dri DESTDIR=${BINDIR} install || die  
  zapmost ${BINDIR} \  
  $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \  
  $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \  
  || die  
196  }  }
197    
198  install_gallium_pipe_driver()  split_info_mesa-dri-r100()
199  {  {
200   local driver="$1"   DESCRIPTION="Mesa ATI Radeon generic DRI driver."
201     DEPEND="== ${PCAT}/mesa-${PVER}"
 # not required anymore with 18.1.0 and higher  
 # # prereq - libllvmradeon${PVER}.so is needed to link the pipes  
 # mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} install || die  
   
  mmake -C src/gallium/targets/pipe-loader DESTDIR=${BINDIR} install || die  
  zapmost ${BINDIR}/usr/$(mlibdir)/gallium-pipe pipe_${driver}.so || die  
  if [[ $(mlibdir) != lib ]]  
  then  
  zapmost ${BINDIR}/usr/lib/gallium-pipe pipe_${driver}.so || die  
  fi  
   
 # not required anymore with 18.1.0 and higher  
 # # remove prereq libs  
 # mmake -C src/gallium/drivers/radeon DESTDIR=${BINDIR} uninstall || die  
202  }  }
203    
204  install_gallium_vdpau_driver()  split_info_mesa-dri-nouveau()
205  {  {
206   local driver="$1"   DESCRIPTION="Mesa Nvidia Nouveau DRI and Gallium driver."
207     DEPEND="== ${PCAT}/mesa-${PVER}
208   mmake -C src/gallium/targets/vdpau DESTDIR=${BINDIR} install || die   == ${PCAT}/mesa-xa-tracker-${PVER}"
  zapmost ${BINDIR}/usr/$(mlibdir)/vdpau libvdpau_${driver}.* || die  
  if [[ $(mlibdir) != lib ]]  
  then  
  zapmost ${BINDIR}/usr/lib/vdpau libvdpau_${driver}.* || die  
  fi  
209  }  }
210    
211  # setup_dynamic_dri $impl  split_info_mesa-dri-r300()
 # impl may be classic or gallium atm  
 setup_dynamic_dri()  
212  {  {
213   local impl="$1"   DESCRIPTION="Mesa Ati Radeon r300 DRI (Gallium) driver."
214   local i   DEPEND="== ${PCAT}/mesa-${PVER}
215   local abi   == ${PCAT}/mesa-xa-tracker-${PVER}"
   
  [[ -z ${impl} ]] && die "missing dri implementation!"  
  case ${impl} in  
  classic|gallium) ;;  
  *) die "unkown dri implementation '${impl}'!" ;;  
  esac  
   
  echo "settin up dynamic dri for a '${impl} implementation..."  
  if [[ -z ${MULTILIB_ABIS} ]]  
  then  
  minstalldir /usr/$(mlibdir)/mesa/${impl} || die  
  for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so  
  do  
  echo -n "  processing ${i}:"  
  if [ -f ${i} -o -L ${i} ]  
  then  
  echo -n " moving"  
  mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"  
  fi  
  done  
  else  
  for abi in ${MULTILIB_ABIS}  
  do  
  [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"  
  [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"  
   
  minstalldir /usr/$(mlibdir)/mesa/${impl} || die  
  for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so  
  do  
  echo -n "  processing ${i}"  
  if [ -f ${i} -o -L ${i} ]  
  then  
  echo -n " moving"  
  mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"  
  fi  
  echo " done"  
  done  
  done  
  fi  
216  }  }
217    
218  SRC_URI=(  split_info_mesa-dri-r600()
  ftp://ftp.freedesktop.org/pub/mesa/${PVER%_*}/${SRCFILE}  
  ftp://ftp.freedesktop.org/pub/mesa/${SRCFILE}  
  mirror://${PNAME}/${SRCFILE}  
 )  
   
 UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | highesttarball xz"  
 #UP2DATE="updatecmd ftp://ftp.freedesktop.org/pub/mesa/ | grep '/[0-9].*' | sed 's:.*/\(.*\)/:\1:' | upsort_pipe"  
   
 split_info_mesa()  
219  {  {
220   DESCRIPTION="Mesa3D OpenGL graphics library."   DESCRIPTION="Mesa Ati Radeon r600 DRI (Gallium) driver."
221   DEPEND="${MESA_DEPEND}"   DEPEND="== ${PCAT}/mesa-${PVER}
222     == ${PCAT}/mesa-xa-tracker-${PVER}"
  PROVIDE="virtual/opengl"  
223  }  }
224    
225  split_info_mesa-dev()  split_info_mesa-dri-radeonsi()
226  {  {
227   DESCRIPTION="Dev package for mesa"   DESCRIPTION="Mesa AMD Radeon radeonsi DRI (Gallium) driver."
228   DEPEND="== media-libs/mesa-${PVER}   DEPEND="== ${PCAT}/mesa-${PVER}
229   ${MESA_DEV_DEPEND}"   == ${PCAT}/mesa-xa-tracker-${PVER}"
   
  PROVIDE="virtual/opengl-dev"  
230  }  }
231    
232  split_info_mesa-xa-tracker()  split_info_mesa-dri-swrast()
233  {  {
234   DESCRIPTION="Mesa XA state tracker."   DESCRIPTION="Mesa Software Raster DRI (Gallium) driver."
235   DEPEND="== media-libs/mesa-${PVER}   DEPEND="== ${PCAT}/mesa-${PVER}
236   ${XA_TRACKER_DEPEND}"   == ${PCAT}/mesa-xa-tracker-${PVER}"
237  }  }
238    
239  if driver_enabled dri-swrast  split_info_mesa-dri-svga()
240  then  {
241   SPLIT_PACKAGES+=" mesa-dri-swrast"   DESCRIPTION="Mesa Vmware svga DRI (Gallium) driver."
242   add_dri_driver swrast   DEPEND="== ${PCAT}/mesa-${PVER}
243     == ${PCAT}/mesa-xa-tracker-${PVER}"
244   split_info_mesa-dri-swrast()  }
  {  
  DESCRIPTION="Mesa Software Raster DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-i810  
 then  
  SPLIT_PACKAGES+=" mesa-dri-i810"  
  add_dri_driver i810  
   
  split_info_mesa-dri-i810()  
  {  
  DESCRIPTION="Mesa Intel i810 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-i915  
 then  
  SPLIT_PACKAGES+=" mesa-dri-i915"  
  add_dri_driver i915  
   
  split_info_mesa-dri-i915()  
  {  
  DESCRIPTION="Mesa Intel i915 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-i965  
 then  
  SPLIT_PACKAGES+=" mesa-dri-i965"  
  add_dri_driver i965  
   
  split_info_mesa-dri-i965()  
  {  
  DESCRIPTION="Mesa Intel i965 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-mach64  
 then  
  SPLIT_PACKAGES+=" mesa-dri-mach64"  
  add_dri_driver mach64  
   
  split_info_mesa-dri-mach64()  
  {  
  DESCRIPTION="Mesa ATI mach64 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-mga  
 then  
  SPLIT_PACKAGES+=" mesa-dri-mga"  
  add_dri_driver mga  
   
  split_info_mesa-dri-mga()  
  {  
  DESCRIPTION="Mesa Matrox mga DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-nouveau  
 then  
  SPLIT_PACKAGES+=" mesa-dri-nouveau"  
  add_dri_driver nouveau  
   
  split_info_mesa-dri-nouveau()  
  {  
  DESCRIPTION="Mesa Nvidia Nouveau DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-r128  
 then  
  SPLIT_PACKAGES+=" mesa-dri-r128"  
  add_dri_driver r128  
   
  split_info_mesa-dri-r128()  
  {  
  DESCRIPTION="Mesa ATI Rage128 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-r200  
 then  
  SPLIT_PACKAGES+=" mesa-dri-r200"  
  add_dri_driver r200  
   
  split_info_mesa-dri-r200()  
  {  
  DESCRIPTION="Mesa ATI Radeon r200 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-r300  
 then  
  SPLIT_PACKAGES+=" mesa-dri-r300"  
  add_dri_driver r300  
   
  split_info_mesa-dri-r300()  
  {  
  DESCRIPTION="Mesa ATI Radeon r300 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-r600  
 then  
  SPLIT_PACKAGES+=" mesa-dri-r600"  
  add_dri_driver r600  
   
  split_info_mesa-dri-r600()  
  {  
  DESCRIPTION="Mesa ATI Radeon r600 DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-radeon  
 then  
  SPLIT_PACKAGES+=" mesa-dri-radeon"  
  add_dri_driver radeon  
   
  split_info_mesa-dri-radeon()  
  {  
  DESCRIPTION="Mesa ATI Radeon generic DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
   
 if driver_enabled dri-savage  
 then  
  SPLIT_PACKAGES+=" mesa-dri-savage"  
  add_dri_driver savage  
   
  split_info_mesa-dri-savage()  
  {  
  DESCRIPTION="Mesa S3 Savage DRI driver."  
  DEPEND="== ${PCAT}/mesa-${PVER}"  
  }  
 fi  
245    
246  if driver_enabled dri-sis  split_info_mesa-dri-virgl()
247  then  {
248   SPLIT_PACKAGES+=" mesa-dri-sis"   DESCRIPTION="Mesa VirtualGL DRI (Gallium) driver."
249   add_dri_driver sis   DEPEND="== ${PCAT}/mesa-${PVER}
250     == ${PCAT}/mesa-xa-tracker-${PVER}"
251    }
252    
253   split_info_mesa-dri-sis()  split_info_mesa-dri-iris()
254   {  {
255   DESCRIPTION="Mesa SIS generic DRI driver."   DESCRIPTION="Mesa Intel Iris DRI (Gallium) driver."
256   DEPEND="== ${PCAT}/mesa-${PVER}"   DEPEND="== ${PCAT}/mesa-${PVER}
257   }   == ${PCAT}/mesa-xa-tracker-${PVER}"
258  fi  }
259    
260  if driver_enabled dri-tdfx  split_info_mesa-vulkan-radeon()
261  then  {
262   SPLIT_PACKAGES+=" mesa-dri-tdfx"   DESCRIPTION="Mesa AMD Radeon Vulkan driver."
263   add_dri_driver tdfx   DEPEND="== ${PCAT}/mesa-${PVER}
264     == ${PCAT}/mesa-xa-tracker-${PVER}"
265    }
266    
267   split_info_mesa-dri-tdfx()  split_info_mesa-vulkan-intel()
268   {  {
269   DESCRIPTION="Mesa 3DFX Voodoo DRI driver."   DESCRIPTION="Mesa Intel Vulkan driver."
270   DEPEND="== ${PCAT}/mesa-${PVER}"   DEPEND="== ${PCAT}/mesa-${PVER}
271   }   == ${PCAT}/mesa-xa-tracker-${PVER}"
272  fi  }
273    
274  if driver_enabled dri-unichrome  split_info_mesa-vdpau-nouveau()
275  then  {
276   SPLIT_PACKAGES+=" mesa-dri-unichrome"   DESCRIPTION="Mesa NVIDIA Nouveau VDPAU driver."
277   add_dri_driver unichrome   DEPEND="== ${PCAT}/mesa-${PVER}"
278    }
279    
280   split_info_mesa-dri-unichrome()  split_info_mesa-vdpau-r300()
281   {  {
282   DESCRIPTION="Mesa VIA Chrome DRI driver."   DESCRIPTION="Mesa AMD Radeon r300 VDPAU driver."
283   DEPEND="== ${PCAT}/mesa-${PVER}"   DEPEND="== ${PCAT}/mesa-${PVER}"
284   }  }
 fi  
285    
286  if driver_enabled gallium-i915  split_info_mesa-vdpau-r600()
287  then  {
288   SPLIT_PACKAGES+=" mesa-gallium-i915"   DESCRIPTION="Mesa AMD Radeon r600 VDPAU driver."
289   add_gallium_driver i915   DEPEND="== ${PCAT}/mesa-${PVER}"
290    }
291    
292   split_info_mesa-gallium-i915()  split_info_mesa-vdpau-radeonsi()
293   {  {
294   DESCRIPTION="Mesa Intel i915 Gallium driver."   DESCRIPTION="Mesa AMD Radeon radeonsi VDPAU driver."
295   DEPEND="== ${PCAT}/mesa-${PVER}   DEPEND="== ${PCAT}/mesa-${PVER}"
296   == ${PCAT}/mesa-xa-tracker-${PVER}"  }
  }  
 fi  
297    
298  if driver_enabled gallium-i965  split_info_mesa-vaapi-nouveau()
299  then  {
300   SPLIT_PACKAGES+=" mesa-gallium-i965"   DESCRIPTION="Mesa NVIDIA Nouveau VAAPI driver."
301   add_gallium_driver i965   DEPEND="== ${PCAT}/mesa-${PVER}"
302    }
303    
304   split_info_mesa-gallium-i965()  split_info_mesa-vaapi-r600()
305   {  {
306   DESCRIPTION="Mesa Intel i965 Gallium driver."   DESCRIPTION="Mesa AMD Radeon r600 VAAPI driver."
307   DEPEND="== ${PCAT}/mesa-${PVER}   DEPEND="== ${PCAT}/mesa-${PVER}"
308   == ${PCAT}/mesa-xa-tracker-${PVER}"  }
  }  
 fi  
309    
310  if driver_enabled gallium-nouveau  split_info_mesa-vaapi-radeonsi()
311  then  {
312   SPLIT_PACKAGES+=" mesa-gallium-nouveau"   DESCRIPTION="Mesa AMD Radeon radeonsi VAAPI driver."
313   add_gallium_driver nouveau   DEPEND="== ${PCAT}/mesa-${PVER}"
314    }
315    
316   split_info_mesa-gallium-nouveau()  install_dri_driver()
317   {  {
318   DESCRIPTION="Mesa Nvidia Nouveau Gallium driver."   local drivers="$@"
319   DEPEND="== ${PCAT}/mesa-${PVER}   local dri_drivers
320   == ${PCAT}/mesa-xa-tracker-${PVER}"   local i
  }  
 fi  
321    
322  if driver_enabled gallium-r300   for i in ${drivers}
323  then   do
324   SPLIT_PACKAGES+=" mesa-gallium-r300"   case ${driver} in
325   add_gallium_driver r300   *) dri_drivers="${i}_dri.so" ;;
326     esac
327     done
328    
329   split_info_mesa-gallium-r300()   DESTDIR=${BINDIR} mninja install || die
330   {   zapmost ${BINDIR} \
331   DESCRIPTION="Mesa Ati Radeon r300 Gallium driver."   $(for i in ${dri_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \
332   DEPEND="== ${PCAT}/mesa-${PVER}   $([[ $(mlibdir) != lib ]] && for i in ${dri_drivers}; do echo "usr/lib/dri/${i}"; done) \
333   == ${PCAT}/mesa-xa-tracker-${PVER}"   || die
334   }  }
 fi  
335    
336  if driver_enabled gallium-r600  install_vulkan_driver()
337  then  {
338   SPLIT_PACKAGES+=" mesa-gallium-r600"   local driver="$1"
339   add_gallium_driver r600   local vulkan_drivers
340    
341   split_info_mesa-gallium-r600()   case ${driver} in
342   {   *) vulkan_drivers="libvulkan_${driver}.so" ;;
343   DESCRIPTION="Mesa Ati Radeon r600 Gallium driver."   esac
  DEPEND="== ${PCAT}/mesa-${PVER}  
  == ${PCAT}/mesa-xa-tracker-${PVER}"  
  }  
 fi  
344    
345  if driver_enabled gallium-radeonsi   DESTDIR=${BINDIR} mninja install || die
346  then   zapmost ${BINDIR} \
347   SPLIT_PACKAGES+=" mesa-gallium-radeonsi"   $(for i in ${vulkan_drivers}; do echo "usr/$(mlibdir)/${i}"; done) \
348   add_gallium_driver radeonsi   $([[ $(mlibdir) != lib ]] && for i in ${vulkan_drivers}; do echo "usr/lib/${i}"; done) \
349     usr/include/vulkan/vulkan_${driver}.h \
350     usr/share/vulkan/icd.d/${driver}_icd\*.json \
351     || die
352    }
353    
354   split_info_mesa-gallium-radeonsi()  install_vdpau_driver()
355   {  {
356   DESCRIPTION="Mesa Ati Radeon radeonsi Gallium driver."   local driver="$1"
  DEPEND="== ${PCAT}/mesa-${PVER}  
  == ${PCAT}/mesa-xa-tracker-${PVER}"  
  }  
 fi  
357    
358  if driver_enabled gallium-swrast   DESTDIR=${BINDIR} mninja install || die
359  then   zapmost ${BINDIR} usr/$(mlibdir)/vdpau/libvdpau_${driver}.* || die
360   SPLIT_PACKAGES+=" mesa-gallium-swrast"   if [[ $(mlibdir) != lib ]]
361   add_gallium_driver swrast   then
362     zapmost ${BINDIR} usr/lib/vdpau/libvdpau_${driver}.* || die
363     fi
364    }
365    
366   split_info_mesa-gallium-swrast()  install_vaapi_driver()
367   {  {
368   DESCRIPTION="Mesa Software Raster Gallium driver."   local driver="$1"
369   DEPEND="== ${PCAT}/mesa-${PVER}   local vaapi_drivers
  == ${PCAT}/mesa-xa-tracker-${PVER}"  
  }  
 fi  
370    
371  if driver_enabled gallium-vmwgfx   case ${driver} in
372  then   *) vaapi_drivers="${driver}_drv_video.so" ;;
373   SPLIT_PACKAGES+=" mesa-gallium-vmwgfx"   esac
  add_gallium_driver svga  
374    
375   split_info_mesa-gallium-vmwgfx()   DESTDIR=${BINDIR} mninja install || die
376   {   zapmost ${BINDIR} \
377   DESCRIPTION="Mesa Vmware generic Gallium driver."   $(for i in ${vaapi_drivers}; do echo "usr/$(mlibdir)/dri/${i}"; done) \
378   DEPEND="== ${PCAT}/mesa-${PVER}   $([[ $(mlibdir) != lib ]] && for i in ${vaapi_drivers}; do echo "usr/lib/dri/${i}"; done) \
379   == ${PCAT}/mesa-xa-tracker-${PVER}"   || die
380   }  }
 fi  
381    
382  src_prepare()  src_prepare()
383  {  {
384   munpack ${SRCFILE} || die   munpack ${SRCFILE} || die
385    
  # no debug code in the drives (gentoo)  
  all-abis 'find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | xargs --no-run-if-empty sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ;'  
   
386   # get rid of glut includes   # get rid of glut includes
387   all-abis rm -f include/GL/glut*h || die   all-abis rm -f include/GL/glut*h || die
   
  # fix an error in the libva detection  
 # all-abis 'sed -i "s:libva = 0.31.1:libva >= 0.31.1:" configure.ac' || die  
   
  mautoreconf || die  
388  }  }
389    
390  src_compile()  src_compile()
391  {  {
392   # build without rtti and exeptions, fixes issues with llvm as well   local myconf
  export CXXFLAGS="${CXXFLAGS} -fno-rtti -fno-exceptions -DNDEBUG"  
393    
394   # texture-float has patent issues in non european contries   MESA_DRI_DRIVERS="i915,i965,r100,r200,nouveau"
395   # disable this feature if this legal concern is affected   MESA_GALLIUM_DRIVERS+="swrast,nouveau,r300,r600,radeonsi,svga,virgl,iris"
396   local myconf="--enable-texture-float"   MESA_VULKAN_DRIVERS+="amd,intel"
   
  mconfigure \  
  --with-dri-driverdir=/usr/'$(mlibdir)'/dri \  
  --with-dri-drivers=${MESA_DRI_DRIVERS} \  
  --with-gallium-drivers=${MESA_GALLIUM_DRIVERS} \  
  --with-egl-platforms=x11,drm \  
  --disable-debug \  
  --enable-glx-tls \  
  --enable-asm \  
  --enable-shared-glapi \  
  --enable-egl \  
  --enable-gles1 \  
  --enable-gles2 \  
  --enable-gbm \  
  --enable-osmesa \  
  --enable-xa \  
  --enable-gallium-egl \  
  --enable-gallium-llvm \  
  --disable-vdpau \  
  --enable-llvm-shared-libs \  
  ${myconf} \  
  || die  
 # --enable-va \  
397    
398  # # only build software renderer on multilib arches for 32Bit   if [[ ${ENABLE_VDPAU} = 1 ]]
399  # if [[ ${ARCH} = x86_64 ]]   then
400  # then   myopts=" $(meson_bool_true gallium-vdpau)"
401  # only-m32 "echo 'DRI_DIRS =' >> configs/autoconf" || die   else
402  # fi   myopts=" $(meson_bool_false gallium-vdpau)"
403     fi
404     if [[ ${ENABLE_VAAPI} = 1 ]]
405     then
406     myopts=" $(meson_bool_true gallium-va)"
407     else
408     myopts=" $(meson_bool_false gallium-va)"
409     fi
410     if [[ ${ENABLE_XVMC} = 1 ]]
411     then
412     myopts=" $(meson_bool_true gallium-xvmc)"
413     else
414     myopts=" $(meson_bool_false gallium-xvmc)"
415     fi
416    
417   mmake -j1 || die   meson_configure \
418     $(meson_opt platforms x11,drm,surfaceless) \
419     $(meson_opt dri-drivers-path /usr/'$(mlibdir)'/dri) \
420     $(meson_opt dri-drivers ${MESA_DRI_DRIVERS}) \
421     $(meson_opt gallium-drivers ${MESA_GALLIUM_DRIVERS}) \
422     $(meson_opt vulkan-drivers ${MESA_VULKAN_DRIVERS}) \
423     $(meson_bool_false vulkan-overlay-layer) \
424     $(meson_bool_true b_ndebug) \
425     $(meson_opt glx dri) \
426     $(meson_bool_true shared-glapi) \
427     $(meson_bool_true dri3) \
428     $(meson_bool_true egl) \
429     $(meson_bool_true gles1) \
430     $(meson_bool_true gles2) \
431     $(meson_bool_true gbm) \
432     $(meson_opt osmesa gallium) \
433     $(meson_opt xa gallium-xa) \
434     $(meson_bool_true llvm) \
435     $(meson_bool_true gallium-nine) \
436     $(meson_bool_true shared-llvm) \
437     $(meson_bool_true glvnd) \
438     ${myopts} \
439     || die
440    
441     mninja || die
442  }  }
443    
444  src_install_mesa()  src_install_mesa()
445  {  {
446   mmake DESTDIR=${BINDIR} install || die   DESTDIR=${BINDIR} mninja install || die
447    
448   # remove all la files   # remove all la files
449   find ${BINDIR} -name \*.la | xargs rm -fv   find ${BINDIR} -name \*.la | xargs rm -fv
450    
451   # setup included for dynamic opengl   # export LIBGL_DRIVER_PATH location.
452   # only target arch needed on multilib systems   # we are using '/usr/lib/dri' as hardcoded location.
453     # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'
454     # LIBGL_DRIVER_PATH overwrites the hardcoded location and
455     # if nvidia or ati driver are installed
456     # the dri modules will never be found by libGL
457     # use "LIBGL_DEBUG=verbose glxinfo" to check this issue
458   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
459   do   do
460   [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"   [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"
461   [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"   [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"
462   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}
463    
  # setup dynamic opengl  
  minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die  
  minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die  
   
  local x  
  for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.so.*  
  do  
  if [ -f ${x} -o -L ${x} ]  
  then  
  mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"  
  fi  
  done  
   
  # export LIBGL_DRIVER_PATH location.  
  # we are using '/usr/lib/dri' as hardcoded location.  
  # but nvidia and ati are using '/usr/$(mlibdir)/xorg/modules/dri'  
  # LIBGL_DRIVER_PATH overwrites the hardcoded location and  
  # if nvidia or ati driver are installed  
  # the dri modules will never be found by libGL  
  # use "LIBGL_DEBUG=verbose glxinfo" to check this issue  
464   minstalldir /etc/env.d || die   minstalldir /etc/env.d || die
465   MCONFIG=/etc/env.d/09mesa-${abi}   MCONFIG=/etc/env.d/09mesa-${abi}
466   mclearconfig || die   mclearconfig || die
467   maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die   maddconfig "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/dri" || die
   
  # remove dri-drivers, they are in extra packages  
  rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die  
  # remove vdpau-drivers, they are in extra packages  
 # rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die  
  # remove gbm-pipes, they are in extra packages  
 # rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die  
468   done   done
469    
  zapmost ${BINDIR} \  
  usr/$(mlibdir)/*.so.* \  
  $([[ $(mlibdir) != lib ]] && echo 'usr/lib/*.so.*') \  
  usr/$(mlibdir)/dri \  
  $([[ $(mlibdir) != lib ]] && echo 'usr/lib/dri') \  
  usr/$(mlibdir)/opengl \  
  $([[ $(mlibdir) != lib ]] && echo 'usr/lib/opengl') \  
  || die  
 # usr/$(mlibdir)/egl \  
 # $([[ $(mlibdir) != lib ]] && echo 'usr/lib/egl')  
   
470   # remove xa-tracker   # remove xa-tracker
471   mdelete /usr/$(mlibdir)/libxatracker.\* || die   mdelete /usr/$(mlibdir)/libxatracker.\* || die
472   if [[ $(mlibdir) != lib ]]   if [[ $(mlibdir) != lib ]]
473   then   then
474   mdelete /usr/lib/libxatracker.\* || die   mdelete /usr/lib/libxatracker.\* || die
475   fi   fi
 }  
476    
477  src_install_mesa-dev()   # remove dri-drivers
478  {   mdelete /usr/$(mlibdir)/dri/\*_dri.so || die
479   mmake DESTDIR=${BINDIR} install || die   if [[ $(mlibdir) != lib ]]
480     then
481   # remove all la files   mdelete /usr/lib/dri/\*_dri.so || die
482   find ${BINDIR} -name \*.la | xargs rm -fv   fi
483    
484   # setup included for dynamic opengl   # remove vdpau-drivers, they are in extra packages
485   # only target arch needed on multilib systems   mdelete -r /usr/$(mlibdir)/vdpau || die
486   minstalldir /usr/$(mlibdir)/opengl/xorg/include/GL || die   if [[ $(mlibdir) != lib ]]
487   for x in ${BINDIR}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}   then
488   do   mdelete -r /usr/lib/vdpau || die
489   if [ -f ${x} -o -L ${x} ]   fi
  then  
  mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include/GL || die "${x}"  
  fi  
  done  
  for x in ${BINDIR}/usr/include/{EGL,GLES*,VG,KHR}  
  do  
  if [ -d ${x} ]  
  then  
  mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/include || die "${x}"  
  fi  
  done  
490    
491   for abi in ${MULTILIB_ABIS}   # remove vaapi-drivers, they are in extra packages
492   do   mdelete /usr/$(mlibdir)/dri/\*_drv_video.so || die
493   [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"   if [[ $(mlibdir) != lib ]]
494   [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"   then
495   cd ${SRCDIR}-${abi}   mdelete /usr/lib/dri/\*_drv_video.so || die
496     fi
497    
498   # setup dynamic opengl   # remove vulkan drivers, headers, configs
499   minstalldir /usr/$(mlibdir)/opengl/xorg/lib || die   mdelete -r /usr/include/vulkan || die
500   minstalldir /usr/$(mlibdir)/opengl/xorg/extensions || die   mdelete -r /usr/share/vulkan || die
501     mdelete /usr/$(mlibdir)/libvulkan_\*.so || die
  local x  
  for x in ${BINDIR}/usr/$(mlibdir)/lib{EGL,GL*,OpenVG}.{la,a,so}  
  do  
  if [ -f ${x} -o -L ${x} ]  
  then  
  mv -fv ${x} ${BINDIR}/usr/$(mlibdir)/opengl/xorg/lib || die "${x}"  
  fi  
  done  
   
  # remove dri-drivers, they are in extra packages  
  rm -rv ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so || die  
  # remove vdpau-drivers, they are in extra packages  
 # rm -rv ${BINDIR}/usr/$(mlibdir)/vdpau || die  
  # remove gbm-pipes, they are in extra packages  
 # rm -rv ${BINDIR}/usr/$(mlibdir)/gallium-pipe/pipe_*.so || die  
  done  
502    
503   # includes in mesa package   # support indirect rendering
504   rm -r ${BINDIR}/usr/$(mlibdir)/*.so.* || die   mlink libGLX_mesa.so.0 /usr/$(mlibdir)/libGLX_indirect.so.0 || die
  mdelete -r /usr/$(mlibdir)/dri || die  
 # mdelete -r /usr/$(mlibdir)/egl || die  
505   if [[ $(mlibdir) != lib ]]   if [[ $(mlibdir) != lib ]]
506   then   then
507   rm -r ${BINDIR}/usr/lib/*.so.* || die   mlink libGLX_mesa.so.0 /usr/lib/libGLX_indirect.so.0 || die
  mdelete -r /usr/lib/dri || die  
 # mdelete -r /usr/lib/egl || die  
508   fi   fi
509  }  }
510    
511  src_install_mesa-xa-tracker()  src_install_mesa-xa-tracker()
512  {  {
513   mmake DESTDIR=${BINDIR} install || die   DESTDIR=${BINDIR} mninja install || die
514    
515   zapmost ${BINDIR} \   zapmost ${BINDIR} \
516   usr/$(mlibdir)/libxatracker.so.* \   usr/$(mlibdir)/libxatracker.* \
517   $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.so.*') \   $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libxatracker.*') \
518   || die   || die
519  }  }
520    
521  if driver_enabled dri-swrast  src_install_mesa-dri-i915()
 then  
  src_install_mesa-dri-swrast()  
  {  
  install_dri_driver swrast || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-i810  
 then  
  src_install_mesa-dri-i810()  
  {  
  install_dri_driver i810 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-i915  
 then  
  src_install_mesa-dri-i915()  
  {  
  install_dri_driver i915 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-i965  
 then  
  src_install_mesa-dri-i965()  
  {  
  install_dri_driver i965 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-mach64  
 then  
  src_install_mesa-dri-mach64()  
  {  
  install_dri_driver mach64 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-mga  
 then  
  src_install_mesa-dri-mga()  
  {  
  install_dri_driver mga || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-r128  
 then  
  src_install_mesa-dri-r128()  
  {  
  install_dri_driver r128 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-nouveau  
 then  
  src_install_mesa-dri-nouveau()  
  {  
  install_dri_driver nouveau || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-r200  
 then  
  src_install_mesa-dri-r200()  
  {  
  install_dri_driver r200 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-r300  
 then  
  src_install_mesa-dri-r300()  
  {  
  install_dri_driver r300 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-r600  
 then  
  src_install_mesa-dri-r600()  
  {  
  install_dri_driver r600 || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-radeon  
 then  
  src_install_mesa-dri-radeon()  
  {  
  install_dri_driver radeon || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-savage  
 then  
  src_install_mesa-dri-savage()  
  {  
  install_dri_driver savage || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-sis  
 then  
  src_install_mesa-dri-sis()  
  {  
  install_dri_driver sis || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-tdfx  
 then  
  src_install_mesa-dri-tdfx()  
  {  
  install_dri_driver tdfx || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled dri-unichrome  
 then  
  src_install_mesa-dri-unichrome()  
  {  
  install_dri_driver unichrome || die  
  setup_dynamic_dri classic || die  
  }  
 fi  
   
 if driver_enabled gallium-i915  
 then  
  src_install_mesa-gallium-i915()  
  {  
  install_gallium_driver i915 || die  
  setup_dynamic_dri gallium || die  
   
  # gbm  
 # install_gallium_pipe_driver i915 || die  
  }  
 fi  
   
 if driver_enabled gallium-i965  
 then  
  src_install_mesa-gallium-i965()  
  {  
  install_gallium_driver i965 || die  
  setup_dynamic_dri gallium || die  
   
  # gbm  
 # install_gallium_pipe_driver i965 || die  
  }  
 fi  
   
 if driver_enabled gallium-nouveau  
 then  
  src_install_mesa-gallium-nouveau()  
  {  
  install_gallium_driver nouveau || die  
  setup_dynamic_dri gallium || die  
   
  # vdpau  
 # install_gallium_vdpau_driver nouveau || die  
   
  # gbm  
 # install_gallium_pipe_driver nouveau || die  
  }  
 fi  
   
 if driver_enabled gallium-r300  
 then  
  src_install_mesa-gallium-r300()  
  {  
  install_gallium_driver r300 || die  
  setup_dynamic_dri gallium || die  
   
  # vdpau  
 # install_gallium_vdpau_driver r300 || die  
   
  # gbm  
 # install_gallium_pipe_driver r300 || die  
  }  
 fi  
   
 if driver_enabled gallium-r600  
 then  
  src_install_mesa-gallium-r600()  
  {  
  install_gallium_driver r600 || die  
  setup_dynamic_dri gallium || die  
   
  # vdpau  
 # install_gallium_vdpau_driver r600 || die  
   
  # gbm  
 # install_gallium_pipe_driver r600 || die  
  }  
 fi  
   
 if driver_enabled gallium-radeonsi  
 then  
  src_install_mesa-gallium-radeonsi()  
  {  
  install_gallium_driver radeonsi || die  
  setup_dynamic_dri gallium || die  
   
  # vdpau  
 # install_gallium_vdpau_driver radeonsi || die  
   
  # gbm  
 # install_gallium_pipe_driver radeonsi || die  
  }  
 fi  
   
 if driver_enabled gallium-swrast  
 then  
  src_install_mesa-gallium-swrast()  
  {  
  install_gallium_driver swrast || die  
  setup_dynamic_dri gallium || die  
   
  # vdpau  
 # install_gallium_vdpau_driver softpipe || die  
   
  # gbm  
 # install_gallium_pipe_driver swrast || die  
  }  
 fi  
   
 if driver_enabled gallium-vmwgfx  
 then  
  src_install_mesa-gallium-vmwgfx()  
  {  
  install_gallium_driver vmwgfx || die  
  setup_dynamic_dri gallium || die  
   
  # gbm  
 # install_gallium_pipe_driver vmwgfx || die  
  }  
 fi  
   
 # setup_dynamic_dri $impl  
 # impl may be classic or gallium atm  
 setup_dynamic_dri()  
522  {  {
523   local impl="$1"   install_dri_driver i915 || die
  local i  
  local abi  
   
  [[ -z ${impl} ]] && die "missing dri implementation!"  
  case ${impl} in  
  classic|gallium) ;;  
  *) die "unkown dri implementation '${impl}'!" ;;  
  esac  
   
  echo "settin up dynamic dri for a '${impl} implementation..."  
  if [[ -z ${MULTILIB_ABIS} ]]  
  then  
  minstalldir /usr/$(mlibdir)/mesa/${impl} || die  
  for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so  
  do  
  echo -n "  processing ${i}:"  
  if [ -f ${i} -o -L ${i} ]  
  then  
  echo -n " moving"  
  mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"  
  fi  
  done  
  else  
  for abi in ${MULTILIB_ABIS}  
  do  
  [[ ${abi} = m32 ]] && ABI_LIBDIR="lib"  
  [[ ${abi} = m64 ]] && ABI_LIBDIR="lib64"  
   
  minstalldir /usr/$(mlibdir)/mesa/${impl} || die  
  for i in ${BINDIR}/usr/$(mlibdir)/dri/*_dri.so  
  do  
  echo -n "  processing ${i}"  
  if [ -f ${i} -o -L ${i} ]  
  then  
  echo -n " moving"  
  mv -vf ${i} ${BINDIR}/usr/$(mlibdir)/mesa/${impl} || die "moving ${i}"  
  fi  
  echo " done"  
  done  
  done  
  fi  
524  }  }
525    
526  postinstall_mesa()  src_install_mesa-dri-i965()
527  {  {
528   ${MROOT}/usr/sbin/opengl-update --use-old xorg   install_dri_driver i965 || die
529  }  }
530    
531  postinstall_mesa-dev()  src_install_mesa-dri-nouveau()
532  {  {
533   ${MROOT}/usr/sbin/opengl-update --use-old xorg   install_dri_driver nouveau nouveau_vieux || die
534  }  }
535    
536  if driver_enabled dri-swrast  src_install_mesa-dri-r200()
537  then  {
538   postinstall_mesa-dri-swrast()   install_dri_driver r200 || die
539   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
   
 if driver_enabled dri-i810  
 then  
  postinstall_mesa-dri-i810()  
  {  
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
   
 if driver_enabled dri-i915  
 then  
  postinstall_mesa-dri-i915()  
  {  
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
   
 if driver_enabled dri-i965  
 then  
  postinstall_mesa-dri-i965()  
  {  
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
540    
541  if driver_enabled dri-mach64  src_install_mesa-dri-r100()
542  then  {
543   postinstall_mesa-dri-mach64()   install_dri_driver radeon || die
544   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
545    
546  if driver_enabled dri-mga  src_install_mesa-dri-r300()
547  then  {
548   postinstall_mesa-dri-mga()   install_dri_driver r300 || die
549   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
550    
551  if driver_enabled dri-nouveau  src_install_mesa-dri-r600()
552  then  {
553   postinstall_mesa-dri-nouveau()   install_dri_driver r600 || die
554   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
555    
556  if driver_enabled dri-r128  src_install_mesa-dri-radeonsi()
557  then  {
558   postinstall_mesa-dri-r128()   install_dri_driver radeonsi || die
559   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
560    
561  if driver_enabled dri-r200  src_install_mesa-dri-swrast()
562  then  {
563   postinstall_mesa-dri-r200()   install_dri_driver swrast kms_swrast || die
564   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
565    
566  if driver_enabled dri-r300  src_install_mesa-dri-svga()
567  then  {
568   postinstall_mesa-dri-r300()   install_dri_driver vmwgfx || die
569   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
570    
571  if driver_enabled dri-r600  src_install_mesa-dri-virgl()
572  then  {
573   postinstall_mesa-dri-r600()   install_dri_driver virtio_gpu || die
574   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
575    
576  if driver_enabled dri-radeon  src_install_mesa-dri-iris()
577  then  {
578   postinstall_mesa-dri-radeon()   install_dri_driver iris || die
579   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
580    
581  if driver_enabled dri-savage  src_install_mesa-vulkan-radeon()
582  then  {
583   postinstall_mesa-dri-savage()   install_vulkan_driver radeon || die
584   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
585    
586  if driver_enabled dri-sis  src_install_mesa-vulkan-intel()
587  then  {
588   postinstall_mesa-dri-sis()   install_vulkan_driver intel || die
589   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
590    
591  if driver_enabled dri-tdfx  src_install_mesa-vdpau-nouveau()
592  then  {
593   postinstall_mesa-dri-tdfx()   install_vdpau_driver nouveau || die
594   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
595    
596  if driver_enabled dri-unichrome  src_install_mesa-vdpau-r300()
597  then  {
598   postinstall_mesa-dri-unichrome()   install_vdpau_driver r300 || die
599   {  }
  ${MROOT}/usr/sbin/dri-update --use-old classic  
  }  
 fi  
600    
601  if driver_enabled gallium-i915  src_install_mesa-vdpau-r600()
602  then  {
603   postinstall_mesa-gallium-i915()   install_vdpau_driver r600 || die
604   {  }
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
605    
606  if driver_enabled gallium-i965  src_install_mesa-vdpau-radeonsi()
607  then  {
608   postinstall_mesa-gallium-i965()   install_vdpau_driver radeonsi || die
609   {  }
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
610    
611  if driver_enabled gallium-nouveau  src_install_mesa-vaapi-nouveau()
612  then  {
613   postinstall_mesa-gallium-nouveau()   install_vaapi_driver nouveau || die
614   {  }
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
615    
616  if driver_enabled gallium-r300  src_install_mesa-vaapi-r600()
617  then  {
618   postinstall_mesa-gallium-r300()   install_vaapi_driver r600 || die
619   {  }
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
620    
621  if driver_enabled gallium-r600  src_install_mesa-vaapi-radeonsi()
622  then  {
623   postinstall_mesa-gallium-r600()   install_vaapi_driver radeonsi || die
624   {  }
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
625    
626  if driver_enabled gallium-radeonsi  preinstall_mesa()
627  then  {
628   postinstall_mesa-gallium-radeonsi()   local i
  {  
  ${MROOT}/usr/sbin/dri-update --use-old gallium  
  }  
 fi  
629    
630  if driver_enabled gallium-swrast   # clean up deprecated dynamic opengl symlinks in favor of libglvnd
631  then   for i in GL/{gl,glx,glext,glxext}.h \
632   postinstall_mesa-gallium-swrast()   EGL/{eglextchromium,eglext,egl,eglmesaext,eglplatform}.h \
633   {   GLES/{egl,glextm,gl,glplatform}.h \
634   ${MROOT}/usr/sbin/dri-update --use-old gallium   GLES2/{gl2ext,gl2,gl2platform}.h \
635   }   GLES3/{gl31,gl3ext,gl3,gl3platform}.h \
636  fi   KHR/khrplatform.h
637     do
638     if [ -L ${MROOT}/usr/include/${i} ]
639     then
640     echo "pruning dynamic opengl symlink '${MROOT}/usr/include/${i}'"
641     rm ${MROOT}/usr/include/${i}
642     fi
643     done
644    }
645    
646  if driver_enabled gallium-vmwgfx  postinstall_mesa()
647  then  {
648   postinstall_mesa-gallium-vmwgfx()   echo "Searching deprecated package 'opengl-update'..."
649   {   if [[ ! -z $(magequery -n opengl-update) ]]
650   ${MROOT}/usr/sbin/dri-update --use-old gallium   then
651   }   echo "Uninstalling deprecated package 'opengl-update'..."
652  fi   mage uninstall opengl-update
653     fi
654    }

Legend:
Removed from v.14164  
changed lines
  Added in v.14168