1
2AUTOMAKE_OPTIONS = foreign 1.10 dist-bzip2
3
4include $(top_srcdir)/Makefile.all.am
5
6TOOLS =		memcheck \
7		cachegrind \
8		callgrind \
9		massif \
10		lackey \
11		none \
12		helgrind \
13		drd
14
15EXP_TOOLS = 	exp-sgcheck \
16		exp-bbv \
17		exp-dhat
18
19# Put docs last because building the HTML is slow and we want to get
20# everything else working before we try it.
21SUBDIRS = \
22	include \
23	VEX \
24	coregrind \
25	. \
26	$(TOOLS) \
27	$(EXP_TOOLS) \
28	shared \
29	tests \
30	perf \
31	gdbserver_tests \
32	memcheck/tests/vbit-test \
33	auxprogs \
34	mpi \
35	solaris \
36	docs
37DIST_SUBDIRS  = $(SUBDIRS)
38
39SUPP_FILES = \
40	glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
41	glibc-2.6.supp glibc-2.7.supp glibc-2.X.supp.in \
42	xfree-3.supp xfree-4.supp \
43	glibc-2.34567-NPTL-helgrind.supp \
44	glibc-2.2-LinuxThreads-helgrind.supp \
45	glibc-2.X-drd.supp \
46	exp-sgcheck.supp \
47	darwin9.supp darwin9-drd.supp \
48	dragonfly.supp \
49	darwin10.supp darwin10-drd.supp \
50	darwin11.supp darwin12.supp darwin13.supp darwin14.supp darwin15.supp \
51	darwin16.supp darwin17.supp \
52	bionic.supp \
53	solaris11.supp solaris12.supp
54DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
55
56# We include all the base .supp files in the distribution, but not
57# default.supp, as it is built from the base .supp files at compile-time.
58dist_noinst_DATA = $(SUPP_FILES)
59
60vglibdir = $(pkglibdir)
61vglib_DATA = default.supp
62
63pkgconfigdir = $(prefix)/libdata/pkgconfig
64pkgconfig_DATA = valgrind.pc
65
66BUILT_SOURCES  = default.supp include/vgversion.h valgrind.pc
67CLEANFILES     = default.supp
68
69default.supp: $(DEFAULT_SUPP_FILES)
70	echo "# This is a generated file, composed of the following suppression rules:" > default.supp
71	echo "# " $(DEFAULT_SUPP_FILES) >> default.supp
72	cat $^ >> default.supp
73
74## Preprend @PERL@ because tests/vg_regtest isn't executable
75## Ensure make exits with error if PERL fails or post_regtest_checks fails.
76regtest: check
77	$(top_srcdir)/gdbserver_tests/make_local_links $(GDB)
78	if @PERL@ tests/vg_regtest gdbserver_tests $(TOOLS) $(EXP_TOOLS) ; then \
79	   tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \
80	else \
81	   tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \
82	   false; \
83	fi
84post-regtest-checks:
85	tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS)
86nonexp-regtest: check
87	@PERL@ tests/vg_regtest $(TOOLS)
88exp-regtest: check
89	@PERL@ tests/vg_regtest gdbserver_tests $(EXP_TOOLS)
90# Nb: gdbserver_tests are put in exp-regtest rather than nonexp-regtest
91# because they are tested with various valgrind tools, so might be using
92# an experimental tool.
93
94## Preprend @PERL@ because tests/vg_perf isn't executable
95perf: check
96	@PERL@ perf/vg_perf perf
97
98# Nb: no need to include any Makefile.am files here, or files included from
99# them, as automake includes them automatically.  Also not COPYING, README
100# or NEWS.
101# We include valgrind.spec as well as valgrind.spec.in to save packagers
102# from having to run configure (bug 188560).
103EXTRA_DIST = \
104	COPYING.DOCS \
105	README_DEVELOPERS \
106	README_DRAGONFLY \
107	README_PACKAGERS \
108	README_MISSING_SYSCALL_OR_IOCTL \
109	README.s390 \
110	README.android \
111	README.android_emulator \
112	README.mips \
113	README.aarch64 \
114	README.solaris \
115	NEWS.old \
116	valgrind.pc.in \
117	valgrind.spec.in \
118	valgrind.spec \
119	autogen.sh
120
121dist-hook: include/vgversion.h
122	cp -p include/vgversion.h $(distdir)/include/vgversion_dist.h
123
124dist_noinst_SCRIPTS = \
125	vg-in-place
126
127all-local: default.supp include/vgversion.h
128	mkdir -p $(inplacedir)
129	rm -f $(inplacedir)/default.supp
130	ln -s ../default.supp $(inplacedir)
131
132clean-local:
133	rm -rf $(inplacedir) include/vgversion.h
134
135# Need config.h in the installed tree, since some files depend on it
136pkginclude_HEADERS = config.h
137
138# vgversion.h defines accurate versions to report with -v --version
139include/vgversion.h:
140	$(top_srcdir)/auxprogs/make_or_upd_vgversion_h $(top_srcdir)
141
142.PHONY: include/vgversion.h
143
144