diff options
Diffstat (limited to 'graphics/meshlab/meshlab.SlackBuild')
-rw-r--r-- | graphics/meshlab/meshlab.SlackBuild | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/graphics/meshlab/meshlab.SlackBuild b/graphics/meshlab/meshlab.SlackBuild new file mode 100644 index 0000000000000..55e7b4fbc7997 --- /dev/null +++ b/graphics/meshlab/meshlab.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Slackware build script for meshlab + +# Copyright 2013 David Spencer, Baildon, West Yorkshire, U.K. +# 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. + +PRGNAM=meshlab +VERSION=${VERSION:-1.3.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +SRCNAM=MeshLabSrc_AllInc +SRCVER=$(echo $VERSION | sed 's/\.//g') + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +mkdir $PRGNAM-$VERSION +cd $PRGNAM-$VERSION +tar xvf $CWD/${SRCNAM}_v${SRCVER}.tgz +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 {} \; + +# gcc-4.7 fixes: +# see http://sourceforge.net/p/meshlab/bugs/308/ +sed -i -e 's/m\.vert\.math::Swap/m.vert.math/' vcglib/wrap/gl/trimesh.h +# see http://sourceforge.net/p/meshlab/bugs/342/ +patch -p1 < $CWD/plystuff.diff +# see https://bugzilla.redhat.com/show_bug.cgi?id=904282 +sed -i -e 's/this->::Clear();/Histogram<ScalarType>::Clear();/' \ + meshlab/src/meshlabplugins/decorate_base/colorhistogram.h + +# Other fixes (thanks to net147 over at Arch) +# fix silly lapack error in ancient levmar +patch -p1 -d meshlab < $CWD/lapack.patch +# qt-4.8 fixes +patch -p1 -d meshlab < $CWD/qt-4.8.patch + +# Build all the dependencies. These will be statically linked into meshlab. +# (Horrible duplication and many out of date, but avoids version clashes) +cd meshlab/src/external +qmake -recursive external.pro +make \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" + +# Build meshlab +cd .. +qmake -recursive meshlab_full.pro +make \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS -fpermissive" + +mkdir -p $PKG/opt +cp -a distrib/ $PKG/opt/meshlab + +mkdir -p $PKG/usr/bin +ln -s \ + /opt/meshlab/{meshlab,meshlabserver} \ + $PKG/usr/bin + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/share/pixmaps +cp \ + $CWD/meshlab_{32x32,48x48}.xpm \ + $PKG/usr/share/pixmaps + +mkdir -p $PKG/usr/share/applications +cp \ + $CWD/meshlab.desktop \ + $PKG/usr/share/applications + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + README.txt ../../how_to_compile.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} |