blob: 157eea9da8786883b6b678e38f7c866fa8705037 [file] [log] [blame]
njn25e49d8e72002-09-23 09:36:25 +00001
fitzhardingee3c6b6f2004-03-12 10:51:39 +00002SUBDIRS = x86 demangle . docs
sewardjde4a1d02002-03-22 01:27:54 +00003
fitzhardinge98abfc72003-12-16 02:05:15 +00004add_includes = -I$(srcdir)/demangle -I$(top_srcdir)/include -I$(srcdir)/x86
daywalkera0d3ab62002-04-21 13:32:28 +00005
sewardjde4a1d02002-03-22 01:27:54 +00006valdir = $(libdir)/valgrind
fitzhardingee3c6b6f2004-03-12 10:51:39 +00007inplacedir = $(top_builddir)/.in_place
sewardjde4a1d02002-03-22 01:27:54 +00008
fitzhardinge98abfc72003-12-16 02:05:15 +00009AM_CPPFLAGS = $(add_includes) -DVG_LIBDIR="\"$(valdir)"\"
10AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fno-omit-frame-pointer \
11 @PREFERRED_STACK_BOUNDARY@ -g -DELFSZ=32
12AM_CCASFLAGS = $(add_includes) -I..
gobry3b777892002-04-04 09:18:39 +000013
14default.supp: $(SUPP_FILES)
sewardjde4a1d02002-03-22 01:27:54 +000015
fitzhardinge98abfc72003-12-16 02:05:15 +000016bin_PROGRAMS = \
17 valgrind
18
njn25e49d8e72002-09-23 09:36:25 +000019val_PROGRAMS = \
fitzhardinge98abfc72003-12-16 02:05:15 +000020 valgrind stage2 \
21 libpthread.so \
22 vg_inject.so
njn25cac76cb2002-09-23 11:21:57 +000023
fitzhardinge98abfc72003-12-16 02:05:15 +000024EXTRA_DIST = \
25 vg_libpthread.vs valgrind.vs \
26 gen_toolint.pl toolfuncs.def \
27 vg_replace_malloc.c
sewardjfed4dd02002-04-14 14:32:54 +000028
fitzhardinge98abfc72003-12-16 02:05:15 +000029BUILT_SOURCES = vg_toolint.c vg_toolint.h
30CLEANFILES = vg_toolint.c vg_toolint.h
sewardjde4a1d02002-03-22 01:27:54 +000031
fitzhardinge98abfc72003-12-16 02:05:15 +000032valgrind_SOURCES = \
33 stage1.c \
34 ume.c \
35 x86/ume_entry.S \
36 x86/ume_go.c
37valgrind_DEPENDENCIES =
38valgrind_LDFLAGS=-static -g -Wl,-e,_ume_entry
39valgrind_LDADD=
sewardjde4a1d02002-03-22 01:27:54 +000040
fitzhardinge98abfc72003-12-16 02:05:15 +000041stage2_SOURCES = \
fitzhardinge98abfc72003-12-16 02:05:15 +000042 ume.c \
43 x86/ume_entry.S \
44 x86/ume_go.c \
45 \
sewardj2e93c502002-04-12 11:12:52 +000046 vg_scheduler.c \
njn25e49d8e72002-09-23 09:36:25 +000047 vg_default.c \
sewardjde4a1d02002-03-22 01:27:54 +000048 vg_demangle.c \
49 vg_dispatch.S \
50 vg_errcontext.c \
51 vg_execontext.c \
52 vg_from_ucode.c \
fitzhardingeb50068f2004-02-24 23:42:55 +000053 vg_glibc.c \
njn3e884182003-04-15 13:03:23 +000054 vg_hashtable.c \
sewardjde4a1d02002-03-22 01:27:54 +000055 vg_helpers.S \
njn25e49d8e72002-09-23 09:36:25 +000056 vg_instrument.c \
sewardjde4a1d02002-03-22 01:27:54 +000057 vg_main.c \
58 vg_malloc2.c \
59 vg_memory.c \
60 vg_messages.c \
61 vg_mylibc.c \
njn810086f2002-11-14 12:42:47 +000062 vg_needs.c \
sewardjde4a1d02002-03-22 01:27:54 +000063 vg_procselfmaps.c \
jsgf855d93d2003-10-13 22:26:55 +000064 vg_proxylwp.c \
njn25e49d8e72002-09-23 09:36:25 +000065 vg_dummy_profile.c \
sewardjde4a1d02002-03-22 01:27:54 +000066 vg_signals.c \
sewardjde4a1d02002-03-22 01:27:54 +000067 vg_symtab2.c \
njn7ea9adc2003-10-18 13:58:44 +000068 vg_dwarf.c \
69 vg_stabs.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000070 vg_skiplist.c \
jsgfcb1d1c02003-10-14 21:55:10 +000071 vg_symtypes.c \
njn25e49d8e72002-09-23 09:36:25 +000072 vg_syscalls.c \
sewardjde4a1d02002-03-22 01:27:54 +000073 vg_syscall.S \
74 vg_to_ucode.c \
fitzhardinge98abfc72003-12-16 02:05:15 +000075 vg_toolint.c \
sewardjde4a1d02002-03-22 01:27:54 +000076 vg_translate.c \
sewardj92a59562002-09-30 00:53:10 +000077 vg_transtab.c \
78 vg_ldt.c
fitzhardingee3c6b6f2004-03-12 10:51:39 +000079stage2_DEPENDENCIES = $(srcdir)/valgrind.vs x86/stage2.lds
fitzhardinge98abfc72003-12-16 02:05:15 +000080stage2_LDFLAGS=-Wl,--export-dynamic -Wl,-e,_ume_entry -g \
81 -Wl,-defsym,kickstart_base=0xb8000000 \
fitzhardingee3c6b6f2004-03-12 10:51:39 +000082 -Wl,-T,x86/stage2.lds \
jsgf855d93d2003-10-13 22:26:55 +000083 -Wl,-version-script $(srcdir)/valgrind.vs
fitzhardinge98abfc72003-12-16 02:05:15 +000084stage2_LDADD= \
sewardjde4a1d02002-03-22 01:27:54 +000085 demangle/cp-demangle.o \
86 demangle/cplus-dem.o \
87 demangle/dyn-string.o \
fitzhardinge98abfc72003-12-16 02:05:15 +000088 demangle/safe-ctype.o \
89 -ldl
sewardjde4a1d02002-03-22 01:27:54 +000090
fitzhardinge98abfc72003-12-16 02:05:15 +000091vg_toolint.c: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def $(srcdir)/Makefile
92 rm -f $@
93 $(PERL) $(srcdir)/gen_toolint.pl callwrap < $(srcdir)/toolfuncs.def > $@ || rm -f $@
94 $(PERL) $(srcdir)/gen_toolint.pl missingfuncs < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
95 $(PERL) $(srcdir)/gen_toolint.pl initfunc < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
96 $(PERL) $(srcdir)/gen_toolint.pl initdlsym < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
97 $(PERL) $(srcdir)/gen_toolint.pl structdef < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
njn3e884182003-04-15 13:03:23 +000098
fitzhardinge98abfc72003-12-16 02:05:15 +000099vg_toolint.h: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def $(srcdir)/Makefile
100 rm -f $@
101 $(PERL) $(srcdir)/gen_toolint.pl proto < $(srcdir)/toolfuncs.def > $@ || rm -f $@
102 $(PERL) $(srcdir)/gen_toolint.pl struct < $(srcdir)/toolfuncs.def >> $@ || rm -f $@
103
104libpthread_so_SOURCES = \
105 vg_libpthread.c \
106 vg_libpthread_unimp.c \
107 vg_syscall.S
108libpthread_so_DEPENDENCIES = $(srcdir)/vg_libpthread.vs
109libpthread_so_LDFLAGS = -Werror -fno-omit-frame-pointer -UVG_LIBDIR \
fitzhardinge47735af2004-01-21 01:27:27 +0000110 -shared -fpic -ldl \
fitzhardinge98abfc72003-12-16 02:05:15 +0000111 -Wl,-version-script $(srcdir)/vg_libpthread.vs \
112 -Wl,-z,nodelete \
113 -Wl,--soname=libpthread.so.0
114
115vg_inject_so_SOURCES = \
116 vg_intercept.c
117
118# Not really true, but we need to build vg_replace_malloc.o somehow
119vg_inject_so_DEPENDENCIES = \
120 vg_replace_malloc.o
121
122vg_inject_so_LDFLAGS = \
123 -shared \
124 -Wl,--soname,vg_inject.so \
125 -Wl,-z,initfirst
njn3e884182003-04-15 13:03:23 +0000126
sewardjde4a1d02002-03-22 01:27:54 +0000127noinst_HEADERS = \
fitzhardinge98abfc72003-12-16 02:05:15 +0000128 ume.h \
129 ume_arch.h \
sewardjde4a1d02002-03-22 01:27:54 +0000130 vg_include.h \
sewardjde4a1d02002-03-22 01:27:54 +0000131 vg_constants.h \
jsgfcb1d1c02003-10-14 21:55:10 +0000132 vg_symtab2.h \
mueller69801fb2003-11-01 01:59:23 +0000133 vg_unistd.h \
jsgfcb1d1c02003-10-14 21:55:10 +0000134 vg_symtypes.h \
fitzhardinge98abfc72003-12-16 02:05:15 +0000135 vg_toolint.h \
njn3e884182003-04-15 13:03:23 +0000136 vg_unsafe.h
sewardjde4a1d02002-03-22 01:27:54 +0000137
fitzhardinge98abfc72003-12-16 02:05:15 +0000138MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS) $(inplacedir)/libpthread.so.0
sewardj71889e62002-05-10 03:03:57 +0000139
fitzhardinge98abfc72003-12-16 02:05:15 +0000140vg_replace_malloc.o vg_intercept.o vg_libpthread.o: CFLAGS += -fno-omit-frame-pointer -g -fpic
njn01fe69e2002-11-11 18:54:42 +0000141
daywalker781132b2003-06-01 20:05:08 +0000142all-local:
fitzhardinge98abfc72003-12-16 02:05:15 +0000143 mkdir -p $(inplacedir)
144 for i in $(val_PROGRAMS); do \
145 to=$(inplacedir)/$$(echo $$i | sed 's,libpthread.so,libpthread.so.0,'); \
146 rm -f $$$to; \
fitzhardingee3c6b6f2004-03-12 10:51:39 +0000147 ln -sf $(top_builddir)/$(subdir)/$$i $$to; \
fitzhardinge98abfc72003-12-16 02:05:15 +0000148 done
149