blob: 2df43bdf18e1530c7c8939bd5ce45b248d23693b (
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
|
#!/bin/bash
# Slackware build script for zita-convolver
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# This SlackBuild has a bit more logic than most, due to the various
# optimizations. See README for executive summary.
# 20191202 bkw: updated for v4.0.3.
# 20180615 bkw: updated for v4.0.0.
# Note to self: finish and upload SlackBuild for jconvolver, that was
# the original purpose for adding zita-convolver to the repo...
PRGNAM=zita-convolver
VERSION=${VERSION:-4.0.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
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}
# Allow the user to use -O2 (like a regular slackbuild) instead of
# the -O3 the zita-convolver author uses.
if [ "${FORCE_O2:-no}" = "yes" ]; then
OPTFLAG="-O2"
else
OPTFLAG="-O3"
fi
# Source is smart enough to know about lib vs. lib64, no need for
# LIBDIRSUFFIX here.
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="$OPTFLAG -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="$OPTFLAG -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="$OPTFLAG -fPIC"
else
SLKCFLAGS="$OPTFLAG"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
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 {} \+
[ -d libs ] && cd libs || cd source
# Fix 'make install' so it strips, and so we don't waste time running ldconfig
sed -i -e 's/install -m 755/& -s/' -e '/ldconfig$/d' Makefile
# Autodetection for MMX
if [ "${MMX:-auto}" = "auto" ]; then
if grep -q '\<mmx\>' /proc/cpuinfo; then
MMX=yes
else
MMX=no
fi
fi
# Autodetection for SSE
if [ "${SSE:-auto}" = "auto" ]; then
if grep -q '\<sse\>' /proc/cpuinfo; then
SSE=yes
else
SSE=no
fi
fi
# MMX is now "yes" or "no" whether it was autodetected or explicitly
# set, we're ready to tweak the Makefile
if [ "$MMX" = "yes" ]; then
SLKCFLAGS="$SLKCFLAGS -mmmx"
elif [ "$MMX" != "no" ]; then
echo "MMX set to invalid value $MMX (must be blank, or one of 'yes' 'no' 'auto')" 1>&2
exit 1
fi
# Same as above, for SSE
if [ "$SSE" = "yes" ]; then
SLKCFLAGS="$SLKCFLAGS -msse -mfpmath=sse"
elif [ "$SSE" != "no" ]; then
echo "SSE set to invalid value $SSE (must be blank, or one of 'yes' 'no' 'auto')" 1>&2
exit 1
fi
# First, ditch the hard-coded -O3 upstream shipped us:
sed -i -e "s/-O3//" Makefile
# Set CPPFLAGS according to user options.
sed -i -e "s/-march=.*/$SLKCFLAGS/" Makefile
# Done dorking with the Makefile, we now return to regular SlackBuild stuff
make
make install PREFIX=$PKG/usr
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a ../README ../AUTHORS ../COPYING $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
# Include the MMX/SSE options in the slack-desc, in case the user has to build
# several packages (this will help keep them straight)
sed \
-e "s/@MMX@/$MMX/" \
-e "s/@SSE@/$SSE/" \
$CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|