aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
blob: fdce3cf9fda82ff505111a8cd83ef5654e832293 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141

AUTOMAKE_OPTIONS = foreign 1.10 dist-bzip2

include $(top_srcdir)/Makefile.all.am 

TOOLS =		memcheck \
		cachegrind \
		callgrind \
		massif \
		lackey \
		none \
		helgrind \
		drd

EXP_TOOLS = 	exp-sgcheck \
		exp-bbv \
		exp-dhat

# Put docs last because building the HTML is slow and we want to get
# everything else working before we try it.
SUBDIRS = \
	include \
	VEX \
	coregrind \
	. \
	$(TOOLS) \
	$(EXP_TOOLS) \
	shared \
	tests \
	perf \
	gdbserver_tests \
	memcheck/tests/vbit-test \
	auxprogs \
	mpi \
	solaris \
	docs
DIST_SUBDIRS  = $(SUBDIRS)

SUPP_FILES = \
	glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
	glibc-2.6.supp glibc-2.7.supp glibc-2.X.supp.in \
	xfree-3.supp xfree-4.supp \
	glibc-2.34567-NPTL-helgrind.supp \
	glibc-2.2-LinuxThreads-helgrind.supp \
	glibc-2.X-drd.supp \
	exp-sgcheck.supp \
	darwin9.supp darwin9-drd.supp \
	darwin10.supp darwin10-drd.supp \
	darwin11.supp darwin12.supp darwin13.supp darwin14.supp darwin15.supp \
	darwin16.supp \
	bionic.supp \
	solaris11.supp solaris12.supp
DEFAULT_SUPP_FILES = @DEFAULT_SUPP@

# We include all the base .supp files in the distribution, but not
# default.supp, as it is built from the base .supp files at compile-time.
dist_noinst_DATA = $(SUPP_FILES)

vglibdir = $(pkglibdir)
vglib_DATA = default.supp

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = valgrind.pc

BUILT_SOURCES  = default.supp include/vgversion.h valgrind.pc
CLEANFILES     = default.supp

default.supp: $(DEFAULT_SUPP_FILES)
	echo "# This is a generated file, composed of the following suppression rules:" > default.supp
	echo "# " $(DEFAULT_SUPP_FILES) >> default.supp
	cat $^ >> default.supp

## Preprend @PERL@ because tests/vg_regtest isn't executable
## Ensure make exits with error if PERL fails or post_regtest_checks fails.
regtest: check
	$(top_srcdir)/gdbserver_tests/make_local_links $(GDB)
	if @PERL@ tests/vg_regtest gdbserver_tests $(TOOLS) $(EXP_TOOLS) ; then \
	   tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \
	else \
	   tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS); \
	   false; \
	fi
post-regtest-checks:
	tests/post_regtest_checks $(abs_top_srcdir) gdbserver_tests $(TOOLS) $(EXP_TOOLS)
nonexp-regtest: check
	@PERL@ tests/vg_regtest $(TOOLS)
exp-regtest: check
	@PERL@ tests/vg_regtest gdbserver_tests $(EXP_TOOLS)
# Nb: gdbserver_tests are put in exp-regtest rather than nonexp-regtest
# because they are tested with various valgrind tools, so might be using
# an experimental tool.

## Preprend @PERL@ because tests/vg_perf isn't executable
perf: check
	@PERL@ perf/vg_perf perf

# Nb: no need to include any Makefile.am files here, or files included from
# them, as automake includes them automatically.  Also not COPYING, README
# or NEWS.
# We include valgrind.spec as well as valgrind.spec.in to save packagers
# from having to run configure (bug 188560).
EXTRA_DIST = \
	COPYING.DOCS \
	README_DEVELOPERS \
	README_PACKAGERS \
	README_MISSING_SYSCALL_OR_IOCTL \
	README.s390 \
	README.android \
	README.android_emulator \
	README.mips \
	README.aarch64 \
	README.solaris \
	NEWS.old \
	valgrind.pc.in \
	valgrind.spec.in \
	valgrind.spec \
	autogen.sh

dist-hook: include/vgversion.h
	cp -p include/vgversion.h $(distdir)/include/vgversion_dist.h

dist_noinst_SCRIPTS = \
	vg-in-place

all-local: default.supp include/vgversion.h
	mkdir -p $(inplacedir)
	rm -f $(inplacedir)/default.supp
	ln -s ../default.supp $(inplacedir)

clean-local:
	rm -rf $(inplacedir) include/vgversion.h

# Need config.h in the installed tree, since some files depend on it
pkginclude_HEADERS = config.h

# vgversion.h defines accurate versions to report with -v --version
include/vgversion.h:
	$(top_srcdir)/auxprogs/make_or_upd_vgversion_h $(top_srcdir)

.PHONY: include/vgversion.h