summaryrefslogtreecommitdiffstats
path: root/source/x/mesa/mesa.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'source/x/mesa/mesa.SlackBuild')
-rwxr-xr-xsource/x/mesa/mesa.SlackBuild134
1 files changed, 82 insertions, 52 deletions
diff --git a/source/x/mesa/mesa.SlackBuild b/source/x/mesa/mesa.SlackBuild
index d4579625d..7bdc273e0 100755
--- a/source/x/mesa/mesa.SlackBuild
+++ b/source/x/mesa/mesa.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,26 +21,23 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=mesa
-VERSION=${VERSION:-$(echo MesaLib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=7.9.2
+DEMOVERS=8.0.1
BUILD=${BUILD:-1}
-PKG_VERSION=${VERSION}
+NUMJOBS=${NUMJOBS:--j8}
+
+# Be sure this list is up-to-date:
+DRI_DRIVERS="i810,i915,i965,mach64,mga,nouveau,r128,r200,r300,r600,radeon,savage,sis,tdfx,unichrome,swrast"
-# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-# Be sure this list is up-to-date:
-DRI_DRIVERS="i810,i915,i965,mach64,mga,r128,r200,r300,r600,radeon,savage,sis,tdfx,unichrome,swrast"
-
-NUMJOBS=${NUMJOBS:--j8}
-
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-mesa
@@ -60,9 +57,13 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf Mesa-${VERSION}
-tar xvf $CWD/MesaLib-${PKG_VERSION}.tar.?z* || exit 1
-tar xvf $CWD/MesaGLUT-${PKG_VERSION}.tar.?z* || exit 1
-tar xvf $CWD/MesaDemos-${PKG_VERSION}.tar.?z* || exit 1
+
+tar xvf $CWD/MesaLib-${VERSION}.tar.?z* || exit 1
+# If MesaLib came from git, we might already have GLUT.
+if [ ! -d Mesa-${VERSION}/src/glut/glx ]; then
+ tar xvf $CWD/MesaGLUT-${VERSION}.tar.?z* || exit 1
+fi
+
cd Mesa-$VERSION
# Make sure ownerships and permissions are sane:
@@ -73,6 +74,27 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Apply patches from git (and maybe elsewhere):
+# Patches obtained by:
+# git checkout origin/7.9
+# git format-patch 67aeab0b77fb6be864088e69ea74a010b6543fa1..
+if /bin/ls $CWD/patches/*.patch 1> /dev/null 2> /dev/null ; then
+ for patch in $CWD/patches/*.patch ; do
+ patch -p1 < $patch || exit 1 ;
+ done
+fi
+
+# Revert "i915: Enable ARB_fragment_shader by default."
+# https://bugzilla.redhat.com/show_bug.cgi?id=643399
+zcat $CWD/patches/i915_fragment_shader_disable.patch.gz | patch -p1 || exit 1
+
+# Allow to build against libdrm-2.4.23:
+zcat $CWD/patches/mesa-7.9-libdrm-2.4.23-nouveau-api.patch.gz | patch -p1 || exit 1
+
+if [ ! -r configure ]; then
+ autoreconf || exit 1
+fi
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -82,64 +104,72 @@ CFLAGS="$SLKCFLAGS" \
--docdir=/usr/doc/mesa-$VERSION \
--with-dri-driverdir=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \
--with-dri-drivers="$DRI_DRIVERS" \
+ --enable-xcb \
+ --enable-gallium-nouveau \
--build=$ARCH-slackware-linux
-# Nobody else is enabling this. Seems like it's asking for trouble.
-# --enable-xcb
-
-# This doesn't seem to build - maybe it needs something else...
-# --enable-gallium-nouveau
+# --enable-gallium-llvm \
+# --enable-gallium-swrast \
+# --disable-gallium-svga \
+# --disable-gallium-i915 \
+# --disable-gallium-i965 \
+# --disable-gallium-radeon \
+# --disable-gallium-r600 \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Install gears and glinfo:
-mkdir -p $PKG/usr/bin
-cp -a progs/demos/gears $PKG/usr/bin/gears
-cp -a progs/demos/glinfo $PKG/usr/bin/glinfo
-
-# Install some "demos":
-( cd progs/xdemos
- cp glthreads glxcontexts glxdemo glxgears glxgears_fbconfig glxheads \
- glxinfo glxpbdemo glxpixmap \
- $PKG/usr/bin
+# Now install the demos
+( cd $TMP
+ rm -rf mesa-demos-$DEMOVERS
+ tar xvf $CWD/mesa-demos-$DEMOVERS.tar.?z* || exit 1
+ cd mesa-demos-$DEMOVERS
+ chown -R root:root .
+ find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+ CFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --build=$ARCH-slackware-linux
+ # Build and install gears and glinfo, as well as a few other demos
+ make -C src/demos gears glinfo
+ make -C src/xdemos \
+ glthreads glxcontexts glxdemo glxgears glxgears_fbconfig \
+ glxheads glxinfo glxpbdemo glxpixmap
+ mkdir -p $PKG/usr/bin
+ cp -a src/demos/{gears,glinfo} $PKG/usr/bin
+ for i in glthreads glxcontexts glxdemo glxgears glxgears_fbconfig \
+ glxheads glxinfo glxpbdemo glxpixmap ; do
+ cp -a src/xdemos/$i $PKG/usr/bin ;
+ done
)
-
+
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Compress and link manpages, if any:
-if [ -d $PKG/usr/man ]; then
- ( cd $PKG/usr/man
- for manpagedir in $(find . -type d -name "man*") ; do
- ( cd $manpagedir
- for eachpage in $( find . -type l -maxdepth 1) ; do
- ln -s $( readlink $eachpage ).gz $eachpage.gz
- rm $eachpage
- done
- gzip -9 *.?
- )
- done
- )
-fi
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
# Compress info files, if any:
if [ -d $PKG/usr/info ]; then
- ( cd $PKG/usr/info
- rm -f dir
- gzip -9 *
- )
+ rm -f $PKG/usr/info/dir
+ gzip -9 $PKG/usr/info/*
fi
-mkdir -p $PKG/usr/doc/Mesa-$PKG_VERSION/html
-cp -a COPYING docs/relnotes-$VERSION.html $PKG/usr/doc/Mesa-$PKG_VERSION
-rm -f docs/relnotes*.html docs/RELNOTES*
-cp -a docs/*.html $PKG/usr/doc/Mesa-$PKG_VERSION/html
+mkdir -p $PKG/usr/doc/Mesa-$VERSION/html
+cp -a \
+ docs/COPYING* docs/relnotes-${VERSION}*.html docs/README* docs/GL* \
+ $PKG/usr/doc/Mesa-$VERSION
+cp -a docs/*.html $PKG/usr/doc/Mesa-$VERSION/html
+rm -f $PKG/usr/doc/Mesa-$VERSION/html/relnotes*.html
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$PKG_VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz