Khaled Hosny | d25317f | 2015-12-23 01:29:48 +0400 | [diff] [blame] | 1 | <chapter id="install-harfbuzz"> |
Behdad Esfahbod | a0ad0d5 | 2017-11-20 15:07:48 -0800 | [diff] [blame] | 2 | <title>Install HarfBuzz</title> |
Khaled Hosny | d25317f | 2015-12-23 01:29:48 +0400 | [diff] [blame] | 3 | <section id="download"> |
| 4 | <title id="download.title">Download</title> |
| 5 | <para> |
| 6 | For tarball releases of HarfBuzz, look |
| 7 | <ulink url="http://www.freedesktop.org/software/harfbuzz/release/">here</ulink>. |
| 8 | At the same place you will |
| 9 | also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, |
| 10 | hb-shape.exe, and all dependencies. |
| 11 | </para> |
| 12 | <para> |
| 13 | The canonical source tree is available |
| 14 | <ulink url="http://cgit.freedesktop.org/harfbuzz/">here</ulink>. |
ebraminio | 7c6937e | 2017-11-20 14:49:22 -0500 | [diff] [blame] | 15 | Also available on <ulink url="https://github.com/harfbuzz/harfbuzz">github</ulink>. |
Khaled Hosny | d25317f | 2015-12-23 01:29:48 +0400 | [diff] [blame] | 16 | </para> |
| 17 | <para> |
| 18 | The API that comes with <filename class='headerfile'>hb.h</filename> will |
| 19 | not change incompatibly. Other, peripheral, headers are more likely to go |
| 20 | through minor modifications, but again, will do our best to never change |
| 21 | API in an incompatible way. We will never break the ABI. |
| 22 | </para> |
| 23 | <para> |
| 24 | If you are not sure whether Pango or HarfBuzz is right for you, read |
| 25 | <ulink url="http://mces.blogspot.in/2009/11/pango-vs-harfbuzz.html">this</ulink>. |
| 26 | </para> |
| 27 | </section> |
| 28 | <section id="building"> |
| 29 | <title>Building</title> |
| 30 | <para> |
| 31 | On Linux, install the development packages for FreeType, Cairo, and GLib. |
| 32 | For example, on Ubuntu / Debian, you would do: |
| 33 | <programlisting> |
| 34 | <command>sudo apt-get install</command> <package>gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev</package> |
| 35 | </programlisting> |
| 36 | whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: |
| 37 | <programlisting> |
| 38 | <command>sudo yum install</command> <package>gcc gcc-c++ freetype-devel glib2-devel cairo-devel</package> |
| 39 | </programlisting> |
| 40 | or using MacPorts: |
| 41 | <programlisting> |
| 42 | <command>sudo port install</command> <package>freetype glib2 cairo</package> |
| 43 | </programlisting> |
| 44 | </para> |
| 45 | <para> |
| 46 | If you are using a tarball, you can now proceed to running |
| 47 | <command>configure</command> and <command>make</command> as with any |
| 48 | other standard package. That should leave you with a shared library in |
| 49 | <filename>src/</filename>, and a few utility programs including hb-view |
| 50 | and hb-shape under <filename>util/</filename>. |
| 51 | </para> |
| 52 | <para> |
Bruce Mitchener | 85ec6d3 | 2018-01-03 01:23:23 +0700 | [diff] [blame] | 53 | If you are bootstrapping from git, you need a few more tools before you |
Khaled Hosny | d25317f | 2015-12-23 01:29:48 +0400 | [diff] [blame] | 54 | can run <filename>autogen.sh</filename> for the first time. Namely, |
| 55 | pkg-config and <ulink url="http://www.complang.org/ragel/">ragel</ulink>. |
| 56 | Again, on Ubuntu / Debian: |
| 57 | <programlisting> |
| 58 | <command>sudo apt-get install</command> <package>autoconf automake libtool pkg-config ragel gtk-doc-tools</package> |
| 59 | </programlisting> |
| 60 | and on Fedora, RHEL, CentOS: |
| 61 | <programlisting> |
| 62 | <command>sudo yum install</command> <package>autoconf automake libtool pkgconfig ragel gtk-doc</package> |
| 63 | </programlisting> |
| 64 | or using MacPorts: |
| 65 | <programlisting> |
| 66 | <command>sudo port install</command> <package>autoconf automake libtool pkgconfig ragel gtk-doc</package> |
| 67 | </programlisting> |
| 68 | </para> |
| 69 | </section> |
| 70 | </chapter> |