blob: d171dc927739e958a599760a70e02f4039056d85 (
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
|
#!/bin/bash
# Slackware build script for glbsp
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20211008 bkw: BUILD=2
# - include missing *.txt docs.
# - make fltk an optional dep.
# - include new-style icons.
# - add .desktop for nodeview.
# 20170621 bkw: fix build for -current (post-14.2)
# 20151126 bkw: fix build for -current (preparing for 14.2)
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=glbsp
VERSION=${VERSION:-2.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
SRCVER=$( echo $VERSION | sed 's/\.//g' )
rm -rf $PKG
mkdir -p $TMP $PKG/usr/bin $PKG/usr/lib$LIBDIRSUFFIX $PKG/usr/man/man1 $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-source
tar xvf $CWD/${PRGNAM}_src_${SRCVER}.tar.gz
cd $PRGNAM-$VERSION-source
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 {} \+
# Use fltk-config --cflags and --ldflags instead of hardcoded values
patch -p1 < $CWD/fltkconf.diff
# Upstream doesn't build a shared lib, but we will by default.
if [ "${STATIC:-no}" != "yes" ]; then
patch -p1 < $CWD/dynamic_libglbsp.diff
fi
sed -i "s/-O2/$SLKCFLAGS/" Makefile.unx
# Fix build on gcc7
sed -i 's,return *false,return 0,' nodeview/path.cc
make -f Makefile.unx
make -f Makefile.unx install \
INSTALL_PREFIX=$PKG/usr \
MAN_PREFIX=$PKG/usr/man \
LIBDIR=$PKG/usr/lib$LIBDIRSUFFIX
gzip -9 $PKG/usr/man/man1/$PRGNAM.1
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
rm INSTALL.txt
cp -a *.txt $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX $PKG/usr/include/$PRGNAM
cat src/$PRGNAM.h > $PKG/usr/include/$PRGNAM/$PRGNAM.h
if [ "${STATIC:-no}" = "yes" ]; then
cat lib$PRGNAM.a > $PKG/usr/lib$LIBDIRSUFFIX/lib$PRGNAM.a
fi
# I don't know whether apps including this header normally #include
# <glbsp.h> or <glbsp/glbsp.h>. The Debian package has both (with
# /usr/include/glbsp.h as a symlink), I will do likewise.
( cd $PKG/usr/include ; ln -s $PRGNAM/$PRGNAM.h $PRGNAM.h ) || exit 1
INCLUDES="does not include"
# Build with FLTK=no if have fltk but don't need the GUI.
if [ "${FLTK:-yes}" = "yes" ] && [ -x /usr/bin/fltk-config ]; then
INCLUDES="includes"
make -f Makefile.unx glBSPX
cp glBSPX $PKG/usr/bin
mkdir -p $PKG/usr/share/pixmaps $PKG/usr/share/applications
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
cat $CWD/nodeview.desktop > $PKG/usr/share/applications/nodeview.desktop
cat gui/icon.xpm > $PKG/usr/share/pixmaps/$PRGNAM.xpm
cd nodeview
sed -i "s/-O -g3/$SLKCFLAGS/" Makefile.unx
make -f Makefile.unx bin
cp nodeview $PKG/usr/bin
cat README.txt TODO.txt > $PKG/usr/doc/$PRGNAM-$VERSION/nodeview.txt
cd ..
# 20211008 bkw: icons were extracted from included OSX icons with
# libicns, like so:
# icns2png -x gui/glBSPX.app/Contents/Resources/glbspx.icns
# rm -f *x1.png
for i in 16 32 48 128; do
size=${i}x${i}
dir=$PKG/usr/share/icons/hicolor/$size/apps
mkdir -p $dir
cat $CWD/icons/glbspx_${size}x32.png > $dir/$PRGNAM.png
done
fi
mkdir -p $PKG/install
sed "s,@INCLUDES@,$INCLUDES," < $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
|