SDL_ttf: Build SDL_ttf with the included FreeType and HarfBuzz, by default

From 834ec54127dc9c2a12928f5fe32cf110ec4c7a7f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 9 Apr 2021 12:18:47 -0700
Subject: [PATCH] Build SDL_ttf with the included FreeType and HarfBuzz, by
 default

---
 Makefile.am                                   |  135 +-
 Makefile.in                                   | 1823 +++++-
 aclocal.m4                                    |    2 +-
 configure                                     | 5753 ++++++++++++++---
 configure.ac                                  |  113 +-
 .../include/freetype/config/public-macros.h   |    2 +
 external/harfbuzz-2.8.0/config.h              |   12 +-
 7 files changed, 6979 insertions(+), 861 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 001fe3b..d0e861b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 # Makefile.am for the SDL truetype font loading library and viewer
 ACLOCAL_AMFLAGS = -I acinclude
-AUTOMAKE_OPTIONS= foreign
+AUTOMAKE_OPTIONS= foreign subdir-objects
 
 lib_LTLIBRARIES = libSDL2_ttf.la
 
@@ -11,21 +11,108 @@ libSDL2_ttfinclude_HEADERS =	\
 libSDL2_ttf_la_SOURCES =		\
 	SDL_ttf.c
 
-EXTRA_DIST =			\
-	Android.mk		\
-	debian			\
-	external		\
-	version.rc		\
-	Makefile.os2		\
-	VisualC			\
-	VisualC-WinRT		\
-	Xcode			\
-	SDL2_ttf.spec		\
-	SDL2_ttf.spec.in	\
-	SDL2_ttfConfig.cmake	\
-	gcc-fat.sh		\
-	autogen.sh		\
-	$(srcdir)/*.txt
+libSDL2_ttf_la_CPPFLAGS =
+
+FREETYPE_PATH := external/freetype-2.10.4
+FREETYPE_SOURCES := \
+	$(FREETYPE_PATH)/src/autofit/autofit.c \
+	$(FREETYPE_PATH)/src/base/ftbase.c \
+	$(FREETYPE_PATH)/src/base/ftbbox.c \
+	$(FREETYPE_PATH)/src/base/ftbdf.c \
+	$(FREETYPE_PATH)/src/base/ftbitmap.c \
+	$(FREETYPE_PATH)/src/base/ftcid.c \
+	$(FREETYPE_PATH)/src/base/ftdebug.c \
+	$(FREETYPE_PATH)/src/base/ftfstype.c \
+	$(FREETYPE_PATH)/src/base/ftgasp.c \
+	$(FREETYPE_PATH)/src/base/ftglyph.c \
+	$(FREETYPE_PATH)/src/base/ftgxval.c \
+	$(FREETYPE_PATH)/src/base/ftinit.c \
+	$(FREETYPE_PATH)/src/base/ftmm.c \
+	$(FREETYPE_PATH)/src/base/ftotval.c \
+	$(FREETYPE_PATH)/src/base/ftpatent.c \
+	$(FREETYPE_PATH)/src/base/ftpfr.c \
+	$(FREETYPE_PATH)/src/base/ftstroke.c \
+	$(FREETYPE_PATH)/src/base/ftsynth.c \
+	$(FREETYPE_PATH)/src/base/ftsystem.c \
+	$(FREETYPE_PATH)/src/base/fttype1.c \
+	$(FREETYPE_PATH)/src/base/ftwinfnt.c \
+	$(FREETYPE_PATH)/src/bdf/bdf.c \
+	$(FREETYPE_PATH)/src/bzip2/ftbzip2.c \
+	$(FREETYPE_PATH)/src/cache/ftcache.c \
+	$(FREETYPE_PATH)/src/cff/cff.c \
+	$(FREETYPE_PATH)/src/cid/type1cid.c \
+	$(FREETYPE_PATH)/src/gzip/ftgzip.c \
+	$(FREETYPE_PATH)/src/lzw/ftlzw.c \
+	$(FREETYPE_PATH)/src/pcf/pcf.c \
+	$(FREETYPE_PATH)/src/pfr/pfr.c \
+	$(FREETYPE_PATH)/src/psaux/psaux.c \
+	$(FREETYPE_PATH)/src/pshinter/pshinter.c \
+	$(FREETYPE_PATH)/src/psnames/psmodule.c \
+	$(FREETYPE_PATH)/src/raster/raster.c \
+	$(FREETYPE_PATH)/src/sfnt/sfnt.c \
+	$(FREETYPE_PATH)/src/smooth/smooth.c \
+	$(FREETYPE_PATH)/src/tools/apinames.c \
+	$(FREETYPE_PATH)/src/truetype/truetype.c \
+	$(FREETYPE_PATH)/src/type1/type1.c \
+	$(FREETYPE_PATH)/src/type42/type42.c \
+	$(FREETYPE_PATH)/src/winfonts/winfnt.c
+
+if USE_BUILTIN_FREETYPE
+libSDL2_ttf_la_SOURCES += $(FREETYPE_SOURCES)
+libSDL2_ttf_la_CPPFLAGS += -I$(FREETYPE_PATH)/include -DFT2_BUILD_LIBRARY -DFT_PUBLIC_FUNCTION_ATTRIBUTE=
+endif
+
+HARFBUZZ_PATH := external/harfbuzz-2.8.0
+HARFBUZZ_SOURCES := \
+	$(HARFBUZZ_PATH)/src/hb-aat-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-aat-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-blob.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer-serialize.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer.cc \
+	$(HARFBUZZ_PATH)/src/hb-common.cc \
+	$(HARFBUZZ_PATH)/src/hb-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-fallback-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-font.cc \
+	$(HARFBUZZ_PATH)/src/hb-ft.cc \
+	$(HARFBUZZ_PATH)/src/hb-number.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff1-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff2-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-font.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-math.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-metrics.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-arabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-default.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hangul.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hebrew.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-khmer.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-myanmar.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-syllabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-thai.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-use.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-vowel-constraints.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-fallback.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-normalize.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-tag.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-var.cc \
+	$(HARFBUZZ_PATH)/src/hb-set.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape-plan.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-shaper.cc \
+	$(HARFBUZZ_PATH)/src/hb-static.cc \
+	$(HARFBUZZ_PATH)/src/hb-ucd.cc \
+	$(HARFBUZZ_PATH)/src/hb-unicode.cc
+
+if USE_BUILTIN_HARFBUZZ
+libSDL2_ttf_la_SOURCES += $(HARFBUZZ_SOURCES)
+libSDL2_ttf_la_CPPFLAGS += -I$(HARFBUZZ_PATH) -I$(HARFBUZZ_PATH)/src -DHAVE_CONFIG_H -DFT_CONFIG_OPTION_USE_HARFBUZZ
+libSDL2_ttf_la_CXXFLAGS := -std=c++11
+endif
 
 if USE_VERSION_RC
 libSDL2_ttf_la_LDFLAGS = 	\
@@ -47,6 +134,22 @@ pkgconfig_DATA = SDL2_ttf.pc
 %.o : %.rc
 	$(WINDRES) $< $@
 
+EXTRA_DIST =			\
+	Android.mk		\
+	debian			\
+	external		\
+	version.rc		\
+	Makefile.os2		\
+	VisualC			\
+	VisualC-WinRT		\
+	Xcode			\
+	SDL2_ttf.spec		\
+	SDL2_ttf.spec.in	\
+	SDL2_ttfConfig.cmake	\
+	gcc-fat.sh		\
+	autogen.sh		\
+	$(srcdir)/*.txt
+
 noinst_PROGRAMS = showfont glfont
 
 showfont_LDADD = libSDL2_ttf.la
diff --git a/Makefile.in b/Makefile.in
index 57aee41..0da1825 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -91,6 +91,10 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+@USE_BUILTIN_FREETYPE_TRUE@am__append_1 = $(FREETYPE_SOURCES)
+@USE_BUILTIN_FREETYPE_TRUE@am__append_2 = -I$(FREETYPE_PATH)/include -DFT2_BUILD_LIBRARY -DFT_PUBLIC_FUNCTION_ATTRIBUTE=
+@USE_BUILTIN_HARFBUZZ_TRUE@am__append_3 = $(HARFBUZZ_SOURCES)
+@USE_BUILTIN_HARFBUZZ_TRUE@am__append_4 = -I$(HARFBUZZ_PATH) -I$(HARFBUZZ_PATH)/src -DHAVE_CONFIG_H -DFT_CONFIG_OPTION_USE_HARFBUZZ
 @USE_VERSION_RC_FALSE@libSDL2_ttf_la_DEPENDENCIES =
 noinst_PROGRAMS = showfont$(EXEEXT) glfont$(EXEEXT)
 subdir = .
@@ -144,16 +148,188 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
 	"$(DESTDIR)$(libSDL2_ttfincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
-am_libSDL2_ttf_la_OBJECTS = SDL_ttf.lo
+am__libSDL2_ttf_la_SOURCES_DIST = SDL_ttf.c \
+	$(FREETYPE_PATH)/src/autofit/autofit.c \
+	$(FREETYPE_PATH)/src/base/ftbase.c \
+	$(FREETYPE_PATH)/src/base/ftbbox.c \
+	$(FREETYPE_PATH)/src/base/ftbdf.c \
+	$(FREETYPE_PATH)/src/base/ftbitmap.c \
+	$(FREETYPE_PATH)/src/base/ftcid.c \
+	$(FREETYPE_PATH)/src/base/ftdebug.c \
+	$(FREETYPE_PATH)/src/base/ftfstype.c \
+	$(FREETYPE_PATH)/src/base/ftgasp.c \
+	$(FREETYPE_PATH)/src/base/ftglyph.c \
+	$(FREETYPE_PATH)/src/base/ftgxval.c \
+	$(FREETYPE_PATH)/src/base/ftinit.c \
+	$(FREETYPE_PATH)/src/base/ftmm.c \
+	$(FREETYPE_PATH)/src/base/ftotval.c \
+	$(FREETYPE_PATH)/src/base/ftpatent.c \
+	$(FREETYPE_PATH)/src/base/ftpfr.c \
+	$(FREETYPE_PATH)/src/base/ftstroke.c \
+	$(FREETYPE_PATH)/src/base/ftsynth.c \
+	$(FREETYPE_PATH)/src/base/ftsystem.c \
+	$(FREETYPE_PATH)/src/base/fttype1.c \
+	$(FREETYPE_PATH)/src/base/ftwinfnt.c \
+	$(FREETYPE_PATH)/src/bdf/bdf.c \
+	$(FREETYPE_PATH)/src/bzip2/ftbzip2.c \
+	$(FREETYPE_PATH)/src/cache/ftcache.c \
+	$(FREETYPE_PATH)/src/cff/cff.c \
+	$(FREETYPE_PATH)/src/cid/type1cid.c \
+	$(FREETYPE_PATH)/src/gzip/ftgzip.c \
+	$(FREETYPE_PATH)/src/lzw/ftlzw.c \
+	$(FREETYPE_PATH)/src/pcf/pcf.c $(FREETYPE_PATH)/src/pfr/pfr.c \
+	$(FREETYPE_PATH)/src/psaux/psaux.c \
+	$(FREETYPE_PATH)/src/pshinter/pshinter.c \
+	$(FREETYPE_PATH)/src/psnames/psmodule.c \
+	$(FREETYPE_PATH)/src/raster/raster.c \
+	$(FREETYPE_PATH)/src/sfnt/sfnt.c \
+	$(FREETYPE_PATH)/src/smooth/smooth.c \
+	$(FREETYPE_PATH)/src/tools/apinames.c \
+	$(FREETYPE_PATH)/src/truetype/truetype.c \
+	$(FREETYPE_PATH)/src/type1/type1.c \
+	$(FREETYPE_PATH)/src/type42/type42.c \
+	$(FREETYPE_PATH)/src/winfonts/winfnt.c \
+	$(HARFBUZZ_PATH)/src/hb-aat-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-aat-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-blob.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer-serialize.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer.cc \
+	$(HARFBUZZ_PATH)/src/hb-common.cc \
+	$(HARFBUZZ_PATH)/src/hb-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-fallback-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-font.cc $(HARFBUZZ_PATH)/src/hb-ft.cc \
+	$(HARFBUZZ_PATH)/src/hb-number.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff1-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff2-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-font.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-math.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-metrics.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-arabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-default.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hangul.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hebrew.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-khmer.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-myanmar.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-syllabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-thai.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-use.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-vowel-constraints.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-fallback.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-normalize.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-tag.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-var.cc \
+	$(HARFBUZZ_PATH)/src/hb-set.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape-plan.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-shaper.cc \
+	$(HARFBUZZ_PATH)/src/hb-static.cc \
+	$(HARFBUZZ_PATH)/src/hb-ucd.cc \
+	$(HARFBUZZ_PATH)/src/hb-unicode.cc
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_1 =  \
+	$(FREETYPE_PATH)/src/autofit/libSDL2_ttf_la-autofit.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbase.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbbox.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbdf.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbitmap.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftcid.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftdebug.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftfstype.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftgasp.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftglyph.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftgxval.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftinit.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftmm.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftotval.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftpatent.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftpfr.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftstroke.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftsynth.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftsystem.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-fttype1.lo \
+	$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftwinfnt.lo \
+	$(FREETYPE_PATH)/src/bdf/libSDL2_ttf_la-bdf.lo \
+	$(FREETYPE_PATH)/src/bzip2/libSDL2_ttf_la-ftbzip2.lo \
+	$(FREETYPE_PATH)/src/cache/libSDL2_ttf_la-ftcache.lo \
+	$(FREETYPE_PATH)/src/cff/libSDL2_ttf_la-cff.lo \
+	$(FREETYPE_PATH)/src/cid/libSDL2_ttf_la-type1cid.lo \
+	$(FREETYPE_PATH)/src/gzip/libSDL2_ttf_la-ftgzip.lo \
+	$(FREETYPE_PATH)/src/lzw/libSDL2_ttf_la-ftlzw.lo \
+	$(FREETYPE_PATH)/src/pcf/libSDL2_ttf_la-pcf.lo \
+	$(FREETYPE_PATH)/src/pfr/libSDL2_ttf_la-pfr.lo \
+	$(FREETYPE_PATH)/src/psaux/libSDL2_ttf_la-psaux.lo \
+	$(FREETYPE_PATH)/src/pshinter/libSDL2_ttf_la-pshinter.lo \
+	$(FREETYPE_PATH)/src/psnames/libSDL2_ttf_la-psmodule.lo \
+	$(FREETYPE_PATH)/src/raster/libSDL2_ttf_la-raster.lo \
+	$(FREETYPE_PATH)/src/sfnt/libSDL2_ttf_la-sfnt.lo \
+	$(FREETYPE_PATH)/src/smooth/libSDL2_ttf_la-smooth.lo \
+	$(FREETYPE_PATH)/src/tools/libSDL2_ttf_la-apinames.lo \
+	$(FREETYPE_PATH)/src/truetype/libSDL2_ttf_la-truetype.lo \
+	$(FREETYPE_PATH)/src/type1/libSDL2_ttf_la-type1.lo \
+	$(FREETYPE_PATH)/src/type42/libSDL2_ttf_la-type42.lo \
+	$(FREETYPE_PATH)/src/winfonts/libSDL2_ttf_la-winfnt.lo
+@USE_BUILTIN_FREETYPE_TRUE@am__objects_2 = $(am__objects_1)
+am__objects_3 = $(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-aat-layout.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-aat-map.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-blob.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-buffer-serialize.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-buffer.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-common.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-face.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-fallback-shape.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-font.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ft.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-number.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-cff1-table.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-cff2-table.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-face.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-font.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-layout.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-map.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-math.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-metrics.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-arabic.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-default.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-hangul.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-hebrew.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-indic-table.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-indic.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-khmer.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-myanmar.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-syllabic.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-thai.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-use.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-complex-vowel-constraints.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-fallback.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape-normalize.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-shape.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-tag.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ot-var.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-set.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-shape-plan.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-shape.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-shaper.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-static.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-ucd.lo \
+	$(HARFBUZZ_PATH)/src/libSDL2_ttf_la-hb-unicode.lo
+@USE_BUILTIN_HARFBUZZ_TRUE@am__objects_4 = $(am__objects_3)
+am_libSDL2_ttf_la_OBJECTS = libSDL2_ttf_la-SDL_ttf.lo $(am__objects_2) \
+	$(am__objects_4)
 libSDL2_ttf_la_OBJECTS = $(am_libSDL2_ttf_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
-libSDL2_ttf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(AM_CFLAGS) $(CFLAGS) $(libSDL2_ttf_la_LDFLAGS) $(LDFLAGS) -o \
-	$@
+libSDL2_ttf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(libSDL2_ttf_la_CXXFLAGS) $(CXXFLAGS) \
+	$(libSDL2_ttf_la_LDFLAGS) $(LDFLAGS) -o $@
 glfont_SOURCES = glfont.c
 glfont_OBJECTS = glfont.$(OBJEXT)
 glfont_DEPENDENCIES = libSDL2_ttf.la
@@ -175,7 +351,91 @@ am__v_at_1 =
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/SDL_ttf.Plo ./$(DEPDIR)/glfont.Po \
+am__depfiles_remade = $(FREETYPE_PATH)/src/autofit/$(DEPDIR)/libSDL2_ttf_la-autofit.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftbase.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftbbox.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftbdf.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftbitmap.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftcid.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftdebug.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftfstype.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftgasp.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftglyph.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftgxval.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftinit.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftmm.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftotval.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftpatent.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftpfr.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftstroke.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftsynth.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftsystem.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-fttype1.Plo \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/libSDL2_ttf_la-ftwinfnt.Plo \
+	$(FREETYPE_PATH)/src/bdf/$(DEPDIR)/libSDL2_ttf_la-bdf.Plo \
+	$(FREETYPE_PATH)/src/bzip2/$(DEPDIR)/libSDL2_ttf_la-ftbzip2.Plo \
+	$(FREETYPE_PATH)/src/cache/$(DEPDIR)/libSDL2_ttf_la-ftcache.Plo \
+	$(FREETYPE_PATH)/src/cff/$(DEPDIR)/libSDL2_ttf_la-cff.Plo \
+	$(FREETYPE_PATH)/src/cid/$(DEPDIR)/libSDL2_ttf_la-type1cid.Plo \
+	$(FREETYPE_PATH)/src/gzip/$(DEPDIR)/libSDL2_ttf_la-ftgzip.Plo \
+	$(FREETYPE_PATH)/src/lzw/$(DEPDIR)/libSDL2_ttf_la-ftlzw.Plo \
+	$(FREETYPE_PATH)/src/pcf/$(DEPDIR)/libSDL2_ttf_la-pcf.Plo \
+	$(FREETYPE_PATH)/src/pfr/$(DEPDIR)/libSDL2_ttf_la-pfr.Plo \
+	$(FREETYPE_PATH)/src/psaux/$(DEPDIR)/libSDL2_ttf_la-psaux.Plo \
+	$(FREETYPE_PATH)/src/pshinter/$(DEPDIR)/libSDL2_ttf_la-pshinter.Plo \
+	$(FREETYPE_PATH)/src/psnames/$(DEPDIR)/libSDL2_ttf_la-psmodule.Plo \
+	$(FREETYPE_PATH)/src/raster/$(DEPDIR)/libSDL2_ttf_la-raster.Plo \
+	$(FREETYPE_PATH)/src/sfnt/$(DEPDIR)/libSDL2_ttf_la-sfnt.Plo \
+	$(FREETYPE_PATH)/src/smooth/$(DEPDIR)/libSDL2_ttf_la-smooth.Plo \
+	$(FREETYPE_PATH)/src/tools/$(DEPDIR)/libSDL2_ttf_la-apinames.Plo \
+	$(FREETYPE_PATH)/src/truetype/$(DEPDIR)/libSDL2_ttf_la-truetype.Plo \
+	$(FREETYPE_PATH)/src/type1/$(DEPDIR)/libSDL2_ttf_la-type1.Plo \
+	$(FREETYPE_PATH)/src/type42/$(DEPDIR)/libSDL2_ttf_la-type42.Plo \
+	$(FREETYPE_PATH)/src/winfonts/$(DEPDIR)/libSDL2_ttf_la-winfnt.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-aat-layout.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-aat-map.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-blob.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-buffer-serialize.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-buffer.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-common.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-face.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-fallback-shape.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-font.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ft.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-number.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-cff1-table.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-cff2-table.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-face.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-font.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-layout.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-map.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-math.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-metrics.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-arabic.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-default.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-hangul.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-hebrew.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-indic-table.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-indic.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-khmer.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-myanmar.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-syllabic.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-thai.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-use.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-complex-vowel-constraints.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-fallback.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape-normalize.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-shape.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-tag.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ot-var.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-set.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-shape-plan.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-shape.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-shaper.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-static.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-ucd.Plo \
+	$(HARFBUZZ_PATH)/src/$(DEPDIR)/libSDL2_ttf_la-hb-unicode.Plo \
+	./$(DEPDIR)/glfont.Po ./$(DEPDIR)/libSDL2_ttf_la-SDL_ttf.Plo \
 	./$(DEPDIR)/showfont.Po
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -196,8 +456,26 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = $(libSDL2_ttf_la_SOURCES) glfont.c showfont.c
-DIST_SOURCES = $(libSDL2_ttf_la_SOURCES) glfont.c showfont.c
+DIST_SOURCES = $(am__libSDL2_ttf_la_SOURCES_DIST) glfont.c showfont.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -264,6 +542,10 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
@@ -345,6 +627,7 @@ abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
@@ -384,7 +667,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -396,15 +678,119 @@ top_srcdir = @top_srcdir@
 
 # Makefile.am for the SDL truetype font loading library and viewer
 ACLOCAL_AMFLAGS = -I acinclude
-AUTOMAKE_OPTIONS = foreign
+AUTOMAKE_OPTIONS = foreign subdir-objects
 lib_LTLIBRARIES = libSDL2_ttf.la
 libSDL2_ttfincludedir = $(includedir)/SDL2
 libSDL2_ttfinclude_HEADERS = \
 	SDL_ttf.h
 
-libSDL2_ttf_la_SOURCES = \
-	SDL_ttf.c
+libSDL2_ttf_la_SOURCES = SDL_ttf.c $(am__append_1) $(am__append_3)
+libSDL2_ttf_la_CPPFLAGS = $(am__append_2) $(am__append_4)
+FREETYPE_PATH := external/freetype-2.10.4
+FREETYPE_SOURCES := \
+	$(FREETYPE_PATH)/src/autofit/autofit.c \
+	$(FREETYPE_PATH)/src/base/ftbase.c \
+	$(FREETYPE_PATH)/src/base/ftbbox.c \
+	$(FREETYPE_PATH)/src/base/ftbdf.c \
+	$(FREETYPE_PATH)/src/base/ftbitmap.c \
+	$(FREETYPE_PATH)/src/base/ftcid.c \
+	$(FREETYPE_PATH)/src/base/ftdebug.c \
+	$(FREETYPE_PATH)/src/base/ftfstype.c \
+	$(FREETYPE_PATH)/src/base/ftgasp.c \
+	$(FREETYPE_PATH)/src/base/ftglyph.c \
+	$(FREETYPE_PATH)/src/base/ftgxval.c \
+	$(FREETYPE_PATH)/src/base/ftinit.c \
+	$(FREETYPE_PATH)/src/base/ftmm.c \
+	$(FREETYPE_PATH)/src/base/ftotval.c \
+	$(FREETYPE_PATH)/src/base/ftpatent.c \
+	$(FREETYPE_PATH)/src/base/ftpfr.c \
+	$(FREETYPE_PATH)/src/base/ftstroke.c \
+	$(FREETYPE_PATH)/src/base/ftsynth.c \
+	$(FREETYPE_PATH)/src/base/ftsystem.c \
+	$(FREETYPE_PATH)/src/base/fttype1.c \
+	$(FREETYPE_PATH)/src/base/ftwinfnt.c \
+	$(FREETYPE_PATH)/src/bdf/bdf.c \
+	$(FREETYPE_PATH)/src/bzip2/ftbzip2.c \
+	$(FREETYPE_PATH)/src/cache/ftcache.c \
+	$(FREETYPE_PATH)/src/cff/cff.c \
+	$(FREETYPE_PATH)/src/cid/type1cid.c \
+	$(FREETYPE_PATH)/src/gzip/ftgzip.c \
+	$(FREETYPE_PATH)/src/lzw/ftlzw.c \
+	$(FREETYPE_PATH)/src/pcf/pcf.c \
+	$(FREETYPE_PATH)/src/pfr/pfr.c \
+	$(FREETYPE_PATH)/src/psaux/psaux.c \
+	$(FREETYPE_PATH)/src/pshinter/pshinter.c \
+	$(FREETYPE_PATH)/src/psnames/psmodule.c \
+	$(FREETYPE_PATH)/src/raster/raster.c \
+	$(FREETYPE_PATH)/src/sfnt/sfnt.c \
+	$(FREETYPE_PATH)/src/smooth/smooth.c \
+	$(FREETYPE_PATH)/src/tools/apinames.c \
+	$(FREETYPE_PATH)/src/truetype/truetype.c \
+	$(FREETYPE_PATH)/src/type1/type1.c \
+	$(FREETYPE_PATH)/src/type42/type42.c \
+	$(FREETYPE_PATH)/src/winfonts/winfnt.c
+
+HARFBUZZ_PATH := external/harfbuzz-2.8.0
+HARFBUZZ_SOURCES := \
+	$(HARFBUZZ_PATH)/src/hb-aat-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-aat-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-blob.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer-serialize.cc \
+	$(HARFBUZZ_PATH)/src/hb-buffer.cc \
+	$(HARFBUZZ_PATH)/src/hb-common.cc \
+	$(HARFBUZZ_PATH)/src/hb-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-fallback-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-font.cc \
+	$(HARFBUZZ_PATH)/src/hb-ft.cc \
+	$(HARFBUZZ_PATH)/src/hb-number.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff1-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-cff2-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-face.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-font.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-layout.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-map.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-math.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-metrics.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-arabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-default.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hangul.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-hebrew.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic-table.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-indic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-khmer.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-myanmar.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-syllabic.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-thai.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-use.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-complex-vowel-constraints.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-fallback.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape-normalize.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-tag.cc \
+	$(HARFBUZZ_PATH)/src/hb-ot-var.cc \
+	$(HARFBUZZ_PATH)/src/hb-set.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape-plan.cc \
+	$(HARFBUZZ_PATH)/src/hb-shape.cc \
+	$(HARFBUZZ_PATH)/src/hb-shaper.cc \
+	$(HARFBUZZ_PATH)/src/hb-static.cc \
+	$(HARFBUZZ_PATH)/src/hb-ucd.cc \
+	$(HARFBUZZ_PATH)/src/hb-unicode.cc
+
+@USE_BUILTIN_HARFBUZZ_TRUE@libSDL2_ttf_la_CXXFLAGS := -std=c++11
+@USE_VERSION_RC_FALSE@libSDL2_ttf_la_LDFLAGS = \
+@USE_VERSION_RC_FALSE@	-no-undefined		\
+@USE_VERSION_RC_FALSE@	-release $(LT_RELEASE)	\
+@USE_VERSION_RC_FALSE@	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+
+@USE_VERSION_RC_TRUE@libSDL2_ttf_la_LDFLAGS = \
+@USE_VERSION_RC_TRUE@	-no-undefined		\
+@USE_VERSION_RC_TRUE@	-release $(LT_RELEASE)	\
+@USE_VERSION_RC_TRUE@	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -Wl,version.o
 
+@USE_VERSION_RC_TRUE@libSDL2_ttf_la_DEPENDENCIES = version.o
+libSDL2_ttf_la_LIBADD = @MATHLIB@
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = SDL2_ttf.pc
 EXTRA_DIST = \
 	Android.mk		\
 	debian			\
@@ -421,26 +807,12 @@ EXTRA_DIST = \
 	autogen.sh		\
 	$(srcdir)/*.txt
 
-@USE_VERSION_RC_FALSE@libSDL2_ttf_la_LDFLAGS = \
-@USE_VERSION_RC_FALSE@	-no-undefined		\
-@USE_VERSION_RC_FALSE@	-release $(LT_RELEASE)	\
-@USE_VERSION_RC_FALSE@	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
-
-@USE_VERSION_RC_TRUE@libSDL2_ttf_la_LDFLAGS = \
-@USE_VERSION_RC_TRUE@	-no-undefined		\
-@USE_VERSION_RC_TRUE@	-release $(LT_RELEASE)	\
-@USE_VERSION_RC_TRUE@	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -Wl,version.o
-
-@USE_VERSION_RC_TRUE@libSDL2_ttf_la_DEPENDENCIES = version.o
-libSDL2_ttf_la_LIBADD = @MATHLIB@
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = SDL2_ttf.pc
 showfont_LDADD = libSDL2_ttf.la
 glfont_LDADD = libSDL2_ttf.la @GL_LIBS@ @MATHLIB@
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .cc .lo .o .obj
 am--refresh: Makefile
 	@:
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
@@ -522,9 +894,399 @@ clean-libLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+$(FREETYPE_PATH)/src/autofit/$(am__dirstamp):
+	@$(MKDIR_P) $(FREETYPE_PATH)/src/autofit
+	@: > $(FREETYPE_PATH)/src/autofit/$(am__dirstamp)
+$(FREETYPE_PATH)/src/autofit/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) $(FREETYPE_PATH)/src/autofit/$(DEPDIR)
+	@: > $(FREETYPE_PATH)/src/autofit/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/autofit/libSDL2_ttf_la-autofit.lo:  \
+	$(FREETYPE_PATH)/src/autofit/$(am__dirstamp) \
+	$(FREETYPE_PATH)/src/autofit/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/$(am__dirstamp):
+	@$(MKDIR_P) $(FREETYPE_PATH)/src/base
+	@: > $(FREETYPE_PATH)/src/base/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) $(FREETYPE_PATH)/src/base/$(DEPDIR)
+	@: > $(FREETYPE_PATH)/src/base/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbase.lo:  \
+	$(FREETYPE_PATH)/src/base/$(am__dirstamp) \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbbox.lo:  \
+	$(FREETYPE_PATH)/src/base/$(am__dirstamp) \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbdf.lo:  \
+	$(FREETYPE_PATH)/src/base/$(am__dirstamp) \
+	$(FREETYPE_PATH)/src/base/$(DEPDIR)/$(am__dirstamp)
+$(FREETYPE_PATH)/src/base/libSDL2_ttf_la-ftbitmap.lo:  \
+	$(FREETYPE_PATH)/src/base/$(am__dirstamp) \
+	$(FREETYPE_PAT

(Patch may be truncated, please check the link at the top of this post.)