Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / test / api / Makefile.am
1 # Process this file with automake to produce Makefile.in
2
3 NULL =
4 EXTRA_DIST =
5 CLEANFILES =
6 DISTCLEANFILES =
7 MAINTAINERCLEANFILES =
8
9 # Convenience targets:
10 lib:
11         @$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/src lib
12 libs:
13         @$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/src libs
14
15 EXTRA_DIST += meson.build
16
17 EXTRA_DIST += \
18         fonts \
19         results \
20         $(NULL)
21
22 LINK = $(CXXLINK)
23
24 if HAVE_GLIB
25 AM_CPPFLAGS = -DSRCDIR="\"$(srcdir)\"" -I$(top_srcdir)/src/ -I$(top_builddir)/src/ $(GLIB_CFLAGS)
26 LDADD = $(top_builddir)/src/libharfbuzz.la $(GLIB_LIBS)
27
28 EXTRA_DIST += hb-test.h hb-subset-test.h
29
30 check_PROGRAMS = $(TEST_PROGS)
31 noinst_PROGRAMS = $(TEST_PROGS)
32
33 TEST_PROGS = \
34         test-aat-layout \
35         test-baseline \
36         test-base-minmax \
37         test-be-glyph-advance \
38         test-be-num-glyphs \
39         test-blob \
40         test-buffer \
41         test-c \
42         test-collect-unicodes \
43         test-cplusplus \
44         test-common \
45         test-draw \
46         test-extents \
47         test-font \
48         test-font-scale \
49         test-glyph-names \
50         test-instance-cff2 \
51         test-map \
52         test-object \
53         test-ot-alternates \
54         test-ot-color \
55         test-ot-collect-glyphs \
56         test-ot-face \
57         test-ot-glyphname \
58         test-ot-ligature-carets \
59         test-ot-layout \
60         test-ot-name \
61         test-ot-meta \
62         test-ot-metrics \
63         test-ot-tag \
64         test-ot-extents-cff \
65         test-ot-metrics-tt-var \
66         test-paint \
67         test-set \
68         test-shape \
69         test-style \
70         test-subset \
71         test-subset-cmap \
72         test-subset-drop-tables \
73         test-subset-glyf \
74         test-subset-hdmx \
75         test-subset-hmtx \
76         test-subset-nameids \
77         test-subset-os2 \
78         test-subset-post \
79         test-subset-vmtx \
80         test-subset-cff1 \
81         test-subset-cff2 \
82         test-subset-gvar \
83         test-subset-hvar \
84         test-subset-vvar \
85         test-subset-sbix \
86         test-subset-gpos \
87         test-subset-colr \
88         test-subset-cbdt \
89         test-subset-repacker \
90         test-unicode \
91         test-var-coords \
92         test-version \
93         $(NULL)
94
95 test_draw_CPPFLAGS = $(AM_CPPFLAGS)
96 test_draw_LDADD = $(LDADD)
97
98 test_paint_CPPFLAGS = $(AM_CPPFLAGS)
99 test_paint_LDADD = $(LDADD)
100
101 test_instance_cff2_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
102 test_subset_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
103 test_subset_cmap_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
104 test_subset_drop_tables_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
105 test_subset_glyf_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
106 test_subset_hdmx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
107 test_subset_hmtx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
108 test_subset_os2_LDADD  = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
109 test_subset_post_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
110 test_subset_vmtx_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
111 test_subset_cff1_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
112 test_subset_cff2_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
113 test_subset_gvar_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
114 test_subset_hvar_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
115 test_subset_vvar_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
116 test_subset_sbix_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
117 test_subset_cbdt_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
118 test_subset_nameids_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
119 test_subset_gpos_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
120 test_subset_colr_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
121 test_subset_repacker_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la
122
123 test_unicode_CPPFLAGS = \
124         $(AM_CPPFLAGS) \
125         $(GLIB_CFLAGS) \
126         $(NULL)
127 test_unicode_LDADD = $(LDADD)
128 if HAVE_ICU
129 test_unicode_CPPFLAGS += $(ICU_CFLAGS)
130 test_unicode_LDADD += $(top_builddir)/src/libharfbuzz-icu.la $(ICU_LIBS)
131 endif
132
133 if HAVE_PTHREAD
134 if HAVE_FREETYPE
135 TEST_PROGS += test-multithread
136 test_multithread_CFLAGS = $(CFLAGS) $(PTHREAD_CFLAGS) $(FREETYPE_CFLAGS)
137 test_multithread_LDADD = $(LDADD) $(PTHREAD_LIBS) $(FREETYPE_LIBS)
138 # The auto-generated link rule somehow includes CFLAGS as well.  Without
139 # it, pthread link fails, because, who knows why, $PTHREAD_LIBS is empty.
140 test_multithread_LINK = $(LINK) $(PTHREAD_CFLAGS)
141 endif
142 endif
143
144 if HAVE_FREETYPE
145 test_draw_CPPFLAGS += $(FREETYPE_CFLAGS)
146 test_draw_LDADD += $(FREETYPE_LIBS)
147
148 test_paint_CPPFLAGS += $(FREETYPE_CFLAGS)
149 test_paint_LDADD += $(FREETYPE_LIBS)
150
151 TEST_PROGS += \
152         test-ot-math \
153         test-ft \
154         $(NULL)
155 test_ot_math_LDADD = $(LDADD) $(FREETYPE_LIBS)
156 test_ot_math_CPPFLAGS = $(AM_CPPFLAGS) $(FREETYPE_CFLAGS)
157
158 test_ft_LDADD = $(LDADD) $(FREETYPE_LIBS)
159 test_ft_CPPFLAGS = $(AM_CPPFLAGS) $(FREETYPE_CFLAGS)
160 endif # HAVE_FREETYPE
161
162 if HAVE_CORETEXT
163 TEST_PROGS += \
164         test-coretext \
165         $(NULL)
166 endif # HAVE_CORETEXT
167
168 # Tests for header compilation
169 test_cplusplus_SOURCES = test-cplusplus.cc
170 test_c_CPPFLAGS = $(AM_CPPFLAGS)
171 test_cplusplus_CPPFLAGS = $(AM_CPPFLAGS)
172 if HAVE_ICU
173 test_c_CPPFLAGS += $(ICU_CFLAGS)
174 test_cplusplus_CPPFLAGS += $(ICU_CFLAGS)
175 endif
176 if HAVE_FREETYPE
177 test_c_CPPFLAGS += $(FREETYPE_CFLAGS)
178 test_cplusplus_CPPFLAGS += $(FREETYPE_CFLAGS)
179 endif
180
181 # Default test running environment
182 TESTS = $(TEST_PROGS)
183 TESTS_ENVIRONMENT = \
184         MALLOC_CHECK_=2 \
185         MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) \
186         G_DEBUG=gc-friendly \
187         G_SLICE=always-malloc \
188         srcdir=$(srcdir) \
189         G_TEST_SRCDIR=$(abs_srcdir) \
190         G_TEST_BUILDDIR=$(abs_builddir) \
191         $(NULL)
192
193
194 # check-tool: Run tests under $(TOOL)
195 check-tool:
196         $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
197         TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) $(top_builddir)/libtool --mode=execute \
198         env $(TOOL)'
199 # check-tool-raw: Run tests under $(TOOL), but don't run under libtool
200 check-tool-raw:
201         $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
202         TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \
203         env $(TOOL)'
204
205 # check-gtester: Run tests under gtester
206 GTESTER = gtester
207 check-gtester:
208         $(AM_V_at)$(MAKE) $(AM_MAKEFLGS) check-tool-raw TOOL="$(GTESTER) --verbose --keep-going"
209
210
211 # Check tests under valgrind.  Saves log to log-valgrind.txt
212 VALGRIND_FLAGS = \
213         --tool=memcheck \
214         --track-origins=yes \
215         --leak-check=yes \
216         $(EXTRA_VALGRIND_FLAGS)
217 #       Can't do for now: --show-reachable=yes
218 CLEANFILES +=  log-valgrind.txt
219 valgrind_verbose = $(valgrind_verbose_@AM_V@)
220 valgrind_verbose_ = $(valgrind_verbose_@AM_DEFAULT_V@)
221 valgrind_verbose_0 = | \
222         grep '\(^[^=]\|ERROR SUMMARY\|definitely lost\|indirectly lost\)' | grep -v ': 0'
223 # TODO: The following check does not fail if valgrind finds error.  It should.
224 check-valgrind:
225         $(AM_V_at)$(MAKE) $(AM_MAKEFLGS) check-tool TOOL="valgrind $(VALGRIND_FLAGS)" \
226         2>&1 | tee log-valgrind.txt $(valgrind_verbose)
227
228
229 # check-symbols: Finds untested API symbols
230 symbols-tested.txt: $(TEST_PROGS)
231         $(AM_V_GEN)$(top_builddir)/libtool --mode=execute nm $^ \
232         | grep ' U hb_' | sed 's/.* U hb_/hb_/' \
233         | sort | uniq > $@.tmp && mv $@.tmp $@
234 symbols-tested-or-deprecated.txt: symbols-tested.txt $(top_builddir)/src/harfbuzz-deprecated-symbols.txt
235         $(AM_V_GEN)cat $^ | sort | uniq > $@.tmp; mv $@.tmp $@
236 symbols-exported.txt: $(top_builddir)/src/.libs/libharfbuzz.so
237         $(AM_V_GEN)$(top_builddir)/libtool --mode=execute nm $^ \
238         | grep ' T ' | sed 's/.* T //' | grep -v '^\(_init\|_fini\)$$' \
239         | sort | uniq > $@.tmp && mv $@.tmp $@
240 symbols-untested.txt: symbols-tested-or-deprecated.txt symbols-exported.txt
241         $(AM_V_GEN)diff $^ > $@.tmp; mv $@.tmp $@
242 CLEANFILES += symbols-tested.txt \
243         symbols-exported.txt \
244         symbols-untested.txt \
245         symbols-tested-or-deprecated.txt
246 check-symbols: symbols-untested.txt
247         @! cat $^ | grep .
248
249
250
251 else # !HAVE_GLIB
252 check-am: err-glib
253 err-glib:
254         @echo "You need to have glib support enabled to run the tests"
255         @exit 77
256 endif # HAVE_GLIB
257
258 .PHONY: check-symbols check-tool check-valgrind
259
260 -include $(top_srcdir)/git.mk