1 On Linux, install the development packages for FreeType, 2 Cairo, and GLib. For example, on Ubuntu / Debian, you would do: 3 * sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev 4 5 whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: 6 * sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel 7 8 on Windows, consider using [vcpkg](https://github.com/Microsoft/vcpkg), 9 provided by Microsoft, for building HarfBuzz and other open-source libraries 10 but if you need to build harfbuzz from source, put ragel binary on your 11 PATH and follow appveyor CI's cmake 12 [build steps](https://github.com/harfbuzz/harfbuzz/blob/master/appveyor.yml). 13 14 on macOS, using MacPorts: 15 * sudo port install freetype glib2 cairo 16 17 or using Homebrew: 18 * brew install freetype glib cairo 19 20 If you are using a tarball, you can now proceed to running configure and make 21 as with any other standard package. That should leave you with a shared 22 library in src/, and a few utility programs including hb-view and hb-shape 23 under util/. 24 If you are bootstraping from git, you need a few more tools before you can 25 run autogen.sh for the first time. Namely, pkg-config and ragel. Again, 26 on Ubuntu / Debian: 27 * sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools 28 29 and on Fedora, RHEL, CentOS: 30 * sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc 31 32 on the Mac, using MacPorts: 33 * sudo port install autoconf automake libtool pkgconfig ragel gtk-doc 34 35 or using Homebrew: 36 * brew install autoconf automake libtool pkgconfig ragel gtk-doc 37 38 To build the Python bindings, you also need: 39 40 * brew install pygobject3 41