blob: 6220f79c137fce11c90c6e72956e6e0d8905e289 [file] [log] [blame]
# Be very careful when renaming any files, targets, whatever, in this
# Makefile. Various parts of the system rely on these names having
# particular forms.
include $(top_srcdir)/Makefile.all.am
#----------------------------------------------------------------------------
# Basics, flags
#----------------------------------------------------------------------------
AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \
-I$(top_srcdir)/coregrind \
-DVG_LIBDIR="\"$(pkglibdir)"\" \
-DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\""
if VGCONF_HAVE_PLATFORM_SEC
AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \
-I$(top_srcdir)/coregrind \
-DVG_LIBDIR="\"$(pkglibdir)"\" \
-DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\""
endif
EXTRA_DIST = \
m_debuginfo/UNUSED_STABS.txt \
m_debuginfo/README.txt \
m_gdbserver/README_DEVELOPERS
#----------------------------------------------------------------------------
# The launcher. Built for the primary target only.
#----------------------------------------------------------------------------
bin_PROGRAMS = \
valgrind \
vgdb
if VGCONF_OS_IS_LINUX
valgrind_SOURCES = \
launcher-linux.c \
m_debuglog.c
endif
if VGCONF_OS_IS_DARWIN
valgrind_SOURCES = \
launcher-darwin.c \
m_debuglog.c
endif
valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI)
valgrind_CFLAGS = $(AM_CFLAGS_PRI)
valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI)
valgrind_LDFLAGS = $(AM_CFLAGS_PRI)
if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress
endif
vgdb_SOURCES = vgdb.c
vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI)
vgdb_CFLAGS = $(AM_CFLAGS_PRI)
vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI)
vgdb_LDFLAGS = $(AM_CFLAGS_PRI)
if !VGCONF_PLATVARIANT_IS_ANDROID
vgdb_LDADD = -lpthread
endif
if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
vgdb_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress
endif
#----------------------------------------------------------------------------
# Darwin Mach stuff
#----------------------------------------------------------------------------
# Mach RPC interface definitions
# Here are some more .defs files that are not used, but could be in the
# future:
# clock.defs \
# clock_priv.defs \
# clock_reply.defs \
# exc.defs \
# host_priv.defs \
# host_security.defs \
# ledger.defs \
# lock_set.defs \
# mach_host.defs \
# mach_port.defs \
# notify.defs \
# processor.defs \
# processor_set.defs \
#
mach_user_srcs =
mach_server_srcs =
mach_hdrs =
mach_defs =
if VGCONF_OS_IS_DARWIN
mach_user_srcs += \
m_mach/mach_vmUser.c \
m_mach/taskUser.c \
m_mach/thread_actUser.c \
m_mach/vm_mapUser.c
mach_server_srcs += \
m_mach/mach_vmServer.c \
m_mach/taskServer.c \
m_mach/thread_actServer.c \
m_mach/vm_mapServer.c
mach_hdrs += \
m_mach/mach_vm.h \
m_mach/task.h \
m_mach/thread_act.h \
m_mach/vm_map.h
mach_defs += \
/usr/include/mach/mach_vm.defs \
/usr/include/mach/task.defs \
/usr/include/mach/thread_act.defs \
/usr/include/mach/vm_map.defs
endif
# Be careful w.r.t. parallel builds. See section 27.9 of the automake info
# page, "Handling Tools that Produce many Outputs".
$(abs_builddir)/m_mach:
mkdir -p $@
$(mach_user_srcs): $(mach_defs) $(abs_builddir)/m_mach
(cd m_mach && mig $(mach_defs))
$(mach_hdrs): $(mach_defs) $(mach_user_srcs) $(abs_builddir)/m_mach
(cd m_mach && mig $(mach_defs))
#----------------------------------------------------------------------------
# Headers
#----------------------------------------------------------------------------
noinst_HEADERS = \
pub_core_aspacehl.h \
pub_core_aspacemgr.h \
pub_core_basics.h \
pub_core_basics_asm.h \
pub_core_clientstate.h \
pub_core_clreq.h \
pub_core_commandline.h \
pub_core_coredump.h \
pub_core_cpuid.h \
pub_core_debuginfo.h \
pub_core_debugger.h \
pub_core_debuglog.h \
pub_core_demangle.h \
pub_core_dispatch.h \
pub_core_dispatch_asm.h \
pub_core_errormgr.h \
pub_core_execontext.h \
pub_core_gdbserver.h \
pub_core_hashtable.h \
pub_core_initimg.h \
pub_core_libcbase.h \
pub_core_libcassert.h \
pub_core_libcfile.h \
pub_core_libcprint.h \
pub_core_libcproc.h \
pub_core_libcsetjmp.h \
pub_core_libcsignal.h \
pub_core_mach.h \
pub_core_machine.h \
pub_core_mallocfree.h \
pub_core_options.h \
pub_core_oset.h \
pub_core_redir.h \
pub_core_replacemalloc.h\
pub_core_scheduler.h \
pub_core_seqmatch.h \
pub_core_sigframe.h \
pub_core_signals.h \
pub_core_sparsewa.h \
pub_core_stacks.h \
pub_core_stacktrace.h \
pub_core_syscall.h \
pub_core_syswrap.h \
pub_core_threadstate.h \
pub_core_tooliface.h \
pub_core_trampoline.h \
pub_core_translate.h \
pub_core_transtab.h \
pub_core_transtab_asm.h \
pub_core_ume.h \
pub_core_vki.h \
pub_core_vkiscnums.h \
pub_core_vkiscnums_asm.h\
pub_core_wordfm.h \
pub_core_xarray.h \
m_aspacemgr/priv_aspacemgr.h \
m_debuginfo/priv_misc.h \
m_debuginfo/priv_storage.h \
m_debuginfo/priv_tytypes.h \
m_debuginfo/priv_readstabs.h \
m_debuginfo/priv_readpdb.h \
m_debuginfo/priv_d3basics.h \
m_debuginfo/priv_readdwarf.h \
m_debuginfo/priv_readdwarf3.h \
m_debuginfo/priv_readelf.h \
m_debuginfo/priv_readmacho.h \
m_demangle/ansidecl.h \
m_demangle/cp-demangle.h \
m_demangle/dyn-string.h \
m_demangle/demangle.h \
m_demangle/safe-ctype.h \
m_demangle/vg_libciface.h \
m_gdbserver/regcache.h \
m_gdbserver/regdef.h \
m_gdbserver/server.h \
m_gdbserver/target.h \
m_gdbserver/valgrind_low.h \
m_gdbserver/gdb/signals.h \
m_initimg/priv_initimg_pathscan.h \
m_initimg/simple_huffman.c \
m_scheduler/priv_sema.h \
m_syswrap/priv_types_n_macros.h \
m_syswrap/priv_syswrap-generic.h \
m_syswrap/priv_syswrap-linux.h \
m_syswrap/priv_syswrap-linux-variants.h \
m_syswrap/priv_syswrap-darwin.h \
m_syswrap/priv_syswrap-main.h \
m_ume/priv_ume.h
#----------------------------------------------------------------------------
# libcoregrind-<platform>.a
#----------------------------------------------------------------------------
BUILT_SOURCES = $(mach_user_srcs)
CLEANFILES = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs)
pkglib_LIBRARIES = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
if VGCONF_HAVE_PLATFORM_SEC
pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
endif
COREGRIND_SOURCES_COMMON = \
m_commandline.c \
m_clientstate.c \
m_cpuid.S \
m_debugger.c \
m_debuglog.c \
m_errormgr.c \
m_execontext.c \
m_hashtable.c \
m_libcbase.c \
m_libcassert.c \
m_libcfile.c \
m_libcprint.c \
m_libcproc.c \
m_libcsetjmp.c \
m_libcsignal.c \
m_machine.c \
m_main.c \
m_mallocfree.c \
m_options.c \
m_oset.c \
m_redir.c \
m_seqmatch.c \
m_signals.c \
m_sparsewa.c \
m_stacks.c \
m_stacktrace.c \
m_syscall.c \
m_threadstate.c \
m_tooliface.c \
m_trampoline.S \
m_translate.c \
m_transtab.c \
m_vki.c \
m_vkiscnums.c \
m_wordfm.c \
m_xarray.c \
m_aspacehl.c \
m_aspacemgr/aspacemgr-common.c \
m_aspacemgr/aspacemgr-linux.c \
m_coredump/coredump-elf.c \
m_coredump/coredump-macho.c \
m_debuginfo/misc.c \
m_debuginfo/d3basics.c \
m_debuginfo/debuginfo.c \
m_debuginfo/readdwarf.c \
m_debuginfo/readdwarf3.c \
m_debuginfo/readelf.c \
m_debuginfo/readmacho.c \
m_debuginfo/readpdb.c \
m_debuginfo/readstabs.c \
m_debuginfo/storage.c \
m_debuginfo/tytypes.c \
m_demangle/cp-demangle.c \
m_demangle/cplus-dem.c \
m_demangle/demangle.c \
m_demangle/dyn-string.c \
m_demangle/safe-ctype.c \
m_dispatch/dispatch-x86-linux.S \
m_dispatch/dispatch-amd64-linux.S \
m_dispatch/dispatch-ppc32-linux.S \
m_dispatch/dispatch-ppc64-linux.S \
m_dispatch/dispatch-arm-linux.S \
m_dispatch/dispatch-s390x-linux.S \
m_dispatch/dispatch-x86-darwin.S \
m_dispatch/dispatch-amd64-darwin.S \
m_gdbserver/m_gdbserver.c \
m_gdbserver/inferiors.c \
m_gdbserver/m_gdbserver.c \
m_gdbserver/regcache.c \
m_gdbserver/remote-utils.c \
m_gdbserver/server.c \
m_gdbserver/signals.c \
m_gdbserver/target.c \
m_gdbserver/utils.c \
m_gdbserver/valgrind-low.c \
m_gdbserver/valgrind-low-x86.c \
m_gdbserver/valgrind-low-amd64.c \
m_gdbserver/valgrind-low-arm.c \
m_gdbserver/valgrind-low-ppc32.c \
m_gdbserver/valgrind-low-ppc64.c \
m_gdbserver/valgrind-low-s390x.c \
m_gdbserver/version.c \
m_initimg/initimg-linux.c \
m_initimg/initimg-darwin.c \
m_initimg/initimg-pathscan.c \
m_mach/mach_basics.c \
m_mach/mach_msg.c \
m_mach/mach_traps-x86-darwin.S \
m_mach/mach_traps-amd64-darwin.S \
m_replacemalloc/replacemalloc_core.c \
m_scheduler/scheduler.c \
m_scheduler/sema.c \
m_sigframe/sigframe-x86-linux.c \
m_sigframe/sigframe-amd64-linux.c \
m_sigframe/sigframe-ppc32-linux.c \
m_sigframe/sigframe-ppc64-linux.c \
m_sigframe/sigframe-arm-linux.c \
m_sigframe/sigframe-s390x-linux.c \
m_sigframe/sigframe-x86-darwin.c \
m_sigframe/sigframe-amd64-darwin.c \
m_syswrap/syscall-x86-linux.S \
m_syswrap/syscall-amd64-linux.S \
m_syswrap/syscall-ppc32-linux.S \
m_syswrap/syscall-ppc64-linux.S \
m_syswrap/syscall-arm-linux.S \
m_syswrap/syscall-s390x-linux.S \
m_syswrap/syscall-x86-darwin.S \
m_syswrap/syscall-amd64-darwin.S \
m_syswrap/syswrap-main.c \
m_syswrap/syswrap-generic.c \
m_syswrap/syswrap-linux.c \
m_syswrap/syswrap-linux-variants.c \
m_syswrap/syswrap-darwin.c \
m_syswrap/syswrap-x86-linux.c \
m_syswrap/syswrap-amd64-linux.c \
m_syswrap/syswrap-ppc32-linux.c \
m_syswrap/syswrap-ppc64-linux.c \
m_syswrap/syswrap-arm-linux.c \
m_syswrap/syswrap-s390x-linux.c \
m_syswrap/syswrap-x86-darwin.c \
m_syswrap/syswrap-amd64-darwin.c \
m_ume/elf.c \
m_ume/macho.c \
m_ume/main.c \
m_ume/script.c
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
$(COREGRIND_SOURCES_COMMON)
nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
$(BUILT_SOURCES)
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \
$(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
if VGCONF_HAVE_PLATFORM_SEC
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
$(COREGRIND_SOURCES_COMMON)
nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
$(BUILT_SOURCES)
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \
$(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
endif
#----------------------------------------------------------------------------
# libreplacemalloc_toolpreload-<platform>.a
#----------------------------------------------------------------------------
pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
if VGCONF_HAVE_PLATFORM_SEC
pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
endif
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
m_replacemalloc/vg_replace_malloc.c
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC)
if VGCONF_HAVE_PLATFORM_SEC
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
m_replacemalloc/vg_replace_malloc.c
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC)
endif
#----------------------------------------------------------------------------
# vgpreload_core-<platform>.a
#----------------------------------------------------------------------------
noinst_PROGRAMS = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
if VGCONF_HAVE_PLATFORM_SEC
noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
endif
if VGCONF_OS_IS_DARWIN
noinst_DSYMS = $(noinst_PROGRAMS)
endif
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC)
vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
if VGCONF_HAVE_PLATFORM_SEC
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC)
vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
endif
#----------------------------------------------------------------------------
# gdbserver xml target descriptions
#----------------------------------------------------------------------------
GDBSERVER_XML_FILES = \
m_gdbserver/32bit-core-valgrind-s1.xml \
m_gdbserver/32bit-core-valgrind-s2.xml \
m_gdbserver/32bit-core.xml \
m_gdbserver/32bit-linux-valgrind-s1.xml \
m_gdbserver/32bit-linux-valgrind-s2.xml \
m_gdbserver/32bit-linux.xml \
m_gdbserver/32bit-sse-valgrind-s1.xml \
m_gdbserver/32bit-sse-valgrind-s2.xml \
m_gdbserver/32bit-sse.xml \
m_gdbserver/64bit-core-valgrind-s1.xml \
m_gdbserver/64bit-core-valgrind-s2.xml \
m_gdbserver/64bit-core.xml \
m_gdbserver/64bit-linux-valgrind-s1.xml \
m_gdbserver/64bit-linux-valgrind-s2.xml \
m_gdbserver/64bit-linux.xml \
m_gdbserver/64bit-sse-valgrind-s1.xml \
m_gdbserver/64bit-sse-valgrind-s2.xml \
m_gdbserver/64bit-sse.xml \
m_gdbserver/amd64-coresse-valgrind.xml \
m_gdbserver/amd64-linux-valgrind.xml \
m_gdbserver/arm-core-valgrind-s1.xml \
m_gdbserver/arm-core-valgrind-s2.xml \
m_gdbserver/arm-core.xml \
m_gdbserver/arm-vfpv3-valgrind-s1.xml \
m_gdbserver/arm-vfpv3-valgrind-s2.xml \
m_gdbserver/arm-vfpv3.xml \
m_gdbserver/arm-with-vfpv3-valgrind.xml \
m_gdbserver/arm-with-vfpv3.xml \
m_gdbserver/i386-coresse-valgrind.xml \
m_gdbserver/i386-linux-valgrind.xml \
m_gdbserver/power64-core-valgrind-s1.xml \
m_gdbserver/power64-core-valgrind-s2.xml \
m_gdbserver/power64-core.xml \
m_gdbserver/power64-linux-valgrind-s1.xml \
m_gdbserver/power64-linux-valgrind-s2.xml \
m_gdbserver/power64-linux.xml \
m_gdbserver/power-altivec-valgrind-s1.xml \
m_gdbserver/power-altivec-valgrind-s2.xml \
m_gdbserver/power-altivec.xml \
m_gdbserver/power-core.xml \
m_gdbserver/power-fpu-valgrind-s1.xml \
m_gdbserver/power-fpu-valgrind-s2.xml \
m_gdbserver/power-fpu.xml \
m_gdbserver/power-linux-valgrind-s1.xml \
m_gdbserver/power-linux-valgrind-s2.xml \
m_gdbserver/power-linux.xml \
m_gdbserver/powerpc-altivec32l-valgrind.xml \
m_gdbserver/powerpc-altivec32l.xml \
m_gdbserver/powerpc-altivec64l-valgrind.xml \
m_gdbserver/powerpc-altivec64l.xml
# so as to make sure these get copied into the install tree
pkglib_DATA = $(GDBSERVER_XML_FILES)
# so as to make sure these get copied into the tarball
EXTRA_DIST += $(GDBSERVER_XML_FILES)
#----------------------------------------------------------------------------
# General stuff
#----------------------------------------------------------------------------
all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS
mkdir -p $(inplacedir); \
for f in $(pkglib_DATA); do \
rm -f $(inplacedir)/$$f; \
ln -f -s ../$(subdir)/$$f $(inplacedir); \
done
clean-local: clean-noinst_DSYMS
install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS
#----------------------------------------------------------------------------
# Darwin linker kludges
#----------------------------------------------------------------------------
if VGCONF_OS_IS_DARWIN
BUILT_SOURCES += fixup_macho_loadcmds
fixup_macho_loadcmds: fixup_macho_loadcmds.c
$(CC) -g -Wall -o fixup_macho_loadcmds fixup_macho_loadcmds.c
CLEANFILES += fixup_macho_loadcmds
endif
EXTRA_DIST += fixup_macho_loadcmds.c