# We're using _GNU_SOURCE to get the prototype for asprintf. This may # not be the most portable approach, but it is pragmatic and I'm # willing to do something cleaner as soon as it causes someone a # problem. INCLUDES = \ -D_GNU_SOURCE \ -I$(srcdir) \ -I$(top_srcdir)/boilerplate \ -I$(top_srcdir)/src \ -I$(top_builddir)/src \ $(CAIRO_CFLAGS) EXTRA_PROGRAMS = cairo-perf cairo-perf-diff-files EXTRA_DIST = cairo-perf-diff cairo_perf_SOURCES = \ cairo-perf.c \ cairo-perf.h \ cairo-perf-cover.c \ cairo-stats.c \ cairo-stats.h \ box-outline.c \ fill.c \ long-lines.c \ mosaic.c \ mosaic.h \ paint.c \ paint-with-alpha.c \ pattern_create_radial.c \ rectangles.c \ stroke.c \ subimage_copy.c \ tessellate.c \ unaligned-clip.c \ text.c \ world-map.c \ world-map.h \ zrusin.c \ zrusin-another.h \ long-dashed-lines.c if CAIRO_HAS_WIN32_SURFACE cairo_perf_SOURCES += cairo-perf-win32.c else if CAIRO_HAS_OS2_SURFACE cairo_perf_SOURCES += cairo-perf-os2.c else cairo_perf_SOURCES += cairo-perf-posix.c endif endif cairo_perf_diff_files_SOURCES = \ cairo-perf-diff-files.c \ cairo-stats.c \ cairo-stats.h LDADD = $(top_builddir)/boilerplate/libcairoboilerplate.la \ $(top_builddir)/src/libcairo.la \ $(CAIROPERF_LIBS) $(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la $(top_builddir)/src/libcairo.la: cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la # Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that # one can limit tested targets both through CAIRO_TEST_TARGET env var # and TARGETS make var on the command line. TARGETS = $(CAIRO_TEST_TARGET) ITERS = $(CAIRO_PERF_ITERATIONS) CAIRO_PERF_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="$(ITERS)" # Cap the maximum number of iterations during 'make check' TESTS_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="10" TESTS = cairo-perf perf: cairo-perf $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf html: index.html index.html: cairo-perf $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -h HEAD > $@ EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS) VALGRIND_MEMCHECK_FLAGS = \ --tool=memcheck \ --suppressions=$(top_srcdir)/test/.valgrind-suppressions \ --leak-check=yes --show-reachable=yes VALGRIND_CALLGRIND_FLAGS = \ --tool=callgrind CLEANFILES = \ $(EXTRA_PROGRAMS) \ valgrind-log \ callgrind.out.* \ index.html check-valgrind perf-valgrind: $(MAKE) $(AM_MAKEFLAGS) check \ TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \ $(top_srcdir)/libtool --mode=execute \ valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \ | tee valgrind-log perf-callgrind: $(MAKE) $(AM_MAKEFLAGS) check \ TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \ $(top_srcdir)/libtool --mode=execute \ valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)' .PHONY: perf html check-valgrind perf-valgrind perf-callgrind