blob: 0e63b1d76675a94d1a91a1fcc0ec8a75dfb0e1ce [file] [log] [blame]
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -05001# Process this file with automake to produce Makefile.in
2
3NULL =
4EXTRA_DIST =
5CLEANFILES =
6DISTCLEANFILES =
7MAINTAINERCLEANFILES =
8
Behdad Esfahbodfad26742015-09-01 14:45:46 +01009# Convenience targets:
10lib:
11 @$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/src lib
12
Ebrahim Byagowie849b8a2018-01-19 16:12:24 +033013EXTRA_DIST += CMakeLists.txt
14
Behdad Esfahbod6d56db82018-02-16 17:02:57 -080015EXTRA_DIST += fonts
16
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050017if HAVE_GLIB
Behdad Esfahbod0a2b2a52013-03-21 16:26:39 -040018AM_CPPFLAGS = -DSRCDIR="\"$(srcdir)\"" -I$(top_srcdir)/src/ -I$(top_builddir)/src/ $(GLIB_CFLAGS)
19LDADD = $(top_builddir)/src/libharfbuzz.la $(GLIB_LIBS)
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050020
Garret Riegerd8d8bd82018-02-12 13:33:55 -080021EXTRA_DIST += hb-test.h hb-subset-test.h
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050022
23check_PROGRAMS = $(TEST_PROGS)
24noinst_PROGRAMS = $(TEST_PROGS)
25
26TEST_PROGS = \
27 test-blob \
28 test-buffer \
29 test-common \
30 test-font \
31 test-object \
Behdad Esfahbod8165f272013-01-02 22:50:36 -060032 test-set \
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050033 test-shape \
Garret Rieger72511812018-03-20 11:21:06 -070034 test-subset \
Rod Sheeter89ee20f2018-02-12 16:01:15 -080035 test-subset-cmap \
Garret Rieger89dbebd2018-02-07 16:32:56 -080036 test-subset-glyf \
Garret Rieger15fc45b2018-02-21 17:59:57 -080037 test-subset-hdmx \
Rod Sheeterfa877702018-02-14 14:16:25 -080038 test-subset-hmtx \
Garret Rieger865b6972018-02-12 17:42:20 -080039 test-subset-os2 \
Garret Riegerec47cd92018-03-07 10:33:02 -080040 test-subset-post \
Garret Riegerd9263f02018-03-06 15:40:35 -080041 test-subset-vmtx \
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050042 test-unicode \
43 test-version \
44 $(NULL)
45
Behdad Esfahbodb7b7f0a2018-02-05 19:40:31 -050046test_subset_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Rod Sheeter89ee20f2018-02-12 16:01:15 -080047test_subset_cmap_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Garret Rieger89dbebd2018-02-07 16:32:56 -080048test_subset_glyf_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Garret Rieger15fc45b2018-02-21 17:59:57 -080049test_subset_hdmx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Rod Sheeterfa877702018-02-14 14:16:25 -080050test_subset_hmtx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Garret Rieger865b6972018-02-12 17:42:20 -080051test_subset_os2_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Garret Riegerec47cd92018-03-07 10:33:02 -080052test_subset_post_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Garret Riegerd9263f02018-03-06 15:40:35 -080053test_subset_vmtx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
Behdad Esfahbodb7b7f0a2018-02-05 19:40:31 -050054
Khaled Hosnyf19126d2017-12-05 22:52:54 +020055test_unicode_CPPFLAGS = \
56 $(AM_CPPFLAGS) \
57 $(GLIB_CFLAGS) \
58 $(NULL)
Behdad Esfahbod2966d362013-05-28 17:34:37 -040059test_unicode_LDADD = $(LDADD)
Behdad Esfahbod431bef22012-11-01 16:26:01 -070060if HAVE_ICU
61test_unicode_CPPFLAGS += $(ICU_CFLAGS)
Romain Naour160f6352015-07-22 23:26:23 +020062test_unicode_LDADD += $(top_builddir)/src/libharfbuzz-icu.la $(ICU_LIBS)
Behdad Esfahbod431bef22012-11-01 16:26:01 -070063endif
64
65
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050066if HAVE_OT
Frédéric Wang5fbcb992016-08-25 10:47:15 +020067
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050068TEST_PROGS += \
Sascha Brawerd34d3ac2016-04-25 18:20:57 +020069 test-ot-color \
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050070 test-ot-tag \
71 $(NULL)
Frédéric Wang5fbcb992016-08-25 10:47:15 +020072
73if HAVE_FREETYPE
74TEST_PROGS += \
Behdad Esfahbod86106c72016-09-26 22:12:48 +020075 test-ot-math \
Frédéric Wang5fbcb992016-08-25 10:47:15 +020076 $(NULL)
Behdad Esfahbod86106c72016-09-26 22:12:48 +020077test_ot_math_LDADD = $(LDADD) $(FREETYPE_LIBS)
78test_ot_math_CPPFLAGS = $(AM_CPPFLAGS) $(FREETYPE_CFLAGS)
Frédéric Wang5fbcb992016-08-25 10:47:15 +020079endif # HAVE_FREETYPE
80
81endif # HAVE_OT
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -050082
83# Tests for header compilation
84TEST_PROGS += \
85 test-c \
86 test-cplusplus \
87 $(NULL)
88test_cplusplus_SOURCES = test-cplusplus.cc
89test_c_CPPFLAGS = $(AM_CPPFLAGS)
90test_cplusplus_CPPFLAGS = $(AM_CPPFLAGS)
91if HAVE_ICU
92test_c_CPPFLAGS += $(ICU_CFLAGS)
93test_cplusplus_CPPFLAGS += $(ICU_CFLAGS)
94endif
95if HAVE_FREETYPE
96test_c_CPPFLAGS += $(FREETYPE_CFLAGS)
97test_cplusplus_CPPFLAGS += $(FREETYPE_CFLAGS)
98endif
99
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -0500100# Default test running environment
101TESTS = $(TEST_PROGS)
102TESTS_ENVIRONMENT = \
103 MALLOC_CHECK_=2 \
104 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) \
105 G_DEBUG=gc-friendly \
106 G_SLICE=always-malloc \
107 srcdir=$(srcdir) \
Frédéric Wang722e6202016-09-26 11:51:36 +0200108 G_TEST_SRCDIR=$(abs_srcdir) \
109 G_TEST_BUILDDIR=$(abs_builddir) \
Behdad Esfahbod5898fa92013-02-06 15:29:07 -0500110 $(NULL)
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -0500111
112
113# check-tool: Run tests under $(TOOL)
114check-tool:
115 $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
116 TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) $(top_builddir)/libtool --mode=execute \
117 env $(TOOL)'
118# check-tool-raw: Run tests under $(TOOL), but don't run under libtool
119check-tool-raw:
120 $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
121 TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \
122 env $(TOOL)'
123
124# check-gtester: Run tests under gtester
125GTESTER = gtester
126check-gtester:
127 $(AM_V_at)$(MAKE) $(AM_MAKEFLGS) check-tool-raw TOOL="$(GTESTER) --verbose --keep-going"
128
129
130# Check tests under valgrind. Saves log to log-valgrind.txt
131VALGRIND_FLAGS = \
132 --tool=memcheck --suppressions=$(srcdir)/.valgrind-suppressions \
133 --track-origins=yes \
134 --leak-check=yes
135 $(EXTRA_VALGRIND_FLAGS)
136# Can't do for now: --show-reachable=yes
137CLEANFILES += log-valgrind.txt
Behdad Esfahbodea11abf2013-03-06 20:21:11 -0500138valgrind_verbose = $(valgrind_verbose_@AM_V@)
139valgrind_verbose_ = $(valgrind_verbose_@AM_DEFAULT_V@)
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -0500140valgrind_verbose_0 = | \
141 grep '\(^[^=]\|ERROR SUMMARY\|definitely lost\|indirectly lost\)' | grep -v ': 0'
142# TODO: The following check does not fail if valgrind finds error. It should.
143check-valgrind:
144 $(AM_V_at)$(MAKE) $(AM_MAKEFLGS) check-tool TOOL="valgrind $(VALGRIND_FLAGS)" \
145 2>&1 | tee log-valgrind.txt $(valgrind_verbose)
146
147
148# check-symbols: Finds untested API symbols
149symbols-tested.txt: $(TEST_PROGS)
150 $(AM_V_GEN)$(top_builddir)/libtool --mode=execute nm $^ \
151 | grep ' U hb_' | sed 's/.* U hb_/hb_/' \
152 | sort | uniq > $@.tmp && mv $@.tmp $@
153symbols-exported.txt: $(top_builddir)/src/.libs/libharfbuzz.so
154 $(AM_V_GEN)$(top_builddir)/libtool --mode=execute nm $^ \
155 | grep ' T ' | sed 's/.* T //' | grep -v '^\(_init\|_fini\)$$' \
156 | sort | uniq > $@.tmp && mv $@.tmp $@
157symbols-untested.txt: symbols-tested.txt symbols-exported.txt
158 $(AM_V_GEN)diff $^ > $@.tmp; mv $@.tmp $@
159CLEANFILES += symbols-tested.txt symbols-exported.txt symbols-untested.txt
160check-symbols: symbols-untested.txt
161 @! cat $^ | grep .
162
163
164
Khaled Hosnyf19126d2017-12-05 22:52:54 +0200165else # !HAVE_GLIB
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -0500166check-am: err-glib
167err-glib:
168 @echo "You need to have glib support enabled to run the tests"
169 @exit 77
Khaled Hosnyf19126d2017-12-05 22:52:54 +0200170endif # HAVE_GLIB
Behdad Esfahbod4d6dafd2012-01-19 14:52:02 -0500171
172.PHONY: check-symbols check-tool check-valgrind
173
174-include $(top_srcdir)/git.mk