| include $(top_srcdir)/Makefile.tool.am |
| |
| EXTRA_DIST = docs/mc-manual.xml docs/mc-tech-docs.xml |
| |
| #---------------------------------------------------------------------------- |
| # Headers |
| #---------------------------------------------------------------------------- |
| |
| pkginclude_HEADERS = \ |
| memcheck.h |
| |
| noinst_HEADERS = \ |
| mc_include.h |
| |
| #---------------------------------------------------------------------------- |
| # memcheck-<platform> |
| #---------------------------------------------------------------------------- |
| |
| noinst_PROGRAMS = memcheck-@VGCONF_ARCH_PRI@-@VGCONF_OS@ |
| if VGCONF_HAVE_PLATFORM_SEC |
| noinst_PROGRAMS += memcheck-@VGCONF_ARCH_SEC@-@VGCONF_OS@ |
| endif |
| |
| MEMCHECK_SOURCES_COMMON = \ |
| mc_leakcheck.c \ |
| mc_malloc_wrappers.c \ |
| mc_main.c \ |
| mc_translate.c \ |
| mc_machine.c \ |
| mc_errors.c |
| |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = \ |
| $(MEMCHECK_SOURCES_COMMON) |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -O2 |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES = \ |
| $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = \ |
| $(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@) |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = \ |
| $(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) |
| memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \ |
| $(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \ |
| @VALT_LOAD_ADDRESS_PRI@ \ |
| $(LINK) \ |
| $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \ |
| $(memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS) |
| |
| if VGCONF_HAVE_PLATFORM_SEC |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES = \ |
| $(MEMCHECK_SOURCES_COMMON) |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -O2 |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES = \ |
| $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@) |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDADD = \ |
| $(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@) |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS = \ |
| $(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) |
| memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \ |
| $(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \ |
| @VALT_LOAD_ADDRESS_SEC@ \ |
| $(LINK) \ |
| $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \ |
| $(memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS) |
| endif |
| |
| # mc_main.c contains the helper function for memcheck that get called |
| # all the time. To maximise performance compile with -fomit-frame-pointer |
| # Primary beneficiary is x86. |
| mc_main.o: CFLAGS += -fomit-frame-pointer |
| |
| #---------------------------------------------------------------------------- |
| # vgpreload_memcheck-<platform>.so |
| #---------------------------------------------------------------------------- |
| |
| noinst_PROGRAMS += vgpreload_memcheck-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so |
| if VGCONF_HAVE_PLATFORM_SEC |
| noinst_PROGRAMS += vgpreload_memcheck-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so |
| endif |
| |
| if VGCONF_OS_IS_DARWIN |
| noinst_DSYMS = $(noinst_PROGRAMS) |
| endif |
| |
| VGPRELOAD_MEMCHECK_SOURCES_COMMON = mc_replace_strmem.c |
| |
| vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = \ |
| $(VGPRELOAD_MEMCHECK_SOURCES_COMMON) |
| vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) |
| vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) -O2 |
| vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES = \ |
| $(LIBREPLACEMALLOC_@VGCONF_PLATFORM_PRI_CAPS@) |
| vgpreload_memcheck_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \ |
| $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \ |
| $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) |
| |
| if VGCONF_HAVE_PLATFORM_SEC |
| vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = \ |
| $(VGPRELOAD_MEMCHECK_SOURCES_COMMON) |
| vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) |
| vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) -O2 |
| vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES = \ |
| $(LIBREPLACEMALLOC_@VGCONF_PLATFORM_SEC_CAPS@) |
| vgpreload_memcheck_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \ |
| $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) \ |
| $(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) |
| endif |
| |
| # mc_replace_strmem.c runs on the simulated CPU, and it often appears |
| # in stack traces shown to the user. It is built with |
| # -fno-omit-frame-pointer so as to guarantee robust backtraces on x86, |
| # on which CFI based unwinding is not the "normal" case and so is |
| # sometimes fragile. |
| mc_replace_strmem.o: CFLAGS += -fno-omit-frame-pointer |
| |