aboutsummaryrefslogtreecommitdiff
path: root/audio/mhwaveedit/mhwaveedit.SlackBuild
blob: dc3b0b5e8fd8fb3572b328986e7f8442cfb8ad34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/bash

# Slackware build script for mhwaveedit
# Originally written by Felix Krueger

# Now maintained by B. Watson <urchlay@slackware.uk>. Original script
# had no license. Modified version licensed under the WTFPL. See
# http://www.wtfpl.net/txt/copying/ for details.

# 20211127 bkw: BUILD=2
# - portaudio support was broken, explicitly disable it and remove
#   from README.
# - add JACK=no in case someone needs it.
# - dynamic slack-desc.

# 20181022 bkw:
# - Take over maintenance.
# - Update for v1.4.24. Incompatible changes, can't build old version.
# - Add PULSE and OSS env vars.
# - If JACK support is built-in, do the realtime stuff.
# - Minor script cleanups.
# - Don't install the install directions in docdir.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=mhwaveedit
VERSION=${VERSION:-1.4.24}
BUILD=${BUILD:-2}
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 [ ! -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.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 {} \+

# Fix "unknown type name 'Intbox'"
patch -p0 < $CWD/intbox.diff

# 20181023 bkw: environment variables to control the build options.
PULSE="${PULSE:-yes}"
OSS="${OSS:-no}"
JACK="${JACK:-yes}"

[ "$PULSE" = "no" ] && EXTRAOPTS+=" --without-pulse"
[ "$OSS"   = "no" ] && EXTRAOPTS+=" --without-oss"
[ "$JACK"  = "no" ] && EXTRAOPTS+=" --without-jack"

# 20211127 bkw: this just sets the default; it can be changed in the
# preferences.
MIXER="${MIXER:-xterm -e alsamixer}"

# 20211127 bkw: add --without-portaudio. Our portaudio lacks the
# Pa_Timestamp type, so the configure script would disable it anyway.
# Not sure if that means our portaudio is too new or too old, not
# all that interested anyway.

CFLAGS="$SLKCFLAGS" \
  ./configure \
  --with-default-mixerapp="$MIXER" \
  $EXTRAOPTS \
  --without-portaudio \
  --with-default-ladspa-path=/usr/lib$LIBDIRSUFFIX/ladspa \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --mandir=/usr/man \
  --with-double-samples \
  --without-arts \
  --without-esound \
  --build=$ARCH-slackware-linux

make
make install DESTDIR=$PKG
strip $PKG/usr/bin/$PRGNAM
gzip $PKG/usr/man/man1/$PRGNAM.1

mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
ln -s ../icons/hicolor/64x64/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING ChangeLog NEWS README TODO $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/doinst.sh > $PKG/install/doinst.sh

J=no; P=no; O=no

objdump -p $PKG/usr/bin/$PRGNAM | grep -q 'NEEDED.*libpulse' && P=yes
strings    $PKG/usr/bin/$PRGNAM | grep -q /dev/dsp           && O=yes

# realtime audio stuff only if JACK support included.
if objdump -p $PKG/usr/bin/$PRGNAM | grep -q 'NEEDED.*libjack'; then
  J=yes
  if [ "${SETCAP:-yes}" = "yes" ]; then
    cat $CWD/setcap.sh >> $PKG/install/doinst.sh
    chown root:audio $PKG/usr/bin/$PRGNAM
    chmod 0750 $PKG/usr/bin/$PRGNAM
  fi
fi

sed -e "s,@J@,$J," \
    -e "s,@P@,$P," \
    -e "s,@O@,$O," \
  $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE