Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA
- # All rights reserved.
- #
- # Redistribution and use of this script, with or without modification, is
- # permitted provided that the following conditions are met:
- #
- # 1. Redistributions of this script must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- PKGNAM=mesa
- VERSION=10.0.0
- DEMOVERS=8.1.0
- BUILD=${BUILD:-1}
- NUMJOBS=${NUMJOBS:--j8}
- # Be sure this list is up-to-date:
- DRI_DRIVERS="i915,i965,intel,nouveau,r200,radeon,swrast"
- if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
- *) export ARCH=$( uname -m ) ;;
- esac
- fi
- CWD=$(pwd)
- TMP=${TMP:-/tmp}
- PKG=$TMP/package-mesa
- if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
- elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
- else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
- fi
- rm -rf $PKG
- mkdir -p $TMP $PKG
- cd $TMP
- rm -rf Mesa-${VERSION}
- tar xvf $CWD/MesaLib-${VERSION}.tar.?z* || exit 1
- cd Mesa-$VERSION
- # Let's kill the warning about operating on a dangling symlink:
- rm -f src/gallium/state_trackers/d3d1x/w32api
- # Make sure ownerships and permissions are sane:
- 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 {} \;
- # Apply patches from git (and maybe elsewhere):
- # Patches obtained by:
- # git checkout origin/8.0
- # git format-patch 3d657b14b4cab98a2945904823e78cd8950944f4.. # 8.0.3 release
- 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
- if [ ! -r configure ]; then
- autoreconf || exit 1
- fi
- # Running autogen to avoid problems if our autotools don't match upstream's:
- ./autogen.sh
- CFLAGS="$SLKCFLAGS" \
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man \
- --docdir=/usr/doc/mesa-$VERSION \
- --with-dri-driverdir=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \
- --with-dri-drivers="$DRI_DRIVERS" \
- --with-gallium-drivers=r600,svga \
- --enable-gallium-llvm \
- # --enable-vdpau \
- --enable-shared-glapi \
- --enable-xa \
- --enable-osmesa \
- --build=$ARCH-slackware-linux
- # r300 requires llvm
- # Other gallium drivers:
- # galahad,i915,identity,llvmpipe,noop,nv50,nvc0,nvfx,rbug,softpipe,svga,trace
- make $NUMJOBS || make || exit 1
- make install DESTDIR=$PKG || exit 1
- # 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
- 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
- rm -f $PKG/usr/info/dir
- gzip -9 $PKG/usr/info/*
- fi
- 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}-$VERSION-$ARCH-$BUILD.txz
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement