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
|
#!/bin/bash
# Slackware build script for mac
# Originally written by Luis Henrique <email removed>
# Now maintained by B. Watson <urchlay@slackware.uk>
# Original version of this script had no license. Modified version
# licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/
# for details.
# 20211125 bkw: BUILD=2
# - add -DSHNTOOL to CXXFLAGS, which enables human-readable
# error messages (but not shn support).
# - add README note about 'invalid input file' error.
# - update README and slack-desc.
# - add man page.
# 20190107 bkw:
# - download URL went away, use netbsd pkgsrc
# - add FORCE_SLACK_CFLAGS option (probably nobody needs it)
# 20180105 bkw:
# - take over maintenance
# - update for 3.99_u4_b5_s7 (BUILD=1)
# - add ASM environment variable
# - don't install INSTALL in doc dir
# - get rid of .la file
# - minor script simplification
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mac
VERSION=${VERSION:-3.99_u4_b5_s7}
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 we're on x86 or x86_64, with MMX support, there's optimized
# assembly code we can use. If ARCH is unknown, or if ASM=no in
# the environment, disable it.
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
ASM=${ASM:-yes}
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
ASM=${ASM:-yes}
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
ASM=${ASM:-yes}
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
ASM=${ASM:-no}
fi
set -e
SRCVER=${VERSION//_/-}
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$SRCVER
tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz
cd $PRGNAM-$SRCVER
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 {} \+
if [ "${FORCE_SLACK_CFLAGS:-no}" = "yes" ]; then
sed -i 's,-O3\>,,' configure
fi
patch -p1 < $CWD/gcc6.patch
# This option isn't well explained... it turns on human-readable error
# messages (without it, you get "Error: 1002", no idea WTF it means),
# and the -q (quick verify) option. It does *not* make mac able to
# read/write .shn files... I would never have known any of this from
# reading the docs, had to read the source.
SLKCFLAGS+=" -DSHNTOOL"
# Clean up the usage output a little.
sed -i -e 's,\[EXE\],mac,' \
-e 's,mac\.exe,mac,' \
-e 's,int filenames,filenames w/spaces,' \
src/Console/Console.cpp
LDFLAGS="-Wl,-s" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--enable-shared=yes \
--enable-static=no \
--enable-assembly=$ASM \
--build=$ARCH-slackware-linux
make all
make install DESTDIR=$PKG
# We don't need this:
rm -f $PKG/usr/lib$LIBDIRSUFFIX/*.la
# 20211125 bkw: man page by SlackBuild author. I got bored, sorry.
mkdir -p $PKG/usr/man/man1
gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a AUTHORS src/License.htm ChangeLog* NEWS README TODO $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|