blob: 808a3524adef0494fcc9a4412060a275a1147f63 [file] [log] [blame]
nethercote4388a402004-09-01 23:20:49 +00001include $(top_srcdir)/Makefile.all.am
2include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am
njn25e49d8e72002-09-23 09:36:25 +00003
njna5f1bcd2004-11-27 16:47:42 +00004## When building, we are only interested in the current arch/OS/platform.
5## But when doing 'make dist', we are interested in every arch/OS/platform.
6## That's what DIST_SUBDIRS specifies.
sewardj985fabb2005-04-24 14:18:14 +00007SUBDIRS = \
8 $(VG_ARCH) $(VG_OS) $(VG_PLATFORM) \
sewardj55f9d1a2005-04-25 11:11:44 +00009 m_sigframe m_aspacemgr demangle .
sewardj985fabb2005-04-24 14:18:14 +000010
11DIST_SUBDIRS = \
12 $(VG_ARCH_ALL) $(VG_OS_ALL) $(VG_PLATFORM_ALL) \
sewardj55f9d1a2005-04-25 11:11:44 +000013 m_sigframe m_aspacemgr demangle .
sewardjde4a1d02002-03-22 01:27:54 +000014
nethercote4388a402004-09-01 23:20:49 +000015AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" -I$(srcdir)/demangle \
sewardjbc7df202005-05-02 10:25:34 +000016 -DKICKSTART_BASE=@KICKSTART_BASE@
17
sewardjb5f6f512005-03-10 23:59:00 +000018AM_CFLAGS = $(WERROR) -Wmissing-prototypes -Winline -Wall -Wshadow -O -g @ARCH_CORE_AM_CFLAGS@
sewardj2a99cf62004-11-24 10:44:19 +000019AM_CFLAGS += -fno-omit-frame-pointer
gobry3b777892002-04-04 09:18:39 +000020
21default.supp: $(SUPP_FILES)
sewardjde4a1d02002-03-22 01:27:54 +000022
fitzhardinge98abfc72003-12-16 02:05:15 +000023bin_PROGRAMS = \
24 valgrind
25
njn25e49d8e72002-09-23 09:36:25 +000026val_PROGRAMS = \
nethercote5f2ad772004-09-01 11:33:35 +000027 stage2 \
fitzhardinge98abfc72003-12-16 02:05:15 +000028 vg_inject.so
njn25cac76cb2002-09-23 11:21:57 +000029
nethercote799fb802004-10-20 18:40:40 +000030noinst_LIBRARIES = lib_replace_malloc.a
31
32noinst_HEADERS = \
33 core.h \
34 core_asm.h \
njnd2b17112005-04-19 04:10:25 +000035 pub_core_errormgr.h \
njnd01fef72005-03-25 23:35:48 +000036 pub_core_execontext.h \
37 pub_core_stacktrace.h \
sewardj1cf558c2005-04-25 01:36:56 +000038 pub_core_sigframe.h \
39 pub_core_debuglog.h \
sewardj55f9d1a2005-04-25 11:11:44 +000040 pub_core_aspacemgr.h \
nethercote799fb802004-10-20 18:40:40 +000041 ume.h \
42 vg_symtab2.h \
43 vg_symtypes.h \
nethercote73b526f2004-10-31 18:48:21 +000044 vg_toolint.h
nethercote799fb802004-10-20 18:40:40 +000045
fitzhardinge98abfc72003-12-16 02:05:15 +000046EXTRA_DIST = \
sewardjb5f6f512005-03-10 23:59:00 +000047 valgrind.vs \
sewardjcc9549a2005-04-24 12:19:13 +000048 gen_toolint.pl toolfuncs.def README_MODULES.txt
sewardjfed4dd02002-04-14 14:32:54 +000049
fitzhardinge98abfc72003-12-16 02:05:15 +000050BUILT_SOURCES = vg_toolint.c vg_toolint.h
sewardj9ee81f52005-04-02 17:38:59 +000051CLEANFILES = vg_toolint.c vg_toolint.h
sewardjde4a1d02002-03-22 01:27:54 +000052
fitzhardinge98abfc72003-12-16 02:05:15 +000053valgrind_SOURCES = \
fitzhardinge98abfc72003-12-16 02:05:15 +000054 ume.c \
nethercote107e1c02004-10-13 17:55:31 +000055 \
56 stage1.c \
sewardj1cf558c2005-04-25 01:36:56 +000057 m_debuglog.c \
nethercote107e1c02004-10-13 17:55:31 +000058 ${VG_ARCH}/jmp_with_stack.c
fitzhardinge98abfc72003-12-16 02:05:15 +000059valgrind_DEPENDENCIES =
nethercotec25c4492004-10-18 11:52:17 +000060valgrind_LDFLAGS=-static -g
fitzhardinge98abfc72003-12-16 02:05:15 +000061valgrind_LDADD=
sewardjde4a1d02002-03-22 01:27:54 +000062
fitzhardinge98abfc72003-12-16 02:05:15 +000063stage2_SOURCES = \
sewardj267100d2005-04-24 12:33:12 +000064 m_errormgr.c \
65 m_execontext.c \
66 m_stacktrace.c \
sewardj1cf558c2005-04-25 01:36:56 +000067 m_debuglog.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000068 ume.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000069 \
sewardj2e93c502002-04-12 11:12:52 +000070 vg_scheduler.c \
njn25e49d8e72002-09-23 09:36:25 +000071 vg_default.c \
sewardjde4a1d02002-03-22 01:27:54 +000072 vg_demangle.c \
njn3e884182003-04-15 13:03:23 +000073 vg_hashtable.c \
sewardj9ee81f52005-04-02 17:38:59 +000074 vg_replace_malloc.c \
sewardjde4a1d02002-03-22 01:27:54 +000075 vg_main.c \
76 vg_malloc2.c \
sewardjde4a1d02002-03-22 01:27:54 +000077 vg_messages.c \
78 vg_mylibc.c \
njn810086f2002-11-14 12:42:47 +000079 vg_needs.c \
njn25e49d8e72002-09-23 09:36:25 +000080 vg_dummy_profile.c \
sewardjde4a1d02002-03-22 01:27:54 +000081 vg_signals.c \
sewardjde4a1d02002-03-22 01:27:54 +000082 vg_symtab2.c \
sewardjb5f6f512005-03-10 23:59:00 +000083 vg_threadmodel.c \
84 vg_pthreadmodel.c \
85 vg_redir.c \
njn7ea9adc2003-10-18 13:58:44 +000086 vg_dwarf.c \
87 vg_stabs.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000088 vg_skiplist.c \
jsgfcb1d1c02003-10-14 21:55:10 +000089 vg_symtypes.c \
njn25e49d8e72002-09-23 09:36:25 +000090 vg_syscalls.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000091 vg_toolint.c \
sewardjde4a1d02002-03-22 01:27:54 +000092 vg_translate.c \
nethercote986202f2004-10-19 13:48:06 +000093 vg_transtab.c
nethercoteb77dee62004-11-16 17:13:24 +000094
nethercote8ff888f2004-11-17 17:11:45 +000095## libplatform.a must be before libarch.a and libos.a, it seems.
nethercoteb77dee62004-11-16 17:13:24 +000096stage2_extra= \
97 demangle/libdemangle.a \
sewardj985fabb2005-04-24 14:18:14 +000098 m_sigframe/libsigframe.a \
sewardj55f9d1a2005-04-25 11:11:44 +000099 m_aspacemgr/libaspacemgr.a \
nethercote8ff888f2004-11-17 17:11:45 +0000100 ${VG_PLATFORM}/libplatform.a \
nethercoteb77dee62004-11-16 17:13:24 +0000101 ${VG_ARCH}/libarch.a \
sewardj8b635a42004-11-22 19:01:47 +0000102 ${VG_OS}/libos.a \
103 @VEX_DIR@/libvex.a
nethercoteb77dee62004-11-16 17:13:24 +0000104
nethercotec69863e2004-10-25 19:13:41 +0000105## Test repeated in both arms of the if-then-else because older versions of
106## automake don't seem to like having += within an if-then-else.
nethercotef8fbaaa2004-10-25 17:59:43 +0000107if USE_PIE
108stage2_CFLAGS = $(AM_CFLAGS) -fpie
nethercoteb77dee62004-11-16 17:13:24 +0000109stage2_DEPENDENCIES = \
110 $(srcdir)/valgrind.vs \
111 $(stage2_extra)
nethercotec69863e2004-10-25 19:13:41 +0000112stage2_LDFLAGS = -Wl,--export-dynamic -g \
113 -Wl,-version-script $(srcdir)/valgrind.vs \
114 -pie
nethercote7f390022004-10-25 17:18:24 +0000115else
116stage2_CFLAGS = $(AM_CFLAGS)
nethercoteb77dee62004-11-16 17:13:24 +0000117stage2_DEPENDENCIES = \
118 $(srcdir)/valgrind.vs ${VG_ARCH}/stage2.lds \
119 $(stage2_extra)
nethercotec69863e2004-10-25 19:13:41 +0000120stage2_LDFLAGS = -Wl,--export-dynamic -g \
121 -Wl,-version-script $(srcdir)/valgrind.vs \
122 -Wl,-defsym,kickstart_base=@KICKSTART_BASE@ -Wl,-T,${VG_ARCH}/stage2.lds
nethercote7f390022004-10-25 17:18:24 +0000123endif
nethercotec69863e2004-10-25 19:13:41 +0000124
nethercoteb77dee62004-11-16 17:13:24 +0000125stage2_LDADD= $(stage2_extra) -ldl
126
sewardjde4a1d02002-03-22 01:27:54 +0000127
thughes1d4d6792004-06-29 09:45:37 +0000128vg_toolint.c: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile
fitzhardinge98abfc72003-12-16 02:05:15 +0000129 rm -f $@
130 $(PERL) $(srcdir)/gen_toolint.pl callwrap < $(srcdir)/toolfuncs.def > $@ || rm -f $@
131 $(PERL) $(srcdir)/gen_toolint.pl missingfuncs < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
132 $(PERL) $(srcdir)/gen_toolint.pl initfunc < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
fitzhardinge98abfc72003-12-16 02:05:15 +0000133 $(PERL) $(srcdir)/gen_toolint.pl structdef < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
njn3e884182003-04-15 13:03:23 +0000134
thughes1d4d6792004-06-29 09:45:37 +0000135vg_toolint.h: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile
fitzhardinge98abfc72003-12-16 02:05:15 +0000136 rm -f $@
137 $(PERL) $(srcdir)/gen_toolint.pl proto < $(srcdir)/toolfuncs.def > $@ || rm -f $@
138 $(PERL) $(srcdir)/gen_toolint.pl struct < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
139
sewardj1cf558c2005-04-25 01:36:56 +0000140
sewardjb5f6f512005-03-10 23:59:00 +0000141vg_inject_so_SOURCES = vg_intercept.c
nethercote799fb802004-10-20 18:40:40 +0000142vg_inject_so_CFLAGS = $(AM_CFLAGS) -fpic
sewardjb5f6f512005-03-10 23:59:00 +0000143vg_inject_so_LDADD = -ldl
fitzhardinge98abfc72003-12-16 02:05:15 +0000144vg_inject_so_LDFLAGS = \
145 -shared \
146 -Wl,--soname,vg_inject.so \
147 -Wl,-z,initfirst
njn3e884182003-04-15 13:03:23 +0000148
nethercote799fb802004-10-20 18:40:40 +0000149lib_replace_malloc_a_SOURCES = vg_replace_malloc.c
thughesdac76662004-10-26 15:55:46 +0000150lib_replace_malloc_a_CFLAGS = $(AM_CFLAGS) -fpic -fno-omit-frame-pointer
sewardjde4a1d02002-03-22 01:27:54 +0000151
sewardjb5f6f512005-03-10 23:59:00 +0000152MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS)
sewardj71889e62002-05-10 03:03:57 +0000153
daywalker781132b2003-06-01 20:05:08 +0000154all-local:
fitzhardinge98abfc72003-12-16 02:05:15 +0000155 mkdir -p $(inplacedir)
156 for i in $(val_PROGRAMS); do \
sewardjb5f6f512005-03-10 23:59:00 +0000157 to=$(inplacedir)/$$i; \
fitzhardinge98abfc72003-12-16 02:05:15 +0000158 rm -f $$$to; \
nethercote03b19482004-08-25 11:57:21 +0000159 ln -sf ../$(subdir)/$$i $$to; \
fitzhardinge98abfc72003-12-16 02:05:15 +0000160 done
161