Tizen 2.0 Release
[framework/graphics/cairo.git] / perf / Makefile.am
1 include $(top_srcdir)/build/Makefile.am.common
2
3 include $(top_srcdir)/perf/Makefile.sources
4
5 AM_CPPFLAGS =                                   \
6         -I$(srcdir)                             \
7         -I$(top_srcdir)/boilerplate             \
8         -I$(top_srcdir)/src                     \
9         -I$(top_srcdir)/util/cairo-missing      \
10         -I$(top_srcdir)/util/cairo-script       \
11         -I$(top_builddir)/src                   \
12         $(CAIRO_CFLAGS)
13
14 AM_LDFLAGS = $(CAIRO_LDFLAGS)
15
16 SUBDIRS = micro
17
18 noinst_PROGRAMS = \
19         cairo-analyse-trace \
20         cairo-perf-trace \
21         cairo-perf-micro \
22         $(NULL)
23
24 EXTRA_PROGRAMS += \
25         cairo-analyse-trace \
26         cairo-perf-micro \
27         cairo-perf-trace \
28         cairo-perf-diff-files \
29         cairo-perf-print \
30         cairo-perf-chart \
31         cairo-perf-compare-backends \
32         cairo-perf-graph-files \
33         $(NULL)
34 EXTRA_DIST += cairo-perf-diff COPYING
35 EXTRA_LTLIBRARIES += libcairoperf.la
36
37 LDADD = libcairoperf.la \
38         $(top_builddir)/boilerplate/libcairoboilerplate.la \
39         $(top_builddir)/src/libcairo.la
40
41 cairo_perf_micro_SOURCES = $(cairo_perf_micro_sources)
42 cairo_perf_micro_LDADD = \
43         $(top_builddir)/perf/micro/libcairo-perf-micro.la \
44         $(LDADD)
45 cairo_perf_micro_DEPENDENCIES = \
46         $(top_builddir)/perf/micro/libcairo-perf-micro.la \
47         $(LDADD)
48
49 libcairoperf_la_SOURCES = \
50         $(libcairoperf_sources) \
51         $(libcairoperf_external_sources) \
52         $(libcairoperf_headers) \
53         $(NULL)
54
55 cairo_analyse_trace_SOURCES = \
56         $(cairo_analyse_trace_sources)  \
57         $(cairo_analyse_trace_external_sources)
58 cairo_analyse_trace_LDADD =             \
59         $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
60         $(top_builddir)/util/cairo-missing/libcairo-missing.la \
61         $(LDADD)
62 cairo_analyse_trace_DEPENDENCIES = \
63         $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
64         $(top_builddir)/util/cairo-missing/libcairo-missing.la \
65         $(LDADD)
66
67 cairo_perf_trace_SOURCES = \
68         $(cairo_perf_trace_sources)     \
69         $(cairo_perf_trace_external_sources)
70 cairo_perf_trace_LDADD =                \
71         $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
72         $(top_builddir)/util/cairo-missing/libcairo-missing.la \
73         $(LDADD)
74 cairo_perf_trace_DEPENDENCIES = \
75         $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
76         $(top_builddir)/util/cairo-missing/libcairo-missing.la \
77         $(LDADD)
78
79 cairo_perf_diff_files_SOURCES = $(cairo_perf_diff_files_sources)
80 cairo_perf_print_SOURCES = $(cairo_perf_print_sources)
81 cairo_perf_chart_SOURCES = $(cairo_perf_chart_sources)
82 cairo_perf_compare_backends_SOURCES = $(cairo_perf_compare_backends_sources)
83
84 cairo_perf_graph_files_SOURCES = \
85         $(cairo_perf_graph_files_sources)       \
86         $(cairo_perf_graph_files_headers)
87 cairo_perf_graph_files_CFLAGS = @gtk_CFLAGS@
88 cairo_perf_graph_files_LDADD = @gtk_LIBS@ $(LDADD)
89
90 # Install rules to rebuild the libraries and add explicit dependencies
91 $(top_builddir)/perf/micro/libcairo-perf-micro.la:
92         cd $(top_builddir)/perf/micro && $(MAKE) $(AM_MAKEFLAGS) libcairo-perf-micro.la
93
94 $(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
95         cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
96
97 $(top_builddir)/src/libcairo.la:
98         cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
99
100 $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la: $(top_builddir)/src/libcairo.la
101         cd $(top_builddir)/util/cairo-script && $(MAKE) $(AM_MAKEFLAGS) libcairo-script-interpreter.la
102
103
104 # Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
105 # one can limit tested targets both through CAIRO_TEST_TARGET env var
106 # and TARGETS make var on the command line.  Same for the rest.
107 TARGETS = $(CAIRO_TEST_TARGET)
108 TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE)
109 ITERS = $(CAIRO_PERF_ITERATIONS)
110
111 CAIRO_PERF_ENVIRONMENT = CAIRO_PERF_ITERATIONS="$(ITERS)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)"
112
113 perf: cairo-perf-micro$(EXEEXT) cairo-perf-trace$(EXEEXT)
114         -$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-micro$(EXEEXT)
115         -$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-trace$(EXEEXT)
116
117 html-local: index.html
118
119 perf-tag.html : cairo-perf-micro${EXEEXT}
120         $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ `git describe --abbrev=0` HEAD
121 perf-commit.html : cairo-perf-micro${EXEEXT}
122         $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ HEAD
123
124 # Summarise changes in index.html, with details in links
125 index.html: perf-tag.html perf-commit.html
126         echo "<html><head><title>Performance Changes</title></head><body>Against <a href=\"perf-tag.html\">"`git describe --abbrev=0`"</a><br><a href=\"perf-commit.html\">Latest commit</a></body>" > $@
127
128 EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
129 VALGRIND_MEMCHECK_FLAGS = \
130         --tool=memcheck \
131         --suppressions=$(top_srcdir)/test/.valgrind-suppressions \
132         --leak-check=yes --show-reachable=yes
133 VALGRIND_CALLGRIND_FLAGS = \
134         --tool=callgrind
135 CLEANFILES += \
136         valgrind-log \
137         callgrind.out.* \
138         index.html
139
140 perf-valgrind:
141         $(MAKE) $(AM_MAKEFLAGS) perf \
142             $(top_builddir)/libtool --mode=execute \
143             valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \
144             | tee valgrind-log
145
146 perf-callgrind:
147         $(MAKE) $(AM_MAKEFLAGS) perf \
148             $(top_builddir)/libtool --mode=execute \
149             valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)'
150
151 .PHONY: perf perf-valgrind perf-callgrind
152
153 EXTRA_DIST += Makefile.win32