[configure.in] Build fails on Solaris due to non-POSIX ctime_r()
[cairo/haiku.git] / perf / Makefile.am
blob319d82ea614e04c07a8ea7f4ac25becbbc7f62bf
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
4 # problem.
5 INCLUDES =                                      \
6         -D_GNU_SOURCE                           \
7         -I$(srcdir)                             \
8         -I$(top_srcdir)/boilerplate             \
9         -I$(top_srcdir)/src                     \
10         -I$(top_builddir)/src                   \
11         $(CAIRO_CFLAGS)
13 EXTRA_PROGRAMS = cairo-perf cairo-perf-diff-files
14 EXTRA_DIST = cairo-perf-diff
16 cairo_perf_SOURCES =            \
17         cairo-perf.c            \
18         cairo-perf.h            \
19         cairo-perf-cover.c      \
20         cairo-stats.c           \
21         cairo-stats.h           \
22         box-outline.c           \
23         fill.c                  \
24         long-lines.c            \
25         mosaic.c                \
26         mosaic.h                \
27         paint.c                 \
28         paint-with-alpha.c      \
29         pattern_create_radial.c \
30         rectangles.c            \
31         stroke.c                \
32         subimage_copy.c         \
33         tessellate.c            \
34         unaligned-clip.c        \
35         text.c                  \
36         world-map.c             \
37         world-map.h             \
38         zrusin.c                \
39         zrusin-another.h        \
40         long-dashed-lines.c
42 if CAIRO_HAS_WIN32_SURFACE
43 cairo_perf_SOURCES += cairo-perf-win32.c
44 else
45 if CAIRO_HAS_OS2_SURFACE
46 cairo_perf_SOURCES += cairo-perf-os2.c
47 else
48 cairo_perf_SOURCES += cairo-perf-posix.c
49 endif
50 endif
52 cairo_perf_diff_files_SOURCES = \
53         cairo-perf-diff-files.c \
54         cairo-stats.c           \
55         cairo-stats.h
57 LDADD = $(top_builddir)/boilerplate/libcairoboilerplate.la \
58         $(top_builddir)/src/libcairo.la \
59         $(CAIROPERF_LIBS)
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)
85 html: index.html
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 = \
93         --tool=memcheck \
94         --suppressions=$(top_srcdir)/test/.valgrind-suppressions \
95         --leak-check=yes --show-reachable=yes
96 VALGRIND_CALLGRIND_FLAGS = \
97         --tool=callgrind
98 CLEANFILES = \
99         $(EXTRA_PROGRAMS) \
100         valgrind-log \
101         callgrind.out.* \
102         index.html
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)' \
109             | tee valgrind-log
111 perf-callgrind:
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