summaryrefslogtreecommitdiff
path: root/audio/alsa-tools/alsa-tools.SlackBuild
blob: b5b1a0e4d9a57e83541024854e8950b0a45ce97a (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
151
152
153
154
155
156
#!/bin/bash

# Slackware build script for alsa-tools

# Written by B. Watson (yalhcru@gmail.com)

# Licensed under the WTFPL. See http://sam.zoy.org/wtfpl/ for details.

# I am *not* going to create separate packages for each of the individual
# tools, as some distros do. They're small enough that it's worth the
# tiny bit of extra disk space for unused tools, to avoid the annoyances
# of having to write and test 10 or 12 packages. For the same reason,
# the firmware is being included in the package as well.
# *** I agree.  --rworkman   :-)

PRGNAM=alsa-tools
VERSION=${VERSION:-1.0.25}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

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

FIRMWARE=alsa-firmware

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT

# first, alsa-tools itself... which is really a bunch of separate packages
# that happen to be tarred up together.
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
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 {} \;

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION

# qlo10k1 depends on Qt3, which no longer ships with Slackware.
# This supports the SBo qt3 build. It's not enough to source qt.sh,
# the qt3 bin directories need to come first in $PATH too.
# If you got your Qt3 from some other source, you may have to
# fiddle with QTDIR and PATH yourself.
if [ "${QT3:-no}" = "yes" ]; then
  source /etc/profile.d/qt.sh
  export PATH=/opt/kde3/lib/qt3/bin:/opt/kde3/bin:$PATH
else
  rm -rf qlo10k1
fi

# one loop to build them all
for subdir in $( find . -name configure | sed -e 's,^\./,,' -e 's,/configure,,' ); do
  cd $subdir

  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./configure \
    --prefix=/usr \
    --libdir=/usr/lib${LIBDIRSUFFIX} \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/man \
    --docdir=/usr/doc/$PRGNAM-$VERSION \
    --build=$ARCH-slackware-linux

  make
  make install-strip DESTDIR=$PKG

  for doc in README AUTHORS COPYING ChangeLog NEWS TODO COPYING.LIB; do
    [ -s "$doc" ] && cat "$doc" > $PKG/usr/doc/$PRGNAM-$VERSION/$doc.$( basename $subdir ).txt
  done
  cd -
done

# second, build the firmware
rm -rf $FIRMWARE-$VERSION
tar xvf $CWD/$FIRMWARE-$VERSION.tar.bz2
cd $FIRMWARE-$VERSION
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 {} \;

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
 --prefix=/usr \
 --libdir=/usr/lib${LIBDIRSUFFIX} \
 --sysconfdir=/etc \
 --localstatedir=/var \
 --mandir=/usr/man \
 --docdir=/usr/doc/$PRGNAM-$VERSION \
 --with-hotplug-dir=/lib/firmware \
 --build=$ARCH-slackware-linux

make
make install-strip DESTDIR=$PKG

# remove the hotplug scripts, since Slackware 13.37 doesn't use hotplug.
# Instead, they've been converted to udev rules.
rm -rf $PKG/etc/hotplug

mkdir -p $PKG/lib/udev/rules.d
cat $CWD/99-tascam.rules > $PKG/lib/udev/rules.d/99-tascam.rules

cat COPYING > $PKG/usr/doc/$PRGNAM-$VERSION/COPYING.firmware.txt
cat README > $PKG/usr/doc/$PRGNAM-$VERSION/README.firmware.txt

# I wrote this doc when I got my US-122, might as well include it in
# case it helps anyone.
cat $CWD/tascam-us122-HOWTO > $PKG/usr/doc/$PRGNAM-$VERSION/tascam-us122-HOWTO

cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

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}