blob: c6b2e0bece93fae91393698097c39a22c588359e [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
nethercotef94fe2f2004-09-10 14:23:59 +00004SUBDIRS = $(VG_ARCH) $(VG_PLATFORM) demangle . docs
sewardjde4a1d02002-03-22 01:27:54 +00005
nethercote4388a402004-09-01 23:20:49 +00006AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" -I$(srcdir)/demangle \
nethercote2b72e942004-10-25 14:05:56 +00007 -DKICKSTART_BASE=@KICKSTART_BASE@ \
nethercotea131bb82004-09-06 15:34:37 +00008 -DVG_PLATFORM="\"$(VG_PLATFORM)"\"
fitzhardinge98abfc72003-12-16 02:05:15 +00009AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fno-omit-frame-pointer \
10 @PREFERRED_STACK_BOUNDARY@ -g -DELFSZ=32
gobry3b777892002-04-04 09:18:39 +000011
12default.supp: $(SUPP_FILES)
sewardjde4a1d02002-03-22 01:27:54 +000013
fitzhardinge98abfc72003-12-16 02:05:15 +000014bin_PROGRAMS = \
15 valgrind
16
njn25e49d8e72002-09-23 09:36:25 +000017val_PROGRAMS = \
nethercote5f2ad772004-09-01 11:33:35 +000018 stage2 \
fitzhardinge98abfc72003-12-16 02:05:15 +000019 libpthread.so \
20 vg_inject.so
njn25cac76cb2002-09-23 11:21:57 +000021
nethercote799fb802004-10-20 18:40:40 +000022noinst_LIBRARIES = lib_replace_malloc.a
23
24noinst_HEADERS = \
25 core.h \
26 core_asm.h \
27 ume.h \
28 vg_symtab2.h \
29 vg_symtypes.h \
30 vg_toolint.h \
31 vg_unsafe.h
32
fitzhardinge98abfc72003-12-16 02:05:15 +000033EXTRA_DIST = \
34 vg_libpthread.vs valgrind.vs \
35 gen_toolint.pl toolfuncs.def \
nethercote187fdb72004-09-11 23:07:22 +000036 gen_intercepts.pl vg_replace_malloc.c.base vg_intercept.c.base
sewardjfed4dd02002-04-14 14:32:54 +000037
fitzhardinge98abfc72003-12-16 02:05:15 +000038BUILT_SOURCES = vg_toolint.c vg_toolint.h
rjwalshe4e779d2004-04-16 23:02:29 +000039CLEANFILES = vg_toolint.c vg_toolint.h vg_replace_malloc.c vg_intercept.c
sewardjde4a1d02002-03-22 01:27:54 +000040
fitzhardinge98abfc72003-12-16 02:05:15 +000041valgrind_SOURCES = \
fitzhardinge98abfc72003-12-16 02:05:15 +000042 ume.c \
nethercote107e1c02004-10-13 17:55:31 +000043 \
44 stage1.c \
45 ${VG_ARCH}/jmp_with_stack.c
fitzhardinge98abfc72003-12-16 02:05:15 +000046valgrind_DEPENDENCIES =
nethercotec25c4492004-10-18 11:52:17 +000047valgrind_LDFLAGS=-static -g
fitzhardinge98abfc72003-12-16 02:05:15 +000048valgrind_LDADD=
sewardjde4a1d02002-03-22 01:27:54 +000049
fitzhardinge98abfc72003-12-16 02:05:15 +000050stage2_SOURCES = \
fitzhardinge98abfc72003-12-16 02:05:15 +000051 ume.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000052 \
sewardj2e93c502002-04-12 11:12:52 +000053 vg_scheduler.c \
njn25e49d8e72002-09-23 09:36:25 +000054 vg_default.c \
sewardjde4a1d02002-03-22 01:27:54 +000055 vg_demangle.c \
sewardjde4a1d02002-03-22 01:27:54 +000056 vg_errcontext.c \
57 vg_execontext.c \
58 vg_from_ucode.c \
njn3e884182003-04-15 13:03:23 +000059 vg_hashtable.c \
njn25e49d8e72002-09-23 09:36:25 +000060 vg_instrument.c \
sewardjde4a1d02002-03-22 01:27:54 +000061 vg_main.c \
62 vg_malloc2.c \
63 vg_memory.c \
64 vg_messages.c \
65 vg_mylibc.c \
njn810086f2002-11-14 12:42:47 +000066 vg_needs.c \
sewardjde4a1d02002-03-22 01:27:54 +000067 vg_procselfmaps.c \
jsgf855d93d2003-10-13 22:26:55 +000068 vg_proxylwp.c \
njn25e49d8e72002-09-23 09:36:25 +000069 vg_dummy_profile.c \
sewardjde4a1d02002-03-22 01:27:54 +000070 vg_signals.c \
sewardjde4a1d02002-03-22 01:27:54 +000071 vg_symtab2.c \
njn7ea9adc2003-10-18 13:58:44 +000072 vg_dwarf.c \
73 vg_stabs.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000074 vg_skiplist.c \
jsgfcb1d1c02003-10-14 21:55:10 +000075 vg_symtypes.c \
njn25e49d8e72002-09-23 09:36:25 +000076 vg_syscalls.c \
sewardjde4a1d02002-03-22 01:27:54 +000077 vg_to_ucode.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000078 vg_toolint.c \
sewardjde4a1d02002-03-22 01:27:54 +000079 vg_translate.c \
nethercote986202f2004-10-19 13:48:06 +000080 vg_transtab.c
nethercotef4eb6eb2004-10-14 09:48:34 +000081stage2_DEPENDENCIES = $(srcdir)/valgrind.vs ${VG_ARCH}/stage2.lds
nethercotec25c4492004-10-18 11:52:17 +000082stage2_LDFLAGS=-Wl,--export-dynamic -g \
nethercote2b72e942004-10-25 14:05:56 +000083 -Wl,-defsym,kickstart_base=@KICKSTART_BASE@ \
nethercotef4eb6eb2004-10-14 09:48:34 +000084 -Wl,-T,${VG_ARCH}/stage2.lds \
jsgf855d93d2003-10-13 22:26:55 +000085 -Wl,-version-script $(srcdir)/valgrind.vs
fitzhardinge98abfc72003-12-16 02:05:15 +000086stage2_LDADD= \
sewardjde4a1d02002-03-22 01:27:54 +000087 demangle/cp-demangle.o \
88 demangle/cplus-dem.o \
89 demangle/dyn-string.o \
fitzhardinge98abfc72003-12-16 02:05:15 +000090 demangle/safe-ctype.o \
nethercotec06e2132004-09-03 13:45:29 +000091 ${VG_ARCH}/libarch.a \
nethercote5fd90852004-10-13 13:05:20 +000092 ${VG_PLATFORM}/libplatform.a \
fitzhardinge98abfc72003-12-16 02:05:15 +000093 -ldl
sewardjde4a1d02002-03-22 01:27:54 +000094
thughes1d4d6792004-06-29 09:45:37 +000095vg_intercept.c: $(srcdir)/gen_intercepts.pl $(srcdir)/vg_intercept.c.base
rjwalshe4e779d2004-04-16 23:02:29 +000096 rm -f $@
thughes1d4d6792004-06-29 09:45:37 +000097 $(PERL) $(srcdir)/gen_intercepts.pl < $(srcdir)/vg_intercept.c.base > $@
rjwalshe4e779d2004-04-16 23:02:29 +000098
thughes1d4d6792004-06-29 09:45:37 +000099vg_replace_malloc.c: $(srcdir)/gen_intercepts.pl $(srcdir)/vg_replace_malloc.c.base
rjwalshe4e779d2004-04-16 23:02:29 +0000100 rm -f $@
thughes1d4d6792004-06-29 09:45:37 +0000101 $(PERL) $(srcdir)/gen_intercepts.pl < $(srcdir)/vg_replace_malloc.c.base > $@
rjwalshe4e779d2004-04-16 23:02:29 +0000102
thughes1d4d6792004-06-29 09:45:37 +0000103vg_toolint.c: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile
fitzhardinge98abfc72003-12-16 02:05:15 +0000104 rm -f $@
105 $(PERL) $(srcdir)/gen_toolint.pl callwrap < $(srcdir)/toolfuncs.def > $@ || rm -f $@
106 $(PERL) $(srcdir)/gen_toolint.pl missingfuncs < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
107 $(PERL) $(srcdir)/gen_toolint.pl initfunc < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
108 $(PERL) $(srcdir)/gen_toolint.pl initdlsym < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
109 $(PERL) $(srcdir)/gen_toolint.pl structdef < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
njn3e884182003-04-15 13:03:23 +0000110
thughes1d4d6792004-06-29 09:45:37 +0000111vg_toolint.h: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile
fitzhardinge98abfc72003-12-16 02:05:15 +0000112 rm -f $@
113 $(PERL) $(srcdir)/gen_toolint.pl proto < $(srcdir)/toolfuncs.def > $@ || rm -f $@
114 $(PERL) $(srcdir)/gen_toolint.pl struct < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
115
116libpthread_so_SOURCES = \
117 vg_libpthread.c \
118 vg_libpthread_unimp.c \
nethercotebdf9a772004-10-19 14:23:46 +0000119 ${VG_ARCH}/libpthread.c \
120 ${VG_PLATFORM}/syscall.S
fitzhardinge98abfc72003-12-16 02:05:15 +0000121libpthread_so_DEPENDENCIES = $(srcdir)/vg_libpthread.vs
122libpthread_so_LDFLAGS = -Werror -fno-omit-frame-pointer -UVG_LIBDIR \
nethercote799fb802004-10-20 18:40:40 +0000123 -shared -ldl \
fitzhardinge98abfc72003-12-16 02:05:15 +0000124 -Wl,-version-script $(srcdir)/vg_libpthread.vs \
125 -Wl,-z,nodelete \
126 -Wl,--soname=libpthread.so.0
127
128vg_inject_so_SOURCES = \
129 vg_intercept.c
nethercote799fb802004-10-20 18:40:40 +0000130vg_inject_so_CFLAGS = $(AM_CFLAGS) -fpic
fitzhardinge98abfc72003-12-16 02:05:15 +0000131vg_inject_so_LDFLAGS = \
132 -shared \
133 -Wl,--soname,vg_inject.so \
134 -Wl,-z,initfirst
njn3e884182003-04-15 13:03:23 +0000135
nethercote799fb802004-10-20 18:40:40 +0000136lib_replace_malloc_a_SOURCES = vg_replace_malloc.c
137lib_replace_malloc_a_CFLAGS = $(AM_CFLAGS) -fpic
sewardjde4a1d02002-03-22 01:27:54 +0000138
fitzhardinge98abfc72003-12-16 02:05:15 +0000139MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS) $(inplacedir)/libpthread.so.0
sewardj71889e62002-05-10 03:03:57 +0000140
daywalker781132b2003-06-01 20:05:08 +0000141all-local:
fitzhardinge98abfc72003-12-16 02:05:15 +0000142 mkdir -p $(inplacedir)
143 for i in $(val_PROGRAMS); do \
144 to=$(inplacedir)/$$(echo $$i | sed 's,libpthread.so,libpthread.so.0,'); \
145 rm -f $$$to; \
nethercote03b19482004-08-25 11:57:21 +0000146 ln -sf ../$(subdir)/$$i $$to; \
fitzhardinge98abfc72003-12-16 02:05:15 +0000147 done
148