Makefile.am 7.0 KB

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