summaryrefslogtreecommitdiff
path: root/graphics/fontmatrix/fontmatrix.SlackBuild
blob: c14a4b7665a2332ecc6bd8eb11e89980ca23229b (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
#!/bin/sh

# Slackware build script for fontmatrix

# Written by Larry Hajali <larryhaja[at]gmail[dot]com>

PRGNAM=fontmatrix
VERSION=${VERSION:-0.6.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
       *) 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

# Decide if we compile fontmatrix with icu4c and/or podofo support. Default is no.
HAVE_ICU=${HAVE_ICU:-no}
HAVE_PODOFO=${HAVE_PODOFO:-no}

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-Source
tar xvf $CWD/$PRGNAM-$VERSION-Source.tar.gz
cd $PRGNAM-$VERSION-Source
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 {} \;

# Fix the desktop menu item, location of man files, and PODOFO lib64 detection.
echo "StartupNotify=false" >> $PRGNAM.desktop
sed -i 's|share/man|man|' CMakeLists.txt
patch -p1 < $CWD/fix-podofo-detection.patch
# Cmake uses the static python lib. Let's use the shared lib instead.
PYVER=$(python -c 'import sys; print sys.version[:3]')
PY_LIB_SHARED="/usr/lib${LIBDIRSUFFIX}/libpython${PYVER}.so"

# Decide if we use ICU.
if [ "${HAVE_ICU}" == "yes" ]; then
  USE_ICU="TRUE"
else
  USE_ICU="FALSE"
fi

# Decide if we use PODOFO.
if [ "${HAVE_PODOFO}" == "yes" ]; then
  USE_PODOFO="TRUE"
else
  USE_PODOFO="FALSE"
fi

mkdir build && cd build
  cmake \
    -DCMAKE_INSTALL_PREFIX:PATH=/usr \
    -DLIB_SUFFIX=${LIBDIRSUFFIX} \
    -DPYTHON_LIBRARY:PATH="$PY_LIB_SHARED" \
    -DOWN_SHAPER:BOOL=1 \
    -DCMAKE_SKIP_RPATH:BOOL=1 \
    -DRPATH_STYLE:STRING=none \
    -DWANT_ICU:BOOL="$USE_ICU" \
    -DWANT_M17N:BOOL=true \
    -DWANT_PYTHONQT:BOOL=true \
    -DWANT_PODOFO:BOOL="$USE_PODOFO" \
    -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_BUILD_TYPE=Release ..

  # Remove -O3 flag.
  for i in $(find . -name "flags.make"); do
    sed -i 's|-O3||g' $i
  done

  make VERBOSE=1
  make install DESTDIR=$PKG
cd ..

find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

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

rm -rf $PKG/usr/share/icons
for i in 16 22 32 48 64 128; do
  mkdir -p $PKG/usr/share/icons/hicolor/${i}x${i}/apps
  install -m 0644 src/icons/application-fontmatrix_${i}.png \
    $PKG/usr/share/icons/hicolor/${i}x${i}/apps/$PRGNAM.png
done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
  COPYING INSTALL TODO harfbuzz/{COPYING.*,README,AUTHORS} \
  $PKG/usr/doc/$PRGNAM-$VERSION
cat harfbuzz/COPYING > $PKG/usr/doc/$PRGNAM-$VERSION/COPYING.harfbuzz
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chmod 0644 $PKG/usr/doc/$PRGNAM-$VERSION/*

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}