blob: 899cc5bd671b3d87fcea4f02c289008d424abc22 [file] [log] [blame]
Khaled Hosnyd25317f2015-12-23 01:29:48 +04001<chapter id="install-harfbuzz">
Behdad Esfahboda0ad0d52017-11-20 15:07:48 -08002 <title>Install HarfBuzz</title>
Khaled Hosnyd25317f2015-12-23 01:29:48 +04003 <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>.
ebraminio7c6937e2017-11-20 14:49:22 -050015 Also available on <ulink url="https://github.com/harfbuzz/harfbuzz">github</ulink>.
Khaled Hosnyd25317f2015-12-23 01:29:48 +040016 </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 Mitchener85ec6d32018-01-03 01:23:23 +070053 If you are bootstrapping from git, you need a few more tools before you
Khaled Hosnyd25317f2015-12-23 01:29:48 +040054 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>