| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 | 
							- #!/bin/sh
 
- #
 
- # This script builds a stand-alone binary for the command line version of
 
- # ttfautohint, downloading any necessary libraries.
 
- #
 
- # Version 2017-Aug-17.
 
- # Written by Werner Lemberg <wl@gnu.org>.
 
- # To the extent possible under law, the person who associated CC0 with this work
 
- # has waived all copyright and related or neighboring rights to this work.
 
- #
 
- # User configuration.
 
- #
 
- # The build directory.
 
- BUILD="$HOME/ttfautohint-build"
 
- # The library versions.
 
- FREETYPE_VERSION="2.8"
 
- HARFBUZZ_VERSION="1.4.8"
 
- TTFAUTOHINT_VERSION="1.6"
 
- # Necessary patches (lists of at most 10 URLs each separated by whitespace,
 
- # to be applied in order).
 
- FREETYPE_PATCHES=""
 
- HARFBUZZ_PATCHES=""
 
- TTFAUTOHINT_PATCHES=""
 
- #
 
- # Nothing to configure below this comment.
 
- #
 
- FREETYPE="freetype-$FREETYPE_VERSION"
 
- HARFBUZZ="harfbuzz-$HARFBUZZ_VERSION"
 
- TTFAUTOHINT="ttfautohint-$TTFAUTOHINT_VERSION"
 
- if test -d "$BUILD" -o -f "$BUILD"; then
 
-   echo "Build directory \`$BUILD' must not exist."
 
-   exit 1
 
- fi
 
- INST="$BUILD/local"
 
- mkdir "$BUILD"
 
- mkdir "$INST"
 
- cd "$BUILD"
 
- echo "#####"
 
- echo "Download all necessary archives and patches."
 
- echo "#####"
 
- curl -L -O "http://download.savannah.gnu.org/releases/freetype/$FREETYPE.tar.gz"
 
- curl -O "https://www.freedesktop.org/software/harfbuzz/release/$HARFBUZZ.tar.bz2"
 
- curl -L -O "http://download.savannah.gnu.org/releases/freetype/$TTFAUTOHINT.tar.gz"
 
- count=0
 
- for i in $FREETYPE_PATCHES
 
- do
 
-   curl -o ft-patch-$count.diff $i
 
-   count=`expr $count + 1`
 
- done
 
- count=0
 
- for i in $HARFBUZZ_PATCHES
 
- do
 
-   curl -o hb-patch-$count.diff $i
 
-   count=`expr $count + 1`
 
- done
 
- count=0
 
- for i in $TTFAUTOHINT_PATCHES
 
- do
 
-   curl -o ta-patch-$count.diff $i
 
-   count=`expr $count + 1`
 
- done
 
- # Our environment variables.
 
- TA_CPPFLAGS="-I$INST/include"
 
- TA_CFLAGS="-g -O2"
 
- TA_CXXFLAGS="-g -O2"
 
- TA_LDFLAGS="-L$INST/lib"
 
- echo "#####"
 
- echo "Extract archives."
 
- echo "#####"
 
- tar -xzvf "$FREETYPE.tar.gz"
 
- tar -xjvf "$HARFBUZZ.tar.bz2"
 
- tar -xzvf "$TTFAUTOHINT.tar.gz"
 
- echo "#####"
 
- echo "Apply patches."
 
- echo "#####"
 
- cd "$FREETYPE"
 
- for i in ../ft-patch-*.diff
 
- do
 
-   test -f $i || continue
 
-   patch --forward \
 
-         --strip=1 \
 
-         --reject-file=- \
 
-         < $i
 
- done
 
- cd ..
 
- cd "$HARFBUZZ"
 
- for i in ../hb-patch-*.diff
 
- do
 
-   test -f $i || continue
 
-   patch --forward \
 
-         --strip=1 \
 
-         --reject-file=- \
 
-         < $i
 
- done
 
- cd ..
 
- cd "$TTFAUTOHINT"
 
- for i in ../ta-patch-*.diff
 
- do
 
-   test -f $i || continue
 
-   patch --forward \
 
-         --strip=1 \
 
-         --reject-file=- \
 
-         < $i
 
- done
 
- cd ..
 
- echo "#####"
 
- echo "$FREETYPE"
 
- echo "#####"
 
- cd "$FREETYPE"
 
- ./configure \
 
-   --without-bzip2 \
 
-   --without-png \
 
-   --without-zlib \
 
-   --without-harfbuzz \
 
-   --prefix="$INST" \
 
-   --enable-static \
 
-   --disable-shared \
 
-   CFLAGS="$TA_CPPFLAGS $TA_CFLAGS" \
 
-   CXXFLAGS="$TA_CPPFLAGS $TA_CXXFLAGS" \
 
-   LDFLAGS="$TA_LDFLAGS"
 
- make
 
- make install
 
- cd ..
 
- echo "#####"
 
- echo "$HARFBUZZ"
 
- echo "#####"
 
- cd "$HARFBUZZ"
 
- ./configure \
 
-   --disable-dependency-tracking \
 
-   --disable-gtk-doc-html \
 
-   --with-glib=no \
 
-   --with-cairo=no \
 
-   --with-fontconfig=no \
 
-   --with-icu=no \
 
-   --prefix="$INST" \
 
-   --enable-static \
 
-   --disable-shared \
 
-   CFLAGS="$TA_CPPFLAGS $TA_CFLAGS" \
 
-   CXXFLAGS="$TA_CPPFLAGS $TA_CXXFLAGS" \
 
-   LDFLAGS="$TA_LDFLAGS" \
 
-   PKG_CONFIG=true \
 
-   FREETYPE_CFLAGS="-I$INST/include/freetype2" \
 
-   FREETYPE_LIBS="-L$INST/lib -lfreetype"
 
- make
 
- make install
 
- cd ..
 
- echo "#####"
 
- echo "$TTFAUTOHINT"
 
- echo "#####"
 
- cd "$TTFAUTOHINT"
 
- ./configure \
 
-   --disable-dependency-tracking \
 
-   --without-qt \
 
-   --without-doc \
 
-   --prefix="$INST" \
 
-   --enable-static \
 
-   --disable-shared \
 
-   --with-freetype-config="$INST/bin/freetype-config" \
 
-   CFLAGS="$TA_CPPFLAGS $TA_CFLAGS" \
 
-   CXXFLAGS="$TA_CPPFLAGS $TA_CXXFLAGS" \
 
-   LDFLAGS="$TA_LDFLAGS" \
 
-   PKG_CONFIG=true \
 
-   HARFBUZZ_CFLAGS="-I$INST/include/harfbuzz" \
 
-   HARFBUZZ_LIBS="-L$INST/lib -lharfbuzz"
 
- make LDFLAGS="$TA_LDFLAGS -all-static"
 
- make install-strip
 
- cd ..
 
- echo "#####"
 
- echo "binary: $INST/bin/ttfautohint"
 
- echo "#####"
 
- # eof
 
 
  |