blob: 10668ce6b7a4bdbe629058d7db7cf46f729246a4 [file] [log] [blame]
Behdad Esfahbod49f261d2009-08-10 23:35:05 -04001# Process this file with automake to produce Makefile.in
Owen Taylor80a15822000-12-20 04:41:36 +00002
Behdad Esfahbod7c32e012018-01-11 10:47:31 +01003NULL =
Behdad Esfahbod8fe4c742012-07-24 21:05:12 -04004SUBDIRS =
5DIST_SUBDIRS =
Behdad Esfahbodd75333f2011-08-19 19:59:24 +02006BUILT_SOURCES =
Behdad Esfahbod7bbe14b2011-01-09 22:29:14 -05007EXTRA_DIST =
Behdad Esfahbodc78f4482011-05-05 21:31:04 -04008CLEANFILES =
9DISTCLEANFILES =
10MAINTAINERCLEANFILES =
Behdad Esfahbod84d781e2012-06-16 15:21:41 -040011DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
Behdad Esfahbod397ed532018-02-13 18:54:26 -080012TESTS =
13check_PROGRAMS =
Behdad Esfahbodb857b492009-05-20 05:35:14 -040014
Ebrahim Byagowi9fea6b42019-07-05 18:46:41 +043015EXTRA_DIST += harfbuzz.cc
16
Behdad Esfahbod7988da22015-01-21 18:33:50 -080017# Convenience targets:
Behdad Esfahbodcc126f22018-10-09 01:10:15 -040018lib: $(BUILT_SOURCES) libharfbuzz.la
Behdad Esfahbod019d18e2018-07-17 10:59:19 +020019libs: $(BUILT_SOURCES) $(lib_LTLIBRARIES)
Behdad Esfahbod87868202019-06-26 12:53:57 -070020tiny:
21 $(MAKE) $(AM_MAKEFLAGS) CPPFLAGS="-Os -DHB_TINY $(CPPFLAGS)" libs
22tinyz:
23 $(MAKE) $(AM_MAKEFLAGS) CPPFLAGS="-Oz -DHB_TINY $(CPPFLAGS)" libs
Behdad Esfahbod7988da22015-01-21 18:33:50 -080024
Behdad Esfahbod1f0ceeb2009-11-02 16:28:39 -050025lib_LTLIBRARIES = libharfbuzz.la
Owen Taylor80a15822000-12-20 04:41:36 +000026
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080027include Makefile.sources
28
Behdad Esfahbodd94647e2009-11-03 16:35:10 -050029HBCFLAGS =
30HBLIBS =
Behdad Esfahbod539a6102015-08-11 12:58:49 +020031HBNONPCLIBS =
32HBDEPS =
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080033HBSOURCES = $(HB_BASE_sources)
ebraminiod2acaf62017-04-05 02:21:23 -070034HBSOURCES += $(HB_BASE_RAGEL_GENERATED_sources)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080035HBHEADERS = $(HB_BASE_headers)
Behdad Esfahbodd5a8e462009-11-03 15:14:40 -050036
Behdad Esfahbod66efe892012-10-02 14:55:32 -040037if HAVE_PTHREAD
38HBCFLAGS += $(PTHREAD_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020039HBNONPCLIBS += $(PTHREAD_LIBS)
Behdad Esfahbod66efe892012-10-02 14:55:32 -040040endif
41
Behdad Esfahbod63a792a2009-11-02 18:33:52 -050042if HAVE_GLIB
Behdad Esfahbodd94647e2009-11-03 16:35:10 -050043HBCFLAGS += $(GLIB_CFLAGS)
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050044HBLIBS += $(GLIB_LIBS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020045HBDEPS += $(GLIB_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080046HBSOURCES += $(HB_GLIB_sources)
47HBHEADERS += $(HB_GLIB_headers)
Behdad Esfahbodc214cff2011-08-14 15:17:16 +020048endif
49
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050050if HAVE_FREETYPE
51HBCFLAGS += $(FREETYPE_CFLAGS)
52HBLIBS += $(FREETYPE_LIBS)
Behdad Esfahbodddd6bf12015-08-18 15:55:09 +010053# XXX
54# The following creates a recursive dependency on FreeType if FreeType is
55# built with HarfBuzz support enabled. Newer pkg-config handles that just
56# fine but pkg-config 0.26 as shipped in Ubuntu 14.04 crashes. Remove
57# in a year or two, or otherwise work around it...
58#HBDEPS += $(FREETYPE_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080059HBSOURCES += $(HB_FT_sources)
60HBHEADERS += $(HB_FT_headers)
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050061endif
Behdad Esfahbodca95ce42009-11-03 14:18:33 -050062
Behdad Esfahbod6bd9b472012-04-12 14:53:53 -040063if HAVE_GRAPHITE2
64HBCFLAGS += $(GRAPHITE2_CFLAGS)
65HBLIBS += $(GRAPHITE2_LIBS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020066HBDEPS += $(GRAPHITE2_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080067HBSOURCES += $(HB_GRAPHITE2_sources)
68HBHEADERS += $(HB_GRAPHITE2_headers)
Behdad Esfahbod1f49cf32011-08-24 01:29:25 +020069endif
70
Behdad Esfahbod0fbb2dc2011-08-03 19:55:04 -040071if HAVE_UNISCRIBE
72HBCFLAGS += $(UNISCRIBE_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020073HBNONPCLIBS += $(UNISCRIBE_LIBS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080074HBSOURCES += $(HB_UNISCRIBE_sources)
75HBHEADERS += $(HB_UNISCRIBE_headers)
Behdad Esfahbod0fbb2dc2011-08-03 19:55:04 -040076endif
77
Chun-wei Fanc6792852016-02-03 18:31:23 +080078if HAVE_DIRECTWRITE
79HBCFLAGS += $(DIRECTWRITE_CXXFLAGS)
80HBNONPCLIBS += $(DIRECTWRITE_LIBS)
81HBSOURCES += $(HB_DIRECTWRITE_sources)
82HBHEADERS += $(HB_DIRECTWRITE_headers)
83endif
84
Ebrahim Byagowieb8bd2f2019-07-16 22:27:01 +043085if HAVE_GDI
86HBCFLAGS += $(GDI_CXXFLAGS)
87HBNONPCLIBS += $(GDI_LIBS)
88HBSOURCES += $(HB_GDI_sources)
89HBHEADERS += $(HB_GDI_headers)
90endif
91
Jonathan Kewaa6d8492012-07-24 15:52:32 -040092if HAVE_CORETEXT
93HBCFLAGS += $(CORETEXT_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020094HBNONPCLIBS += $(CORETEXT_LIBS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080095HBSOURCES += $(HB_CORETEXT_sources)
96HBHEADERS += $(HB_CORETEXT_headers)
Jonathan Kewaa6d8492012-07-24 15:52:32 -040097endif
98
Behdad Esfahbod560d68a2012-08-08 17:16:01 -040099
Behdad Esfahbodf6893ef2018-06-12 19:20:20 -0400100BUILT_SOURCES += \
101 hb-version.h
102
103$(srcdir)/hb-version.h: hb-version.h.in $(top_srcdir)/configure.ac
104 $(AM_V_GEN) $(SED) \
105 -e 's/[@]HB_VERSION_MAJOR@/$(HB_VERSION_MAJOR)/' \
106 -e 's/[@]HB_VERSION_MINOR@/$(HB_VERSION_MINOR)/' \
107 -e 's/[@]HB_VERSION_MICRO@/$(HB_VERSION_MICRO)/' \
108 -e 's/[@]HB_VERSION@/$(HB_VERSION)/' \
109 "$<" > "$@" || ($(RM) "$@"; false)
110
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400111# Put the library together
112
Behdad Esfahbod539a6102015-08-11 12:58:49 +0200113HBLIBS += $(HBNONPCLIBS)
114
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400115if OS_WIN32
116export_symbols = -export-symbols harfbuzz.def
117harfbuzz_def_dependency = harfbuzz.def
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330118export_symbols_subset = -export-symbols harfbuzz-subset.def
119harfbuzz_subset_def_dependency = harfbuzz-subset.def
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800120export_symbols_icu = -export-symbols harfbuzz-icu.def
121harfbuzz_icu_def_dependency = harfbuzz-icu.def
122export_symbols_gobject = -export-symbols harfbuzz-gobject.def
123harfbuzz_gobject_def_dependency = harfbuzz-gobject.def
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330124chosen_linker = $(CXXLINK)
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400125else
Khaled Hosny0b94d592018-02-12 16:45:36 +0200126if WITH_LIBSTDCXX
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330127chosen_linker = $(CXXLINK)
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330128else
Behdad Esfahbode7846322013-01-14 00:27:21 -0600129if HAVE_GCC
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330130# Use a C linker for GCC, not C++; Don't link to libstdc++
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330131chosen_linker = $(LINK)
Behdad Esfahbode7846322013-01-14 00:27:21 -0600132else
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330133chosen_linker = $(CXXLINK)
Behdad Esfahbode7846322013-01-14 00:27:21 -0600134endif
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400135endif
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330136endif
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400137
Ebrahim Byagowif7399792018-03-03 22:55:09 +0330138@CODE_COVERAGE_RULES@
139
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330140base_link_flags = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430141libharfbuzz_la_LINK = $(chosen_linker) $(libharfbuzz_la_LDFLAGS)
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800142libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
Behdad Esfahbod44b6c772018-03-26 14:26:45 -0700143libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) $(CODE_COVERAGE_CFLAGS)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430144libharfbuzz_la_LDFLAGS = $(base_link_flags) $(export_symbols) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodd94647e2009-11-03 16:35:10 -0500145libharfbuzz_la_LIBADD = $(HBLIBS)
Behdad Esfahbodeb7669a2012-09-18 19:42:06 -0400146EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
Behdad Esfahbod1f0ceeb2009-11-02 16:28:39 -0500147pkginclude_HEADERS = $(HBHEADERS)
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800148nodist_pkginclude_HEADERS =
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400149pkgconfigdir = $(libdir)/pkgconfig
150pkgconfig_DATA = harfbuzz.pc
Ben Boeckeld38f37b2018-02-23 16:55:53 -0500151cmakedir = $(libdir)/cmake/harfbuzz
152cmake_DATA = harfbuzz-config.cmake
Behdad Esfahbodf6893ef2018-06-12 19:20:20 -0400153EXTRA_DIST += hb-version.h.in harfbuzz.pc.in harfbuzz-config.cmake.in
Owen Taylor80a15822000-12-20 04:41:36 +0000154
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500155lib_LTLIBRARIES += libharfbuzz-subset.la
156libharfbuzz_subset_la_SOURCES = $(HB_SUBSET_sources)
Behdad Esfahbod44b6c772018-03-26 14:26:45 -0700157libharfbuzz_subset_la_CPPFLAGS = $(HBCFLAGS) $(CODE_COVERAGE_CFLAGS)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430158libharfbuzz_subset_la_LDFLAGS = $(base_link_flags) $(export_symbols_subset) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500159libharfbuzz_subset_la_LIBADD = libharfbuzz.la
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330160EXTRA_libharfbuzz_subset_la_DEPENDENCIES = $(harfbuzz_subset_def_dependency)
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500161pkginclude_HEADERS += $(HB_SUBSET_headers)
162pkgconfig_DATA += harfbuzz-subset.pc
163EXTRA_DIST += harfbuzz-subset.pc.in
164
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400165if HAVE_ICU
Kal Conleyb424b6c2016-02-26 00:35:15 +0100166if HAVE_ICU_BUILTIN
167HBCFLAGS += $(ICU_CFLAGS)
168HBLIBS += $(ICU_LIBS)
169HBSOURCES += $(HB_ICU_sources)
170HBHEADERS += $(HB_ICU_headers)
171else
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400172lib_LTLIBRARIES += libharfbuzz-icu.la
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800173libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430174libharfbuzz_icu_la_CPPFLAGS = $(HBCFLAGS) $(ICU_CFLAGS) $(CODE_COVERAGE_CFLAGS)
175libharfbuzz_icu_la_LDFLAGS = $(base_link_flags) $(export_symbols_icu) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400176libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330177EXTRA_libharfbuzz_icu_la_DEPENDENCIES = $(harfbuzz_icu_def_dependency)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800178pkginclude_HEADERS += $(HB_ICU_headers)
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400179pkgconfig_DATA += harfbuzz-icu.pc
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400180endif
Kal Conleyb424b6c2016-02-26 00:35:15 +0100181endif
Behdad Esfahbod213001a2013-09-03 20:00:16 -0400182EXTRA_DIST += harfbuzz-icu.pc.in
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400183
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400184if HAVE_GOBJECT
185lib_LTLIBRARIES += libharfbuzz-gobject.la
Behdad Esfahbod86348462018-02-13 21:18:00 -0800186libharfbuzz_gobject_la_LINK = $(chosen_linker) $(libharfbuzz_gobject_la_LDFLAGS)
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800187libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_DIST_sources)
188nodist_libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_NODIST_sources)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430189libharfbuzz_gobject_la_CPPFLAGS = $(HBCFLAGS) $(GOBJECT_CFLAGS) $(CODE_COVERAGE_CFLAGS)
190libharfbuzz_gobject_la_LDFLAGS = $(base_link_flags) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400191libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800192EXTRA_libharfbuzz_gobject_la_DEPENDENCIES = $(harfbuzz_gobject_def_dependency)
193pkginclude_HEADERS += $(HB_GOBJECT_DIST_headers)
194nodist_pkginclude_HEADERS += $(HB_GOBJECT_NODIST_headers)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400195pkgconfig_DATA += harfbuzz-gobject.pc
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400196
197BUILT_SOURCES += \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800198 $(HB_GOBJECT_ENUM_sources) \
199 $(HB_GOBJECT_ENUM_headers) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400200 $(NULL)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400201DISTCLEANFILES += \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800202 $(HB_GOBJECT_ENUM_sources) \
203 $(HB_GOBJECT_ENUM_headers) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400204 $(NULL)
205hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS)
Ebrahim Byagowi8d1b4082018-03-17 01:05:03 +0330206 $(AM_V_GEN) PYTHONIOENCODING=UTF-8 $(GLIB_MKENUMS) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400207 --identifier-prefix hb_ --symbol-prefix hb_gobject \
208 --template $^ | \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400209 sed 's/_t_get_type/_get_type/g; s/_T (/ (/g' > "$@" \
210 || ($(RM) "$@"; false)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400211endif
Behdad Esfahbod213001a2013-09-03 20:00:16 -0400212EXTRA_DIST += \
213 harfbuzz-gobject.pc.in \
214 hb-gobject-enums.cc.tmpl \
215 hb-gobject-enums.h.tmpl \
216 $(NULL)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400217
218
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400219%.pc: %.pc.in $(top_builddir)/config.status
220 $(AM_V_GEN) \
Behdad Esfahbod2fd0e022013-06-06 17:16:01 -0400221 $(SED) -e 's@%prefix%@$(prefix)@g' \
222 -e 's@%exec_prefix%@$(exec_prefix)@g' \
223 -e 's@%libdir%@$(libdir)@g' \
224 -e 's@%includedir%@$(includedir)@g' \
Behdad Esfahbod539a6102015-08-11 12:58:49 +0200225 -e 's@%libs_private%@$(HBNONPCLIBS)@g' \
226 -e 's@%requires_private%@$(HBDEPS)@g' \
Behdad Esfahbod2fd0e022013-06-06 17:16:01 -0400227 -e 's@%VERSION%@$(VERSION)@g' \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400228 "$<" > "$@" \
229 || ($(RM) "$@"; false)
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400230
Behdad Esfahbodd70be292013-05-28 17:23:56 -0400231CLEANFILES += $(pkgconfig_DATA)
232
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400233
Ebrahim Byagowi7170e352018-10-29 13:11:01 +0330234DEF_FILES = harfbuzz.def harfbuzz-subset.def harfbuzz-icu.def harfbuzz-deprecated-symbols.txt
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800235if HAVE_GOBJECT
236DEF_FILES += harfbuzz-gobject.def
237endif
238check: $(DEF_FILES) # For check-symbols.sh
239CLEANFILES += $(DEF_FILES)
Behdad Esfahbod9de5f982013-02-04 23:28:22 -0500240harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
Cosimo Lupoccdd1562018-07-09 18:26:44 +0100241 $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800242harfbuzz-subset.def: $(HB_SUBSET_headers)
Cosimo Lupoccdd1562018-07-09 18:26:44 +0100243 $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330244harfbuzz-icu.def: $(HB_ICU_headers)
Cosimo Lupoccdd1562018-07-09 18:26:44 +0100245 $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800246harfbuzz-gobject.def: $(HB_GOBJECT_headers)
Cosimo Lupoccdd1562018-07-09 18:26:44 +0100247 $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
Ebrahim Byagowi7170e352018-10-29 13:11:01 +0330248harfbuzz-deprecated-symbols.txt: $(srcdir)/hb-deprecated.h
249 $(AM_V_GEN) PLAIN_LIST=1 $(srcdir)/gen-def.py "$@" $^
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400250
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400251
252GENERATORS = \
Behdad Esfahbod9d494332011-06-01 18:10:10 -0400253 gen-arabic-table.py \
Ebrahim Byagowi00806142018-01-19 01:12:31 +0330254 gen-def.py \
Behdad Esfahbod1e8f1952018-10-03 17:46:48 +0200255 gen-emoji-table.py \
256 gen-indic-table.py \
257 gen-os2-unicode-ranges.py \
David Corbett2f1f9612017-12-08 22:45:52 -0500258 gen-tag-table.py \
Behdad Esfahbod36dee922019-05-22 15:51:53 -0400259 gen-ucd-table.py \
Behdad Esfahbod1e8f1952018-10-03 17:46:48 +0200260 gen-use-table.py \
David Corbett205737a2018-10-12 16:54:54 -0400261 gen-vowel-constraints.py \
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400262 $(NULL)
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400263EXTRA_DIST += $(GENERATORS)
264
Behdad Esfahbodf1d20d92019-07-02 14:18:38 -0700265unicode-tables: \
266 arabic-table \
267 emoji-table \
268 indic-table \
269 tag-table \
270 ucd-table \
271 use-table \
272 emoji-table \
273 $(NULL)
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500274
Behdad Esfahbod3f5327a2014-06-20 16:17:42 -0400275arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
Behdad Esfahbod105a3b52018-06-05 15:31:04 -0700276 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ot-shape-complex-arabic-table.hh \
277 || ($(RM) $(srcdir)/hb-ot-shape-complex-arabic-table.hh; false)
Behdad Esfahbodf1d20d92019-07-02 14:18:38 -0700278emoji-table: gen-emoji-table.py emoji-data.txt
279 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-unicode-emoji-table.hh \
280 || ($(RM) $(srcdir)/hb-unicode-emoji-table.hh; false)
Ebrahim Byagowicab2c2c2018-03-29 12:48:47 +0430281indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt
Behdad Esfahbod105a3b52018-06-05 15:31:04 -0700282 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ot-shape-complex-indic-table.cc \
283 || ($(RM) $(srcdir)/hb-ot-shape-complex-indic-table.cc; false)
David Corbett2f1f9612017-12-08 22:45:52 -0500284tag-table: gen-tag-table.py languagetags language-subtag-registry
285 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ot-tag-table.hh \
286 || ($(RM) $(srcdir)/hb-ot-tag-table.hh; false)
Behdad Esfahbodf1d20d92019-07-02 14:18:38 -0700287ucd-table: gen-ucd-table.py ucd.nounihan.grouped.zip hb-common.h
288 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ucd-table.hh \
289 || ($(RM) $(srcdir)/hb-ucd-table.hh; false)
Behdad Esfahbod20e246e2015-07-20 15:56:19 +0100290use-table: gen-use-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt UnicodeData.txt Blocks.txt
Behdad Esfahbod105a3b52018-06-05 15:31:04 -0700291 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ot-shape-complex-use-table.cc \
292 || ($(RM) $(srcdir)/hb-ot-shape-complex-use-table.cc; false)
David Corbette6351d92019-11-11 17:39:55 -0500293vowel-constraints: gen-vowel-constraints.py ms-use/IndicShapingInvalidCluster.txt Scripts.txt
Behdad Esfahbod6d40eb82018-10-23 02:51:42 -0700294 $(AM_V_GEN) $(builddir)/$^ > $(srcdir)/hb-ot-shape-complex-vowel-constraints.cc \
295 || ($(RM) $(srcdir)/hb-ot-shape-complex-vowel-constraints.cc; false)
David Corbett205737a2018-10-12 16:54:54 -0400296
Behdad Esfahbod1e8f1952018-10-03 17:46:48 +0200297
Behdad Esfahbod343a0e42014-03-21 14:37:27 -0700298built-sources: $(BUILT_SOURCES)
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500299
David Corbett205737a2018-10-12 16:54:54 -0400300.PHONY: unicode-tables arabic-table indic-table tag-table use-table vowel-constraints emoji-table built-sources
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500301
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400302RAGEL_GENERATED = \
William Hua5ecf96e2017-04-17 01:33:42 -0400303 $(patsubst %,$(srcdir)/%,$(HB_BASE_RAGEL_GENERATED_sources)) \
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500304 $(NULL)
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400305BUILT_SOURCES += $(RAGEL_GENERATED)
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500306EXTRA_DIST += \
Behdad Esfahboda4471d02017-04-05 15:42:11 +0200307 $(HB_BASE_RAGEL_sources) \
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500308 $(NULL)
Behdad Esfahbodabc82b42018-02-20 14:34:16 -0800309# We decided to add ragel-generated files to git...
310#MAINTAINERCLEANFILES += $(RAGEL_GENERATED)
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400311$(srcdir)/%.hh: $(srcdir)/%.rl
Behdad Esfahbod52c15b02019-05-13 14:10:28 -0700312 $(AM_V_GEN)(cd $(srcdir) && $(RAGEL) -e -F1 -o "$*.hh" "$*.rl") \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400313 || ($(RM) "$@"; false)
Behdad Esfahbod867361c2011-06-17 18:35:46 -0400314
Behdad Esfahbodd5152422019-07-03 12:10:03 -0700315harfbuzz.cc: Makefile.sources
Behdad Esfahbodc0732332019-07-02 14:26:45 -0700316 $(AM_V_GEN) \
Behdad Esfahbodb240d702019-07-03 12:17:57 -0700317 for f in \
318 $(HB_BASE_sources) \
319 $(HB_GLIB_sources) \
320 $(HB_FT_sources) \
321 $(HB_GRAPHITE2_sources) \
322 $(HB_UNISCRIBE_sources) \
Ebrahim Byagowieb8bd2f2019-07-16 22:27:01 +0430323 $(HB_GDI_sources) \
Behdad Esfahbodb240d702019-07-03 12:17:57 -0700324 $(HB_DIRECTWRITE_sources) \
325 $(HB_CORETEXT_sources) \
326 ; do echo '#include "'$$f'"'; done | \
Behdad Esfahbodd5152422019-07-03 12:10:03 -0700327 grep '[.]cc"' > $(srcdir)/harfbuzz.cc \
328 || ($(RM) $(srcdir)/harfbuzz.cc; false)
Behdad Esfahbodb240d702019-07-03 12:17:57 -0700329BUILT_SOURCES += harfbuzz.cc
Behdad Esfahbodc0732332019-07-02 14:26:45 -0700330
Behdad Esfahbode54dd262013-02-27 13:01:02 -0500331noinst_PROGRAMS = \
332 main \
333 test \
334 test-buffer-serialize \
Ebrahim Byagowi62932c12019-07-26 00:30:29 +0430335 test-ot-meta \
Behdad Esfahbod11ab8892019-04-24 09:55:24 -0400336 test-ot-name \
blueshade7ff874652019-11-19 16:18:33 -0800337 test-ot-glyphname \
Behdad Esfahbod11ab8892019-04-24 09:55:24 -0400338 test-gpos-size-params \
339 test-gsub-would-substitute \
Behdad Esfahbode54dd262013-02-27 13:01:02 -0500340 $(NULL)
Behdad Esfahbod5353bf42011-02-22 18:06:19 -0500341bin_PROGRAMS =
342
Behdad Esfahbodb857b492009-05-20 05:35:14 -0400343main_SOURCES = main.cc
Behdad Esfahbodd94647e2009-11-03 16:35:10 -0500344main_CPPFLAGS = $(HBCFLAGS)
345main_LDADD = libharfbuzz.la $(HBLIBS)
Owen Taylor80a15822000-12-20 04:41:36 +0000346
Behdad Esfahbod0f3f5292012-11-30 09:06:59 +0200347test_SOURCES = test.cc
348test_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
349test_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
350
Behdad Esfahbodc442fd92018-10-23 22:45:45 -0700351test_buffer_serialize_SOURCES = test-buffer-serialize.cc
352test_buffer_serialize_CPPFLAGS = $(HBCFLAGS)
353test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS)
354
Ebrahim Byagowi62932c12019-07-26 00:30:29 +0430355test_ot_meta_SOURCES = test-ot-meta.cc
356test_ot_meta_CPPFLAGS = $(HBCFLAGS)
357test_ot_meta_LDADD = libharfbuzz.la $(HBLIBS)
Ebrahim Byagowi80e246a2019-07-24 03:08:34 +0430358
Behdad Esfahbod11ab8892019-04-24 09:55:24 -0400359test_ot_name_SOURCES = test-ot-name.cc
360test_ot_name_CPPFLAGS = $(HBCFLAGS)
361test_ot_name_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbodbe73a5f2012-07-19 14:59:15 -0400362
blueshade7ff874652019-11-19 16:18:33 -0800363test_ot_glyphname_SOURCES = test-ot-glyphname.cc
364test_ot_glyphname_CPPFLAGS = $(HBCFLAGS)
365test_ot_glyphname_LDADD = libharfbuzz.la $(HBLIBS)
366
Behdad Esfahbod11ab8892019-04-24 09:55:24 -0400367test_gpos_size_params_SOURCES = test-gpos-size-params.cc
368test_gpos_size_params_CPPFLAGS = $(HBCFLAGS)
369test_gpos_size_params_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod0f3f5292012-11-30 09:06:59 +0200370
Behdad Esfahbod11ab8892019-04-24 09:55:24 -0400371test_gsub_would_substitute_SOURCES = test-gsub-would-substitute.cc
372test_gsub_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
373test_gsub_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
Behdad Esfahbode54dd262013-02-27 13:01:02 -0500374
Ebrahim Byagowi9c692e52018-10-29 11:36:11 +0330375if HAVE_FREETYPE
376if HAVE_CAIRO_FT
377noinst_PROGRAMS += test-ot-color
378test_ot_color_SOURCES = test-ot-color.cc
379test_ot_color_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS) $(CAIRO_FT_CFLAGS)
380test_ot_color_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS) $(CAIRO_LIBS) $(CAIRO_FT_LIBS)
381endif # HAVE_CAIRO_FT
382endif # HAVE_FREETYPE
383
Behdad Esfahbod7bbe14b2011-01-09 22:29:14 -0500384dist_check_SCRIPTS = \
Behdad Esfahbodacdba3f2010-07-23 15:11:18 -0400385 check-c-linkage-decls.sh \
Behdad Esfahbodc2545b92017-10-07 12:56:53 +0200386 check-externs.sh \
Behdad Esfahbodd05d13d2010-06-09 07:15:03 -0400387 check-header-guards.sh \
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400388 check-includes.sh \
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400389 check-static-inits.sh \
Behdad Esfahbodac1b7232013-08-30 19:32:10 -0400390 check-symbols.sh \
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400391 $(NULL)
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800392TESTS += $(dist_check_SCRIPTS)
Behdad Esfahbodd59e28e2012-08-28 19:08:36 -0400393
Khaled Hosny0b94d592018-02-12 16:45:36 +0200394if !WITH_LIBSTDCXX
395dist_check_SCRIPTS += \
396 check-libstdc++.sh \
397 $(NULL)
398endif
399
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800400check_PROGRAMS += \
Behdad Esfahbodc0e45b62018-02-13 21:23:38 -0800401 dump-indic-data \
Behdad Esfahbod15ba4fb2018-02-13 21:41:51 -0800402 dump-khmer-data \
Behdad Esfahbodeffddd02018-02-13 21:38:15 -0800403 dump-myanmar-data \
Behdad Esfahbod50780442018-02-13 21:46:28 -0800404 dump-use-data \
Behdad Esfahbod70952dd2015-12-07 10:28:46 +0100405 $(NULL)
Behdad Esfahbodc0e45b62018-02-13 21:23:38 -0800406dump_indic_data_SOURCES = dump-indic-data.cc hb-ot-shape-complex-indic-table.cc
407dump_indic_data_CPPFLAGS = $(HBCFLAGS)
408dump_indic_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod15ba4fb2018-02-13 21:41:51 -0800409dump_khmer_data_SOURCES = dump-khmer-data.cc hb-ot-shape-complex-indic-table.cc
410dump_khmer_data_CPPFLAGS = $(HBCFLAGS)
411dump_khmer_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbodeffddd02018-02-13 21:38:15 -0800412dump_myanmar_data_SOURCES = dump-myanmar-data.cc hb-ot-shape-complex-indic-table.cc
413dump_myanmar_data_CPPFLAGS = $(HBCFLAGS)
414dump_myanmar_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod50780442018-02-13 21:46:28 -0800415dump_use_data_SOURCES = dump-use-data.cc hb-ot-shape-complex-use-table.cc
416dump_use_data_CPPFLAGS = $(HBCFLAGS)
417dump_use_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800418
Ebrahim Byagowi3d5b1df2019-09-03 16:58:16 +0430419COMPILED_TESTS = test-algs test-iter test-meta test-number test-ot-tag test-unicode-ranges test-bimap
Behdad Esfahbod8e5c2bc2018-12-21 17:29:11 -0500420COMPILED_TESTS_CPPFLAGS = $(HBCFLAGS) -DMAIN -UNDEBUG
421COMPILED_TESTS_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbode9520752018-12-21 11:15:16 -0500422check_PROGRAMS += $(COMPILED_TESTS)
423TESTS += $(COMPILED_TESTS)
Behdad Esfahbodf6d5f1e2018-12-21 00:23:34 -0500424
Behdad Esfahbod0d7af5f2019-02-14 19:37:57 -0800425test_algs_SOURCES = test-algs.cc hb-static.cc
426test_algs_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
427test_algs_LDADD = $(COMPILED_TESTS_LDADD)
428
Behdad Esfahbod8001e002018-12-21 01:53:27 -0500429test_iter_SOURCES = test-iter.cc hb-static.cc
Behdad Esfahbod8e5c2bc2018-12-21 17:29:11 -0500430test_iter_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
431test_iter_LDADD = $(COMPILED_TESTS_LDADD)
Garret Riegera5701422018-02-26 15:20:23 -0800432
Behdad Esfahbod70a49f22019-05-09 14:35:15 -0700433test_meta_SOURCES = test-meta.cc hb-static.cc
434test_meta_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
435test_meta_LDADD = $(COMPILED_TESTS_LDADD)
436
Ebrahim Byagowi3d5b1df2019-09-03 16:58:16 +0430437test_number_SOURCES = test-number.cc hb-number.cc
438test_number_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
439test_number_LDADD = $(COMPILED_TESTS_LDADD)
440
Behdad Esfahbod70952dd2015-12-07 10:28:46 +0100441test_ot_tag_SOURCES = hb-ot-tag.cc
Behdad Esfahbod8e5c2bc2018-12-21 17:29:11 -0500442test_ot_tag_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
443test_ot_tag_LDADD = $(COMPILED_TESTS_LDADD)
Behdad Esfahbod70952dd2015-12-07 10:28:46 +0100444
Garret Riegerf82f2a32018-02-26 15:52:01 -0800445test_unicode_ranges_SOURCES = test-unicode-ranges.cc
Behdad Esfahbod8e5c2bc2018-12-21 17:29:11 -0500446test_unicode_ranges_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
447test_unicode_ranges_LDADD = $(COMPILED_TESTS_LDADD)
Garret Riegera5701422018-02-26 15:20:23 -0800448
Michiharu Ariza040b2612019-06-30 16:13:07 -0700449test_bimap_SOURCES = test-bimap.cc hb-static.cc
450test_bimap_CPPFLAGS = $(COMPILED_TESTS_CPPFLAGS)
451test_bimap_LDADD = $(COMPILED_TESTS_LDADD)
452
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400453TESTS_ENVIRONMENT = \
454 srcdir="$(srcdir)" \
455 MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
456 HBSOURCES="$(HBSOURCES)" \
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800457 HBHEADERS="$(HBHEADERS)" \
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400458 $(NULL)
Behdad Esfahbod7bbe14b2011-01-09 22:29:14 -0500459
Behdad Esfahbod71ef22b2013-08-28 12:52:55 -0400460if HAVE_INTROSPECTION
461
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400462-include $(INTROSPECTION_MAKEFILE)
Behdad Esfahbod26044232015-07-26 23:39:10 +0200463INTROSPECTION_GIRS = HarfBuzz-0.0.gir # What does the 0 mean anyway?!
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400464INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_ --warn-all
465INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
Behdad Esfahbodd6d349d2014-07-23 11:38:49 -0400466INTROSPECTION_SCANNER_ENV = CC="$(CC)"
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400467
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400468HarfBuzz-0.0.gir: libharfbuzz.la libharfbuzz-gobject.la
469HarfBuzz_0_0_gir_INCLUDES = GObject-2.0
470HarfBuzz_0_0_gir_CFLAGS = \
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400471 $(INCLUDES) \
472 $(HBCFLAGS) \
473 -DHB_H \
474 -DHB_H_IN \
475 -DHB_OT_H \
476 -DHB_OT_H_IN \
Behdad Esfahbod44b93312018-11-24 10:30:35 -0500477 -DHB_AAT_H \
478 -DHB_AAT_H_IN \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400479 -DHB_GOBJECT_H \
480 -DHB_GOBJECT_H_IN \
Behdad Esfahbodaa3450c2019-06-17 22:41:49 -0700481 -DHAVE_GOBJECT \
Behdad Esfahbod0e38c912015-11-26 19:26:26 -0500482 -DHB_EXTERN= \
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400483 $(NULL)
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400484HarfBuzz_0_0_gir_LIBS = \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400485 libharfbuzz.la \
486 libharfbuzz-gobject.la \
487 $(NULL)
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400488HarfBuzz_0_0_gir_FILES = \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400489 $(HBHEADERS) \
Behdad Esfahbode0dbf992013-09-05 16:00:47 -0400490 $(HBSOURCES) \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800491 $(HB_GOBJECT_sources) \
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800492 $(HB_GOBJECT_headers) \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400493 $(NULL)
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400494
495girdir = $(datadir)/gir-1.0
496gir_DATA = $(INTROSPECTION_GIRS)
497
498typelibdir = $(libdir)/girepository-1.0
499typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
500
501CLEANFILES += $(gir_DATA) $(typelib_DATA)
Behdad Esfahbod71ef22b2013-08-28 12:52:55 -0400502
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400503endif
Behdad Esfahbodc214cff2011-08-14 15:17:16 +0200504
Behdad Esfahbod0e13bee2009-04-17 17:03:39 -0400505-include $(top_srcdir)/git.mk