summaryrefslogtreecommitdiffstats
path: root/academic/samtools/samtools.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'academic/samtools/samtools.SlackBuild')
-rw-r--r--academic/samtools/samtools.SlackBuild102
1 files changed, 45 insertions, 57 deletions
diff --git a/academic/samtools/samtools.SlackBuild b/academic/samtools/samtools.SlackBuild
index 02dff9fbbe..daa7e87daf 100644
--- a/academic/samtools/samtools.SlackBuild
+++ b/academic/samtools/samtools.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for samtools
# Copyright 2013-2016 Petar Petrov slackalaxy@gmail.com
-# All rights reserved.
+# Copyright 2017-2018 Rob van Nues # All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
@@ -22,17 +22,26 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# With help about the install paths from Arch Linux AUR:
-# https://aur.archlinux.org/packages/sa/samtools/PKGBUILD
-
-PRGNAM=samtools
-VERSION=${VERSION:-0.1.19}
+PRGNAM=samtools
+VERSION=${VERSION:-1.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+# Some applications still rely on the legacy samtools API instead of using htslib
+# exclusively, in that case, install the headers in /usr/include/bam and the static
+# libbam library as well by declaring (uncommenting):
+#SAMLIB="yes"
+# and commenting out:
+SAMLIB="no"
+
+# WARNING: this package and htslib both provide a "sam.h" that aren't actually
+# compatible with each other. Be extra careful about which file you're actually
+# #including when using either of these packages for development work.
+
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -43,8 +52,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -58,7 +67,6 @@ else
fi
set -e
-
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
@@ -70,51 +78,23 @@ find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Use our CFLAGS/CXXFLAGS
-sed -i "/^C.*.*FLAGS/s/=/+=/" Makefile
+# force linking to installed htslib
+rm -r htslib-$VERSION
CFLAGS="$SLKCFLAGS" \
-make
-make razip
-
-# Install samtools, razip and bam library
-install -D -m755 samtools $PKG/usr/bin/samtools
-install -D -m755 razip $PKG/usr/bin/razip
-install -D -m644 libbam.a $PKG/usr/lib${LIBDIRSUFFIX}/libbam.a
-
-# Install bcftools its library and vsfutils
-cd bcftools
-install -D -m755 bcftools $PKG/usr/bin/bcftools
-install -D -m644 libbcf.a $PKG/usr/lib${LIBDIRSUFFIX}/libbcf.a
-install -D -m755 vcfutils.pl $PKG/usr/bin/vcfutils.pl
-
-# Include additional executables
-cd ../misc
-install -D -m755 ace2sam $PKG/usr/libexec/$PRGNAM/ace2sam
-install -D -m755 bamcheck $PKG/usr/libexec/$PRGNAM/bamcheck
-install -D -m755 maq2sam-long $PKG/usr/libexec/$PRGNAM/maq2sam-long
-install -D -m755 maq2sam-short $PKG/usr/libexec/$PRGNAM/maq2sam-short
-install -D -m755 md5fa $PKG/usr/libexec/$PRGNAM/md5fa
-install -D -m755 md5sum-lite $PKG/usr/libexec/$PRGNAM/md5sum-lite
-install -D -m755 wgsim $PKG/usr/libexec/$PRGNAM/wgsim
-
-# Include some scripts
-mkdir -p $PKG/usr/share/$PRGNAM
-cp -a \
- *.pl *.lua *.py plot-bamcheck \
- $PKG/usr/share/$PRGNAM
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-htslib=system \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --build=$ARCH-slackware-linux
-# Include bam header files
-cd ..
-mkdir -p $PKG/usr/include/bam
- for f in *.h ; do
- install -m644 $f "$PKG/usr/include/bam"
- done
-
-# Install manpage
-install -D -m644 $PRGNAM.1 $PKG/usr/man/man1/$PRGNAM.1
+make
+make install DESTDIR=$PKG
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
@@ -124,18 +104,26 @@ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; r
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- AUTHORS COPYING INSTALL NEWS \
+ AUTHORS LICENSE README INSTALL NEWS examples \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cat $CWD/References > $PKG/usr/doc/$PRGNAM-$VERSION/References
-# Fix permissions in the package...
-find $PKG/usr/{doc,include,share} \
--type d -exec chmod 755 {} \; -o \
--type f -exec chmod 644 {} \;
+mkdir -p $PKG/usr/share/$PRGNAM-$VERSION
+
+cp -a \
+ misc/*.lua \
+ $PKG/usr/share/$PRGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+# include samtools-API if set above
+if [ "$SAMLIB" = "yes" ] ; then
+ mkdir -p $PKG/usr/include/bam
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+ install -m644 libbam.a "$PKG/usr/lib${LIBDIRSUFFIX}"
+ install -m644 *.h "$PKG/usr/include/bam"
+fi
+
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}