1 # We're using _GNU_SOURCE to get the prototype for asprintf. This may
2 # not be the most portable approach, but it is pragmatic and I'm
3 # willing to do something cleaner as soon as it causes someone a
8 -I$(top_srcdir)/boilerplate \
10 -I$(top_builddir)/src \
13 EXTRA_PROGRAMS = cairo-perf cairo-perf-diff-files
14 EXTRA_DIST = cairo-perf-diff
16 cairo_perf_SOURCES = \
29 pattern_create_radial.c \
42 if CAIRO_HAS_WIN32_SURFACE
43 cairo_perf_SOURCES += cairo-perf-win32.c
45 if CAIRO_HAS_OS2_SURFACE
46 cairo_perf_SOURCES += cairo-perf-os2.c
48 cairo_perf_SOURCES += cairo-perf-posix.c
52 cairo_perf_diff_files_SOURCES = \
53 cairo-perf-diff-files.c \
57 LDADD = $(top_builddir)/boilerplate/libcairoboilerplate.la \
58 $(top_builddir)/src/libcairo.la \
61 $(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
62 cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
64 $(top_builddir)/src/libcairo.la:
65 cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
68 # Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
69 # one can limit tested targets both through CAIRO_TEST_TARGET env var
70 # and TARGETS make var on the command line. Same for the rest.
71 TARGETS = $(CAIRO_TEST_TARGET)
72 TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE)
73 ITERS = $(CAIRO_PERF_ITERATIONS)
75 CAIRO_PERF_ENVIRONMENT = CAIRO_PERF_ITERATIONS="$(ITERS)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)"
77 # Cap the maximum number of iterations during 'make check'
78 TESTS_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="10"
80 TESTS = cairo-perf$(EXEEXT)
82 perf: cairo-perf$(EXEEXT)
83 $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf$(EXEEXT)
87 index.html: cairo-perf$(EXEEXT)
88 $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -h HEAD > $@
91 EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
92 VALGRIND_MEMCHECK_FLAGS = \
94 --suppressions=$(top_srcdir)/test/.valgrind-suppressions \
95 --leak-check=yes --show-reachable=yes
96 VALGRIND_CALLGRIND_FLAGS = \
104 check-valgrind perf-valgrind:
105 $(MAKE) $(AM_MAKEFLAGS) check \
106 TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \
107 $(top_builddir)/libtool --mode=execute \
108 valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \
112 $(MAKE) $(AM_MAKEFLAGS) check \
113 TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \
114 $(top_builddir)/libtool --mode=execute \
115 valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)'
117 .PHONY: perf html check-valgrind perf-valgrind perf-callgrind
119 EXTRA_DIST += Makefile.win32