blob: df45f73bc889b808b1a734dfa860211dd480a7ab [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
Behdad Esfahbod7988da22015-01-21 18:33:50 -080015# Convenience targets:
Behdad Esfahbodeeffabc2018-02-07 21:34:05 -060016lib: $(BUILT_SOURCES) libharfbuzz.la libharfbuzz-subset.la
Garret Rieger1beb0882018-03-12 16:08:16 -070017fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la libharfbuzz-subset-fuzzing.la
Behdad Esfahbod7988da22015-01-21 18:33:50 -080018
Behdad Esfahbod1f0ceeb2009-11-02 16:28:39 -050019lib_LTLIBRARIES = libharfbuzz.la
Owen Taylor80a15822000-12-20 04:41:36 +000020
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080021include Makefile.sources
22
Behdad Esfahbodd94647e2009-11-03 16:35:10 -050023HBCFLAGS =
24HBLIBS =
Behdad Esfahbod539a6102015-08-11 12:58:49 +020025HBNONPCLIBS =
26HBDEPS =
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080027HBSOURCES = $(HB_BASE_sources)
ebraminiod2acaf62017-04-05 02:21:23 -070028HBSOURCES += $(HB_BASE_RAGEL_GENERATED_sources)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080029HBHEADERS = $(HB_BASE_headers)
Behdad Esfahbodd5a8e462009-11-03 15:14:40 -050030
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +033031# Make sure we don't link to libstdc++
Behdad Esfahbodb969a822018-02-12 20:51:26 -080032# No threadsafe statics in C++ as we do it ourselves
Behdad Esfahbod44b6c772018-03-26 14:26:45 -070033# We don't use these features, so it's safe to disable them
34# even in the cases where we DO link to libstdc++.
35AM_CXXFLAGS = -fno-exceptions -fno-threadsafe-statics -fno-rtti
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +033036
Behdad Esfahbod02aeca92011-08-04 22:31:05 -040037if HAVE_OT
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080038HBSOURCES += $(HB_OT_sources)
ebraminiod2acaf62017-04-05 02:21:23 -070039HBSOURCES += $(HB_OT_RAGEL_GENERATED_sources)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080040HBHEADERS += $(HB_OT_headers)
Behdad Esfahbod02aeca92011-08-04 22:31:05 -040041endif
Behdad Esfahbodc78f4482011-05-05 21:31:04 -040042
Konstantin Rittc9522de2014-01-22 21:07:13 +020043if HAVE_FALLBACK
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080044HBSOURCES += $(HB_FALLBACK_sources)
Konstantin Rittc9522de2014-01-22 21:07:13 +020045endif
46
Behdad Esfahbod66efe892012-10-02 14:55:32 -040047if HAVE_PTHREAD
48HBCFLAGS += $(PTHREAD_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020049HBNONPCLIBS += $(PTHREAD_LIBS)
Behdad Esfahbod66efe892012-10-02 14:55:32 -040050endif
51
Behdad Esfahbod63a792a2009-11-02 18:33:52 -050052if HAVE_GLIB
Behdad Esfahbodd94647e2009-11-03 16:35:10 -050053HBCFLAGS += $(GLIB_CFLAGS)
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050054HBLIBS += $(GLIB_LIBS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020055HBDEPS += $(GLIB_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080056HBSOURCES += $(HB_GLIB_sources)
57HBHEADERS += $(HB_GLIB_headers)
Behdad Esfahbodc214cff2011-08-14 15:17:16 +020058endif
59
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050060if HAVE_FREETYPE
61HBCFLAGS += $(FREETYPE_CFLAGS)
62HBLIBS += $(FREETYPE_LIBS)
Behdad Esfahbodddd6bf12015-08-18 15:55:09 +010063# XXX
64# The following creates a recursive dependency on FreeType if FreeType is
65# built with HarfBuzz support enabled. Newer pkg-config handles that just
66# fine but pkg-config 0.26 as shipped in Ubuntu 14.04 crashes. Remove
67# in a year or two, or otherwise work around it...
68#HBDEPS += $(FREETYPE_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080069HBSOURCES += $(HB_FT_sources)
70HBHEADERS += $(HB_FT_headers)
Behdad Esfahbod8fb3d1a2009-11-03 18:34:20 -050071endif
Behdad Esfahbodca95ce42009-11-03 14:18:33 -050072
Behdad Esfahbod6bd9b472012-04-12 14:53:53 -040073if HAVE_GRAPHITE2
74HBCFLAGS += $(GRAPHITE2_CFLAGS)
75HBLIBS += $(GRAPHITE2_LIBS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020076HBDEPS += $(GRAPHITE2_DEPS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080077HBSOURCES += $(HB_GRAPHITE2_sources)
78HBHEADERS += $(HB_GRAPHITE2_headers)
Behdad Esfahbod1f49cf32011-08-24 01:29:25 +020079endif
80
Behdad Esfahbod0fbb2dc2011-08-03 19:55:04 -040081if HAVE_UNISCRIBE
82HBCFLAGS += $(UNISCRIBE_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020083HBNONPCLIBS += $(UNISCRIBE_LIBS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080084HBSOURCES += $(HB_UNISCRIBE_sources)
85HBHEADERS += $(HB_UNISCRIBE_headers)
Behdad Esfahbod0fbb2dc2011-08-03 19:55:04 -040086endif
87
Chun-wei Fanc6792852016-02-03 18:31:23 +080088if HAVE_DIRECTWRITE
89HBCFLAGS += $(DIRECTWRITE_CXXFLAGS)
90HBNONPCLIBS += $(DIRECTWRITE_LIBS)
91HBSOURCES += $(HB_DIRECTWRITE_sources)
92HBHEADERS += $(HB_DIRECTWRITE_headers)
93endif
94
Jonathan Kewaa6d8492012-07-24 15:52:32 -040095if HAVE_CORETEXT
96HBCFLAGS += $(CORETEXT_CFLAGS)
Behdad Esfahbod539a6102015-08-11 12:58:49 +020097HBNONPCLIBS += $(CORETEXT_LIBS)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +080098HBSOURCES += $(HB_CORETEXT_sources)
99HBHEADERS += $(HB_CORETEXT_headers)
Jonathan Kewaa6d8492012-07-24 15:52:32 -0400100endif
101
Behdad Esfahbod3f33f0d2012-10-02 16:03:18 -0400102if HAVE_UCDN
103SUBDIRS += hb-ucdn
104HBCFLAGS += -I$(srcdir)/hb-ucdn
105HBLIBS += hb-ucdn/libhb-ucdn.la
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800106HBSOURCES += $(HB_UCDN_sources)
Behdad Esfahbod909de952017-11-14 16:22:52 -0800107hb-ucdn/libhb-ucdn.la: ucdn
108ucdn:
109 @$(MAKE) $(AM_MAKEFLAGS) -C hb-ucdn
Behdad Esfahbod3f33f0d2012-10-02 16:03:18 -0400110endif
111DIST_SUBDIRS += hb-ucdn
Behdad Esfahbod1512a732012-07-24 19:16:56 -0400112
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400113
114# Put the library together
115
Behdad Esfahbod539a6102015-08-11 12:58:49 +0200116HBLIBS += $(HBNONPCLIBS)
117
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400118if OS_WIN32
119export_symbols = -export-symbols harfbuzz.def
120harfbuzz_def_dependency = harfbuzz.def
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330121export_symbols_subset = -export-symbols harfbuzz-subset.def
122harfbuzz_subset_def_dependency = harfbuzz-subset.def
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800123export_symbols_icu = -export-symbols harfbuzz-icu.def
124harfbuzz_icu_def_dependency = harfbuzz-icu.def
125export_symbols_gobject = -export-symbols harfbuzz-gobject.def
126harfbuzz_gobject_def_dependency = harfbuzz-gobject.def
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330127chosen_linker = $(CXXLINK)
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400128else
Khaled Hosny0b94d592018-02-12 16:45:36 +0200129if WITH_LIBSTDCXX
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330130chosen_linker = $(CXXLINK)
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330131else
Behdad Esfahbode7846322013-01-14 00:27:21 -0600132if HAVE_GCC
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330133# Use a C linker for GCC, not C++; Don't link to libstdc++
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330134chosen_linker = $(LINK)
Behdad Esfahbode7846322013-01-14 00:27:21 -0600135else
Ebrahim Byagowi4af3c5e2018-02-12 23:21:24 +0330136chosen_linker = $(CXXLINK)
Behdad Esfahbode7846322013-01-14 00:27:21 -0600137endif
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400138endif
Ebrahim Byagowi2efc8962018-02-12 12:00:07 +0330139endif
Behdad Esfahbod20a840c2012-09-24 20:23:00 -0400140
Ebrahim Byagowif7399792018-03-03 22:55:09 +0330141@CODE_COVERAGE_RULES@
142
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330143base_link_flags = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430144libharfbuzz_la_LINK = $(chosen_linker) $(libharfbuzz_la_LDFLAGS)
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800145libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
Behdad Esfahbod44b6c772018-03-26 14:26:45 -0700146libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) $(CODE_COVERAGE_CFLAGS)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430147libharfbuzz_la_LDFLAGS = $(base_link_flags) $(export_symbols) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodd94647e2009-11-03 16:35:10 -0500148libharfbuzz_la_LIBADD = $(HBLIBS)
Behdad Esfahbodeb7669a2012-09-18 19:42:06 -0400149EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
Behdad Esfahbod1f0ceeb2009-11-02 16:28:39 -0500150pkginclude_HEADERS = $(HBHEADERS)
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800151nodist_pkginclude_HEADERS =
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400152pkgconfigdir = $(libdir)/pkgconfig
153pkgconfig_DATA = harfbuzz.pc
Ben Boeckeld38f37b2018-02-23 16:55:53 -0500154cmakedir = $(libdir)/cmake/harfbuzz
155cmake_DATA = harfbuzz-config.cmake
156EXTRA_DIST += harfbuzz.pc.in harfbuzz-config.cmake.in
Owen Taylor80a15822000-12-20 04:41:36 +0000157
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500158lib_LTLIBRARIES += libharfbuzz-subset.la
159libharfbuzz_subset_la_SOURCES = $(HB_SUBSET_sources)
Behdad Esfahbod44b6c772018-03-26 14:26:45 -0700160libharfbuzz_subset_la_CPPFLAGS = $(HBCFLAGS) $(CODE_COVERAGE_CFLAGS)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430161libharfbuzz_subset_la_LDFLAGS = $(base_link_flags) $(export_symbols_subset) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500162libharfbuzz_subset_la_LIBADD = libharfbuzz.la
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330163EXTRA_libharfbuzz_subset_la_DEPENDENCIES = $(harfbuzz_subset_def_dependency)
Behdad Esfahbodae39fc82018-02-04 20:18:52 -0500164pkginclude_HEADERS += $(HB_SUBSET_headers)
165pkgconfig_DATA += harfbuzz-subset.pc
166EXTRA_DIST += harfbuzz-subset.pc.in
167
Ebrahim Byagowi72bec1c2018-01-05 12:42:20 +0330168FUZZING_CPPFLAGS = \
Behdad Esfahbod91dd1152016-02-25 13:56:47 +0900169 -DHB_NDEBUG \
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800170 -DHB_MAX_NESTING_LEVEL=3 \
171 -DHB_SANITIZE_MAX_EDITS=3 \
Behdad Esfahbode2d2d812018-02-18 17:28:53 -0800172 -DHB_SANITIZE_MAX_OPS_FACTOR=3 \
173 -DHB_SANITIZE_MAX_OPS_MIN=128 \
Behdad Esfahbodbaf77792017-11-14 21:53:48 -0800174 -DHB_BUFFER_MAX_LEN_FACTOR=3 \
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800175 -DHB_BUFFER_MAX_LEN_MIN=8 \
176 -DHB_BUFFER_MAX_LEN_DEFAULT=128 \
Behdad Esfahbodbaf77792017-11-14 21:53:48 -0800177 -DHB_BUFFER_MAX_OPS_FACTOR=8 \
178 -DHB_BUFFER_MAX_OPS_MIN=64 \
179 -DHB_BUFFER_MAX_OPS_DEFAULT=1024 \
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800180 $(NULL)
Garret Riegeraa9612d2018-03-12 18:04:34 -0700181EXTRA_LTLIBRARIES = libharfbuzz-fuzzing.la libharfbuzz-subset-fuzzing.la
182
Behdad Esfahbod86348462018-02-13 21:18:00 -0800183libharfbuzz_fuzzing_la_LINK = $(chosen_linker) $(libharfbuzz_fuzzing_la_LDFLAGS)
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800184libharfbuzz_fuzzing_la_SOURCES = $(libharfbuzz_la_SOURCES)
Behdad Esfahbod8c3612a2018-02-14 10:57:34 -0800185libharfbuzz_fuzzing_la_CPPFLAGS = $(HBCFLAGS) $(FUZZING_CPPFLAGS)
Behdad Esfahbod3b68a032018-02-08 17:00:37 -0600186libharfbuzz_fuzzing_la_LDFLAGS = $(AM_LDFLAGS)
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800187libharfbuzz_fuzzing_la_LIBADD = $(libharfbuzz_la_LIBADD)
188EXTRA_libharfbuzz_fuzzing_la_DEPENDENCIES = $(EXTRA_libharfbuzz_la_DEPENDENCIES)
Behdad Esfahbod63fe05c2015-11-18 23:52:34 -0800189CLEANFILES += libharfbuzz-fuzzing.la
Behdad Esfahbodff16ef32015-11-18 16:27:32 -0800190
Garret Rieger1beb0882018-03-12 16:08:16 -0700191libharfbuzz_subset_fuzzing_la_LINK = $(chosen_linker) $(libharfbuzz_subset_fuzzing_la_LDFLAGS)
192libharfbuzz_subset_fuzzing_la_SOURCES = $(libharfbuzz_subset_la_SOURCES)
Garret Riegeraa9612d2018-03-12 18:04:34 -0700193libharfbuzz_subset_fuzzing_la_CPPFLAGS = $(HBCFLAGS) $(FUZZING_CPPFLAGS)
Garret Rieger1beb0882018-03-12 16:08:16 -0700194libharfbuzz_subset_fuzzing_la_LDFLAGS = $(AM_LDFLAGS)
195libharfbuzz_subset_fuzzing_la_LIBADD = $(libharfbuzz_subset_la_LIBADD)
196EXTRA_libharfbuzz_subset_fuzzing_la_DEPENDENCIES = $(EXTRA_libharfbuzz_subset_la_DEPENDENCIES)
197CLEANFILES += libharfbuzz-subset-fuzzing.la
198
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400199if HAVE_ICU
Kal Conleyb424b6c2016-02-26 00:35:15 +0100200if HAVE_ICU_BUILTIN
201HBCFLAGS += $(ICU_CFLAGS)
202HBLIBS += $(ICU_LIBS)
203HBSOURCES += $(HB_ICU_sources)
204HBHEADERS += $(HB_ICU_headers)
205else
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400206lib_LTLIBRARIES += libharfbuzz-icu.la
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800207libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430208libharfbuzz_icu_la_CPPFLAGS = $(HBCFLAGS) $(ICU_CFLAGS) $(CODE_COVERAGE_CFLAGS)
209libharfbuzz_icu_la_LDFLAGS = $(base_link_flags) $(export_symbols_icu) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400210libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330211EXTRA_libharfbuzz_icu_la_DEPENDENCIES = $(harfbuzz_icu_def_dependency)
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800212pkginclude_HEADERS += $(HB_ICU_headers)
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400213pkgconfig_DATA += harfbuzz-icu.pc
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400214endif
Kal Conleyb424b6c2016-02-26 00:35:15 +0100215endif
Behdad Esfahbod213001a2013-09-03 20:00:16 -0400216EXTRA_DIST += harfbuzz-icu.pc.in
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400217
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400218if HAVE_GOBJECT
219lib_LTLIBRARIES += libharfbuzz-gobject.la
Behdad Esfahbod86348462018-02-13 21:18:00 -0800220libharfbuzz_gobject_la_LINK = $(chosen_linker) $(libharfbuzz_gobject_la_LDFLAGS)
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800221libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_DIST_sources)
222nodist_libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_NODIST_sources)
Ebrahim Byagowi430f8282018-03-27 13:59:56 +0430223libharfbuzz_gobject_la_CPPFLAGS = $(HBCFLAGS) $(GOBJECT_CFLAGS) $(CODE_COVERAGE_CFLAGS)
224libharfbuzz_gobject_la_LDFLAGS = $(base_link_flags) $(CODE_COVERAGE_LDFLAGS)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400225libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800226EXTRA_libharfbuzz_gobject_la_DEPENDENCIES = $(harfbuzz_gobject_def_dependency)
227pkginclude_HEADERS += $(HB_GOBJECT_DIST_headers)
228nodist_pkginclude_HEADERS += $(HB_GOBJECT_NODIST_headers)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400229pkgconfig_DATA += harfbuzz-gobject.pc
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400230
231BUILT_SOURCES += \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800232 $(HB_GOBJECT_ENUM_sources) \
233 $(HB_GOBJECT_ENUM_headers) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400234 $(NULL)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400235DISTCLEANFILES += \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800236 $(HB_GOBJECT_ENUM_sources) \
237 $(HB_GOBJECT_ENUM_headers) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400238 $(NULL)
239hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS)
Ebrahim Byagowi8d1b4082018-03-17 01:05:03 +0330240 $(AM_V_GEN) PYTHONIOENCODING=UTF-8 $(GLIB_MKENUMS) \
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400241 --identifier-prefix hb_ --symbol-prefix hb_gobject \
242 --template $^ | \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400243 sed 's/_t_get_type/_get_type/g; s/_T (/ (/g' > "$@" \
244 || ($(RM) "$@"; false)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400245endif
Behdad Esfahbod213001a2013-09-03 20:00:16 -0400246EXTRA_DIST += \
247 harfbuzz-gobject.pc.in \
248 hb-gobject-enums.cc.tmpl \
249 hb-gobject-enums.h.tmpl \
250 $(NULL)
Behdad Esfahbod71439a82013-08-26 20:56:58 -0400251
252
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400253%.pc: %.pc.in $(top_builddir)/config.status
254 $(AM_V_GEN) \
Behdad Esfahbod2fd0e022013-06-06 17:16:01 -0400255 $(SED) -e 's@%prefix%@$(prefix)@g' \
256 -e 's@%exec_prefix%@$(exec_prefix)@g' \
257 -e 's@%libdir%@$(libdir)@g' \
258 -e 's@%includedir%@$(includedir)@g' \
Behdad Esfahbod539a6102015-08-11 12:58:49 +0200259 -e 's@%libs_private%@$(HBNONPCLIBS)@g' \
260 -e 's@%requires_private%@$(HBDEPS)@g' \
Behdad Esfahbod2fd0e022013-06-06 17:16:01 -0400261 -e 's@%VERSION%@$(VERSION)@g' \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400262 "$<" > "$@" \
263 || ($(RM) "$@"; false)
Behdad Esfahbod22ce0962013-05-28 17:18:30 -0400264
Behdad Esfahbodd70be292013-05-28 17:23:56 -0400265CLEANFILES += $(pkgconfig_DATA)
266
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400267
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800268DEF_FILES = harfbuzz.def harfbuzz-subset.def harfbuzz-icu.def
269if HAVE_GOBJECT
270DEF_FILES += harfbuzz-gobject.def
271endif
272check: $(DEF_FILES) # For check-symbols.sh
273CLEANFILES += $(DEF_FILES)
Behdad Esfahbod9de5f982013-02-04 23:28:22 -0500274harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
Ebrahim Byagowi00806142018-01-19 01:12:31 +0330275 $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800276harfbuzz-subset.def: $(HB_SUBSET_headers)
277 $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330278harfbuzz-icu.def: $(HB_ICU_headers)
279 $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800280harfbuzz-gobject.def: $(HB_GOBJECT_headers)
Ebrahim Byagowia9b650d2018-02-12 15:10:13 +0330281 $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@
Behdad Esfahbod560d68a2012-08-08 17:16:01 -0400282
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400283
284GENERATORS = \
Behdad Esfahbod9d494332011-06-01 18:10:10 -0400285 gen-arabic-table.py \
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400286 gen-indic-table.py \
Behdad Esfahbode2c95112015-07-20 11:32:48 +0100287 gen-use-table.py \
Ebrahim Byagowi00806142018-01-19 01:12:31 +0330288 gen-def.py \
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400289 $(NULL)
Behdad Esfahbod3eb936f2010-10-05 18:36:58 -0400290EXTRA_DIST += $(GENERATORS)
291
Behdad Esfahbode2c95112015-07-20 11:32:48 +0100292unicode-tables: arabic-table indic-table use-table
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500293
Behdad Esfahbod3f5327a2014-06-20 16:17:42 -0400294arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400295 $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-arabic-table.hh \
296 || ($(RM) hb-ot-shape-complex-arabic-table.hh; false)
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500297
Behdad Esfahbode2c95112015-07-20 11:32:48 +0100298indic-table: gen-indic-table.py IndicSyllabicCategory-7.0.0.txt IndicMatraCategory-7.0.0.txt Blocks.txt
299 $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-indic-table.cc \
300 || ($(RM) hb-ot-shape-complex-indic-table.cc; false)
301
Behdad Esfahbod20e246e2015-07-20 15:56:19 +0100302use-table: gen-use-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt UnicodeData.txt Blocks.txt
Behdad Esfahbode2c95112015-07-20 11:32:48 +0100303 $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-use-table.cc \
304 || ($(RM) hb-ot-shape-complex-use-table.cc; false)
305
Behdad Esfahbod343a0e42014-03-21 14:37:27 -0700306built-sources: $(BUILT_SOURCES)
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500307
Behdad Esfahbode2c95112015-07-20 11:32:48 +0100308.PHONY: unicode-tables arabic-table indic-table use-table built-sources
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500309
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400310RAGEL_GENERATED = \
William Hua5ecf96e2017-04-17 01:33:42 -0400311 $(patsubst %,$(srcdir)/%,$(HB_BASE_RAGEL_GENERATED_sources)) \
312 $(patsubst %,$(srcdir)/%,$(HB_OT_RAGEL_GENERATED_sources)) \
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500313 $(NULL)
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400314BUILT_SOURCES += $(RAGEL_GENERATED)
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500315EXTRA_DIST += \
Behdad Esfahboda4471d02017-04-05 15:42:11 +0200316 $(HB_BASE_RAGEL_sources) \
317 $(HB_OT_RAGEL_sources) \
Behdad Esfahbod98628ca2013-02-11 13:36:23 -0500318 $(NULL)
Behdad Esfahbodabc82b42018-02-20 14:34:16 -0800319# We decided to add ragel-generated files to git...
320#MAINTAINERCLEANFILES += $(RAGEL_GENERATED)
Behdad Esfahbodc0b82ba2014-10-01 14:24:07 -0400321$(srcdir)/%.hh: $(srcdir)/%.rl
322 $(AM_V_GEN)(cd $(srcdir) && $(RAGEL) -e -F1 -o "$*.hh" "$*.rl") \
Behdad Esfahbod8971cac2014-10-01 12:41:03 -0400323 || ($(RM) "$@"; false)
Behdad Esfahbod867361c2011-06-17 18:35:46 -0400324
Behdad Esfahbode54dd262013-02-27 13:01:02 -0500325noinst_PROGRAMS = \
326 main \
327 test \
328 test-buffer-serialize \
329 test-size-params \
330 test-would-substitute \
331 $(NULL)
Behdad Esfahbod5353bf42011-02-22 18:06:19 -0500332bin_PROGRAMS =
333
Behdad Esfahbodb857b492009-05-20 05:35:14 -0400334main_SOURCES = main.cc
Behdad Esfahbodd94647e2009-11-03 16:35:10 -0500335main_CPPFLAGS = $(HBCFLAGS)
336main_LDADD = libharfbuzz.la $(HBLIBS)
Owen Taylor80a15822000-12-20 04:41:36 +0000337
Behdad Esfahbod0f3f5292012-11-30 09:06:59 +0200338test_SOURCES = test.cc
339test_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
340test_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
341
Behdad Esfahbodbe73a5f2012-07-19 14:59:15 -0400342test_would_substitute_SOURCES = test-would-substitute.cc
343test_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
344test_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
345
Behdad Esfahbod0f3f5292012-11-30 09:06:59 +0200346test_size_params_SOURCES = test-size-params.cc
347test_size_params_CPPFLAGS = $(HBCFLAGS)
348test_size_params_LDADD = libharfbuzz.la $(HBLIBS)
349
Behdad Esfahbode54dd262013-02-27 13:01:02 -0500350test_buffer_serialize_SOURCES = test-buffer-serialize.cc
351test_buffer_serialize_CPPFLAGS = $(HBCFLAGS)
352test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS)
353
Behdad Esfahbod7bbe14b2011-01-09 22:29:14 -0500354dist_check_SCRIPTS = \
Behdad Esfahbodacdba3f2010-07-23 15:11:18 -0400355 check-c-linkage-decls.sh \
Behdad Esfahbodc2545b92017-10-07 12:56:53 +0200356 check-externs.sh \
Behdad Esfahbodd05d13d2010-06-09 07:15:03 -0400357 check-header-guards.sh \
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400358 check-includes.sh \
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400359 check-static-inits.sh \
Behdad Esfahbodac1b7232013-08-30 19:32:10 -0400360 check-symbols.sh \
Behdad Esfahbodd9afa112013-05-28 15:27:40 -0400361 $(NULL)
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800362TESTS += $(dist_check_SCRIPTS)
Behdad Esfahbodd59e28e2012-08-28 19:08:36 -0400363
Khaled Hosny0b94d592018-02-12 16:45:36 +0200364if !WITH_LIBSTDCXX
365dist_check_SCRIPTS += \
366 check-libstdc++.sh \
367 $(NULL)
368endif
369
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800370check_PROGRAMS += \
Ebrahim Byagowi8fd55422018-03-27 16:57:09 +0430371 dump-emoji \
Behdad Esfahbodc0e45b62018-02-13 21:23:38 -0800372 dump-indic-data \
Behdad Esfahbod15ba4fb2018-02-13 21:41:51 -0800373 dump-khmer-data \
Behdad Esfahbodeffddd02018-02-13 21:38:15 -0800374 dump-myanmar-data \
Behdad Esfahbod50780442018-02-13 21:46:28 -0800375 dump-use-data \
Behdad Esfahbod70952dd2015-12-07 10:28:46 +0100376 $(NULL)
Ebrahim Byagowi8fd55422018-03-27 16:57:09 +0430377dump_emoji_SOURCES = dump-emoji.cc
378dump_emoji_CPPFLAGS = $(HBCFLAGS)
379dump_emoji_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbodc0e45b62018-02-13 21:23:38 -0800380dump_indic_data_SOURCES = dump-indic-data.cc hb-ot-shape-complex-indic-table.cc
381dump_indic_data_CPPFLAGS = $(HBCFLAGS)
382dump_indic_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod15ba4fb2018-02-13 21:41:51 -0800383dump_khmer_data_SOURCES = dump-khmer-data.cc hb-ot-shape-complex-indic-table.cc
384dump_khmer_data_CPPFLAGS = $(HBCFLAGS)
385dump_khmer_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbodeffddd02018-02-13 21:38:15 -0800386dump_myanmar_data_SOURCES = dump-myanmar-data.cc hb-ot-shape-complex-indic-table.cc
387dump_myanmar_data_CPPFLAGS = $(HBCFLAGS)
388dump_myanmar_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod50780442018-02-13 21:46:28 -0800389dump_use_data_SOURCES = dump-use-data.cc hb-ot-shape-complex-use-table.cc
390dump_use_data_CPPFLAGS = $(HBCFLAGS)
391dump_use_data_LDADD = libharfbuzz.la $(HBLIBS)
Behdad Esfahbod397ed532018-02-13 18:54:26 -0800392
Garret Riegera5701422018-02-26 15:20:23 -0800393check_PROGRAMS += test-ot-tag test-unicode-ranges
394TESTS += test-ot-tag test-unicode-ranges
395
Behdad Esfahbod70952dd2015-12-07 10:28:46 +0100396test_ot_tag_SOURCES = hb-ot-tag.cc
397test_ot_tag_CPPFLAGS = $(HBCFLAGS) -DMAIN
398test_ot_tag_LDADD = libharfbuzz.la $(HBLIBS)
399
Garret Riegerf82f2a32018-02-26 15:52:01 -0800400test_unicode_ranges_SOURCES = test-unicode-ranges.cc
Garret Riegera5701422018-02-26 15:20:23 -0800401test_unicode_ranges_LDADD = libharfbuzz.la $(HBLIBS)
402
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400403TESTS_ENVIRONMENT = \
404 srcdir="$(srcdir)" \
405 MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
406 HBSOURCES="$(HBSOURCES)" \
Behdad Esfahbodb91e8da2018-02-23 22:51:17 -0800407 HBHEADERS="$(HBHEADERS)" \
Behdad Esfahbod5bc18192011-05-27 15:58:54 -0400408 $(NULL)
Behdad Esfahbod7bbe14b2011-01-09 22:29:14 -0500409
Behdad Esfahbod71ef22b2013-08-28 12:52:55 -0400410if HAVE_INTROSPECTION
411
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400412-include $(INTROSPECTION_MAKEFILE)
Behdad Esfahbod26044232015-07-26 23:39:10 +0200413INTROSPECTION_GIRS = HarfBuzz-0.0.gir # What does the 0 mean anyway?!
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400414INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_ --warn-all
415INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
Behdad Esfahbodd6d349d2014-07-23 11:38:49 -0400416INTROSPECTION_SCANNER_ENV = CC="$(CC)"
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400417
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400418HarfBuzz-0.0.gir: libharfbuzz.la libharfbuzz-gobject.la
419HarfBuzz_0_0_gir_INCLUDES = GObject-2.0
420HarfBuzz_0_0_gir_CFLAGS = \
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400421 $(INCLUDES) \
422 $(HBCFLAGS) \
423 -DHB_H \
424 -DHB_H_IN \
425 -DHB_OT_H \
426 -DHB_OT_H_IN \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400427 -DHB_GOBJECT_H \
428 -DHB_GOBJECT_H_IN \
Behdad Esfahbod0e38c912015-11-26 19:26:26 -0500429 -DHB_EXTERN= \
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400430 $(NULL)
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400431HarfBuzz_0_0_gir_LIBS = \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400432 libharfbuzz.la \
433 libharfbuzz-gobject.la \
434 $(NULL)
Behdad Esfahbodb94243d2013-08-30 18:41:33 -0400435HarfBuzz_0_0_gir_FILES = \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400436 $(HBHEADERS) \
Behdad Esfahbode0dbf992013-09-05 16:00:47 -0400437 $(HBSOURCES) \
Chun-wei Fan35ded3a2015-11-03 16:56:27 +0800438 $(HB_GOBJECT_sources) \
Behdad Esfahbode0939d82018-02-23 13:19:34 -0800439 $(HB_GOBJECT_headers) \
Behdad Esfahbodd8f50702013-08-26 21:26:24 -0400440 $(NULL)
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400441
442girdir = $(datadir)/gir-1.0
443gir_DATA = $(INTROSPECTION_GIRS)
444
445typelibdir = $(libdir)/girepository-1.0
446typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
447
448CLEANFILES += $(gir_DATA) $(typelib_DATA)
Behdad Esfahbod71ef22b2013-08-28 12:52:55 -0400449
Behdad Esfahbod23027f72013-08-22 19:03:21 -0400450endif
Behdad Esfahbodc214cff2011-08-14 15:17:16 +0200451
Behdad Esfahbod0e13bee2009-04-17 17:03:39 -0400452-include $(top_srcdir)/git.mk