1 include $(top_srcdir)/Makefile.tool.am
3 EXTRA_DIST = docs/mc-manual.xml docs/mc-tech-docs.xml
5 #----------------------------------------------------------------------------
7 #----------------------------------------------------------------------------
15 #----------------------------------------------------------------------------
17 #----------------------------------------------------------------------------
19 noinst_PROGRAMS = memcheck-@VGCONF_ARCH_PRI@-@VGCONF_OS@
20 if VGCONF_HAVE_PLATFORM_SEC
21 noinst_PROGRAMS += memcheck-@VGCONF_ARCH_SEC@-@VGCONF_OS@
24 MEMCHECK_SOURCES_COMMON = \
26 mc_malloc_wrappers.c \
32 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \
33 $(MEMCHECK_SOURCES_COMMON)
34 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \
35 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
36 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \
37 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -O2
38 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES = \
39 $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@)
40 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = \
41 $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
42 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \
43 $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
44 memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
45 $(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
46 @VALT_LOAD_ADDRESS_PRI@ \
48 $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
49 $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
51 if VGCONF_HAVE_PLATFORM_SEC
52 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \
53 $(MEMCHECK_SOURCES_COMMON)
54 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \
55 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
56 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \
57 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -O2
58 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES = \
59 $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@)
60 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDADD = \
61 $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
62 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \
63 $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
64 memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
65 $(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
66 @VALT_LOAD_ADDRESS_SEC@ \
68 $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
69 $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
72 # mc_main.c contains the helper function for memcheck that get called
73 # all the time. To maximise performance compile with -fomit-frame-pointer
74 # Primary beneficiary is x86.
75 mc_main.o: CFLAGS += -fomit-frame-pointer
77 #----------------------------------------------------------------------------
78 # vgpreload_memcheck-<platform>.so
79 #----------------------------------------------------------------------------
81 noinst_PROGRAMS += vgpreload_memcheck-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
82 if VGCONF_HAVE_PLATFORM_SEC
83 noinst_PROGRAMS += vgpreload_memcheck-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
86 if VGCONF_OS_IS_DARWIN
87 noinst_DSYMS = $(noinst_PROGRAMS)
90 VGPRELOAD_MEMCHECK_SOURCES_COMMON = mc_replace_strmem.c
92 vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = \
93 $(VGPRELOAD_MEMCHECK_SOURCES_COMMON)
94 vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
95 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
96 vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
97 $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@) -O2
98 vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES = \
99 $(LIBREPLACEMALLOC_@VGCONF_PLATFORM_PRI_CAPS@)
100 vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
101 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
102 $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
104 if VGCONF_HAVE_PLATFORM_SEC
105 vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \
106 $(VGPRELOAD_MEMCHECK_SOURCES_COMMON)
107 vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
108 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
109 vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
110 $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@) -O2
111 vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES = \
112 $(LIBREPLACEMALLOC_@VGCONF_PLATFORM_SEC_CAPS@)
113 vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
114 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) \
115 $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
118 # mc_replace_strmem.c runs on the simulated CPU, and it often appears
119 # in stack traces shown to the user. It is built with
120 # -fno-omit-frame-pointer so as to guarantee robust backtraces on x86,
121 # on which CFI based unwinding is not the "normal" case and so is
123 mc_replace_strmem.o: CFLAGS += -fno-omit-frame-pointer