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