There is also a circular dependency between freetype and HarfBuzz.
Note that fontconfig and Cario are only needed for the tests and tools built with HarfBuzz and thus it appears safe to configure them out:
1) Build Freetype using:
./configure --prefix=/usr/local \
--disable-shared \
--enable-static \
--with-harfbuzz=no
2) Build HarfBuzz using:
./configure --prefix=/usr/local \
--disable-shared \
--enable-static \
--with-fontconfig=no \
--with-cairo=no
3) Build Freetype using:
./configure --prefix=/usr/local \
--disable-shared \
--enable-static \
--with-harfbuzz=yes
4) Build fontconfig.
./configure --prefix=/usr/local \
--disable-shared \
--enable-static
5) Build pixman.
./configure \
--prefix=/usr/local \
--disable-shared \
--enable-static \
--disable-gtk
6) Build Cairo.
./configure \
--prefix=/usr/local \
--disable-shared \
--enable-static
7) Build HarfBuzz using:
./configure --prefix=/usr/local \
--disable-shared \
--enable-static \
--with-fontconfig=yes \
--with-cairo=yes
HarfBuzz 第二次静态编译后 LINK 时加 -hatfbuzz -freetype
FreeType LINK 时加 -freetype -hatfbuzz -freetype 虽然很搞笑,但是必须这样子;