#!/bin/bash # Slackware build script for apulse # Originally written by: Ryan P.C. McQuen | Everett, WA | # Heavily modified and now maintained by B. Watson # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 20210301 bkw: # - Take over maintenance. # - Replace Capi X's version (submitted in 2019) with Ryan's (removed # in 2016), since it supports multilib and by default doesn't stomp # on the system pulseaudio libs. Add the ability to install the # headers and .pc files, like Capi's build did, but disable it by # default (SYSTEM variable). # - Relicense as WTFPL, with permission from original author (Ryan). # - i486 => i586. # - Rewrite README to document the new stuffs. # - Simplify the script a bit. # - Actually use SLKCFLAGS. # - Upstream ships a man page now, install it to /usr/man. PRGNAM=apulse VERSION=${VERSION:-0.1.13} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} SYSTEM=${SYSTEM:-no} [ "$SYSTEM" = "devel" ] && HEADERS=yes case "$SYSTEM" in yes|devel) AP_SUBDIR=${AP_SUBDIR:-/} COEXIST="CONFLICTS" ;; no) AP_SUBDIR=${AP_SUBDIR:-/apulse} COEXIST="can safely coexist" ;; *) echo "*** Invalid SYSTEM setting '$SYSTEM', use one of: no yes devel" 1>&2 exit 1 ;; esac if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi CWD=$(pwd) 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" # automatically detect multilib, can override with COMPAT32=no [ -e /lib/libc.so.6 ] && COMPAT32="${COMPAT32:-yes}" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi set -e buildit() { rm -rf build mkdir -p build cd build cmake \ -DAPULSEPATH=/usr/lib$2${AP_SUBDIR} \ -DAPULSE_SEARCH_PATHS=/usr/lib${AP_SUBDIR}:/usr/lib${LIBDIRSUFFIX}${AP_SUBDIR} \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS $1 -DNDEBUG" \ -DCMAKE_C_FLAGS_RELEASE="$SLKCFLAGS $1 -DNDEBUG" \ .. make VERBOSE=1 make install/strip DESTDIR=$PKG cd - } install_pc() { mkdir -p $PKG/usr/lib$1/pkgconfig for i in $CWD/pc/*.pc; do sed "s,@64@,$1,g" $i > $PKG/usr/lib$1/pkgconfig/$( basename $i ) done } rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION chown -R root:root . find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ # hardcoded, can't override on cmake command line. sed -i 's,share/man/,man/,' CMakeLists.txt # for compat32, we assume x86_64 CPUs handle i686 instructions. also, # unlike normal 32-bit packages, this one gets -fPIC (which won't hurt). [ "$COMPAT32" = "yes" ] && buildit "-m32 -march=i686 -mtune=i686" "" # either way, build the normal libraries with normal cflags. buildit "" "$LIBDIRSUFFIX" gzip -9 $PKG/usr/man/*/* if [ "$HEADERS" = "yes" ]; then mkdir -p $PKG/usr/include cp -a 3rdparty/pulseaudio-headers/pulse $PKG/usr/include install_pc "$LIBDIRSUFFIX" [ "$COMPAT32" = "yes" ] && install_pc "" fi mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/ cp -a LICENSE.MIT README.md $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install sed "s,@COEXIST@,$COEXIST," $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}