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