blob: 89bf93fa59c16a148400f12ae6650cee16c663de [file] [log] [blame]
halcanary00d44e02016-05-03 15:09:52 -07001#!/bin/sh
2# Some of HarfBuzz's headers are created at build time using the Ragel
3# State Machine Compiler. To reduce complex dependencies, I pre-built
4# these files:
5# hb-buffer-deserialize-json.hh
6# hb-buffer-deserialize-text.hh
7# hb-ot-shape-complex-indic-machine.hh
8# hb-ot-shape-complex-myanmar-machine.hh
9# hb-ot-shape-complex-use-machine.hh
10# from these sources:
11# ../externals/harfbuzz/src/hb-buffer-deserialize-json.rl
12# ../externals/harfbuzz/src/hb-buffer-deserialize-text.rl
13# ../externals/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl
14# ../externals/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl
15# ../externals/harfbuzz/src/hb-ot-shape-complex-use-machine.rl
16#
17# The files in this directory are created by installing the
18# prerequiste packages, checking out a new version of HarfBuzz, doing
19# `./autogen.sh && ./configure && make`, then copying the
20# autogenerated .h and .hh files to this directory.
21
22set -e
23set -x
24for package in automake libtool pkg-config ragel gtk-doc-tools; do
25 if ! ( dpkg-query -W -f'${Status}' "$package" 2>/dev/null | \
26 grep -q "ok installed" ); then
27 sudo apt-get install "$package"
28 fi
29done
30cd "$(dirname "$0")/../externals/harfbuzz"
31./autogen.sh
32./configure
33make -j4
34cp src/hb-version.h ../../harfbuzz/
35for RAGEL_FILE in src/*.rl; do
36 BUILT_HEADER="src/$(basename "$RAGEL_FILE" '.rl').hh"
37 if [ -f "$BUILT_HEADER" ]; then
38 cp -v "$BUILT_HEADER" ../../harfbuzz/
39 fi
40done
41git clean -fxd