1*c8dee2aaSAndroid Build Coastguard Worker#!/bin/sh 2*c8dee2aaSAndroid Build Coastguard Worker# Some of HarfBuzz's headers are created at build time using the Ragel 3*c8dee2aaSAndroid Build Coastguard Worker# State Machine Compiler. To reduce complex dependencies, I pre-built 4*c8dee2aaSAndroid Build Coastguard Worker# these files: 5*c8dee2aaSAndroid Build Coastguard Worker# hb-buffer-deserialize-json.hh 6*c8dee2aaSAndroid Build Coastguard Worker# hb-buffer-deserialize-text.hh 7*c8dee2aaSAndroid Build Coastguard Worker# hb-ot-shape-complex-indic-machine.hh 8*c8dee2aaSAndroid Build Coastguard Worker# hb-ot-shape-complex-myanmar-machine.hh 9*c8dee2aaSAndroid Build Coastguard Worker# hb-ot-shape-complex-use-machine.hh 10*c8dee2aaSAndroid Build Coastguard Worker# from these sources: 11*c8dee2aaSAndroid Build Coastguard Worker# ../externals/harfbuzz/src/hb-buffer-deserialize-json.rl 12*c8dee2aaSAndroid Build Coastguard Worker# ../externals/harfbuzz/src/hb-buffer-deserialize-text.rl 13*c8dee2aaSAndroid Build Coastguard Worker# ../externals/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl 14*c8dee2aaSAndroid Build Coastguard Worker# ../externals/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl 15*c8dee2aaSAndroid Build Coastguard Worker# ../externals/harfbuzz/src/hb-ot-shape-complex-use-machine.rl 16*c8dee2aaSAndroid Build Coastguard Worker# 17*c8dee2aaSAndroid Build Coastguard Worker# The files in this directory are created by installing the 18*c8dee2aaSAndroid Build Coastguard Worker# prerequiste packages, checking out a new version of HarfBuzz, doing 19*c8dee2aaSAndroid Build Coastguard Worker# `./autogen.sh && ./configure && make`, then copying the 20*c8dee2aaSAndroid Build Coastguard Worker# autogenerated .h and .hh files to this directory. 21*c8dee2aaSAndroid Build Coastguard Worker# 22*c8dee2aaSAndroid Build Coastguard Worker# These files are now checked into the git repository and the HarfBuzz 23*c8dee2aaSAndroid Build Coastguard Worker# maintainers keep them up to date by using the build rules in the HarfBuzz 24*c8dee2aaSAndroid Build Coastguard Worker# build. As a result this step is no longer necessary, but if we need to 25*c8dee2aaSAndroid Build Coastguard Worker# regenerate these files ourselves, this is how to do it. 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Workerset -e 28*c8dee2aaSAndroid Build Coastguard Workerset -x 29*c8dee2aaSAndroid Build Coastguard Workerfor package in automake libtool pkg-config ragel gtk-doc-tools; do 30*c8dee2aaSAndroid Build Coastguard Worker if ! ( dpkg-query -W -f'${Status}' "$package" 2>/dev/null | \ 31*c8dee2aaSAndroid Build Coastguard Worker grep -q "ok installed" ); then 32*c8dee2aaSAndroid Build Coastguard Worker sudo apt-get install "$package" 33*c8dee2aaSAndroid Build Coastguard Worker fi 34*c8dee2aaSAndroid Build Coastguard Workerdone 35*c8dee2aaSAndroid Build Coastguard Workercd "$(dirname "$0")/../externals/harfbuzz" 36*c8dee2aaSAndroid Build Coastguard Worker./autogen.sh 37*c8dee2aaSAndroid Build Coastguard Worker./configure 38*c8dee2aaSAndroid Build Coastguard Workermake -j4 39*c8dee2aaSAndroid Build Coastguard Workercp src/hb-version.h ../../harfbuzz/ 40*c8dee2aaSAndroid Build Coastguard Workerfor RAGEL_FILE in src/*.rl; do 41*c8dee2aaSAndroid Build Coastguard Worker BUILT_HEADER="src/$(basename "$RAGEL_FILE" '.rl').hh" 42*c8dee2aaSAndroid Build Coastguard Worker if [ -f "$BUILT_HEADER" ]; then 43*c8dee2aaSAndroid Build Coastguard Worker cp -v "$BUILT_HEADER" ../../harfbuzz/ 44*c8dee2aaSAndroid Build Coastguard Worker fi 45*c8dee2aaSAndroid Build Coastguard Workerdone 46*c8dee2aaSAndroid Build Coastguard Workergit clean -fxd 47