#!/bin/bash # Slackware build script for jack-tools # Written by B. Watson (yalhcru@gmail.com) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 20180617 bkw: # - BUILD=2 # - Get rid of VST headers, since Steinberg doesn't want us to # distribute them. Thanks to idlemoor for cleaning up the mess # in the git history. # - If the user really needs native VST support, he can get the # headers the legit way (from Steinberg) and the script will # pick them up. Otherwise, jack-lxvst is just not built. Add # README_VST.txt to hopefully clarify the situation. # 20170127 bkw: # - Updated for 20170117 (latest commit). Also updated c-common to # latest. # - Added man pages for the new jack-data and jack-lxvst utils. # - Added VST headers to get jack-lxvst to build. Not sure the # licensing status of these, but they were cloned from a public # github repo. # 20151110 bkw: # - Updated for 20141211. This is the date of the latest darcs # commit. Note that the c-common/ in the source tarball is the # old one (from my jack-tools-20130616.tar.gz), since jack-tools # won't compile against the latest c-common. Only jack-scope # and jack-play have changed. # - Add capability stuff. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=jack-tools VERSION=${VERSION:-20170117} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -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 tar xvf $CWD/${PRGNAM}-$VERSION.tar.xz cd $PRGNAM-$VERSION # apply our flags. -Wl,-s strips the binaries. sed -i "s/-O./$SLKCFLAGS -Wl,-s/" Makefile c-common/Makefile # Slackware 14.2 doesn't have libtinfo (15.0 will, IIRC). sed -i 's,-ltinfo,,' Makefile # Author's library make -C c-common # If the Steinberg VST headers are found, put them where the build can find # them. Neither SBo nor upstream can distribute the headers, you have to get # them direct from Steinberg. VST_HEADERS=${VST_HEADERS:-$CWD} if [ -e $VST_HEADERS/aeffect.h -a -e $VST_HEADERS/aeffectx.h ]; then mkdir -p pluginterfaces/vst2.x cp $VST_HEADERS/aeffect.h $VST_HEADERS/aeffectx.h pluginterfaces/vst2.x STEINBERG_ME_HARDER="yes" WITH=WITH else sed -i '/^bin=/s,jack-lxvst,,' Makefile WITH=WITHOUT fi make mkdir -p $PKG/usr/bin $PKG/usr/include make install prefix=$PKG/usr # man pages generated from *.md markdown files, then manually edited # to clean up the formatting. mkdir -p $PKG/usr/man/man1 for page in $CWD/man/*.1; do gzip -9c < $page > $PKG/usr/man/man1/$( basename $page ).gz done # Only install the lxvst man page if the lxvst binary got built. if [ "$STEINBERG_ME_HARDER" = "yes" ]; then gzip -9c < $CWD/man/jack-lxvst.1.optional > $PKG/usr/man/man1/jack-lxvst.1.gz fi mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cat README > $PKG/usr/doc/$PRGNAM-$VERSION/README cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install sed "s,@WITH@,$WITH," $CWD/slack-desc > $PKG/install/slack-desc # Only add capability stuff if not disabled: if [ "${SETCAP:-yes}" = "yes" ]; then cat $CWD/setcap.sh >> $PKG/install/doinst.sh chown root:audio $PKG/usr/bin/* chmod 0750 $PKG/usr/bin/* fi cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE