On Linux, install the development packages for FreeType, Cairo, and GLib. For example, on Ubuntu / Debian, you would do:
whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do:
on Windows, consider using vcpkg, provided by Microsoft, for building HarfBuzz and other open-source libraries but if you need to build harfbuzz from source, put ragel binary on your PATH and follow appveyor CI's cmake build steps.
on macOS, using MacPorts:
or using Homebrew:
If you are using a tarball, you can now proceed to running configure and make as with any other standard package. That should leave you with a shared library in src/, and a few utility programs including hb-view and hb-shape under util/. If you are bootstraping from git, you need a few more tools before you can run autogen.sh for the first time. Namely, pkg-config and ragel. Again, on Ubuntu / Debian:
and on Fedora, RHEL, CentOS:
on the Mac, using MacPorts:
or using Homebrew:
To build the Python bindings, you also need: