nethercote | 4388a40 | 2004-09-01 23:20:49 +0000 | [diff] [blame] | 1 | include $(top_srcdir)/Makefile.all.am |
| 2 | include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 3 | |
nethercote | f94fe2f | 2004-09-10 14:23:59 +0000 | [diff] [blame] | 4 | SUBDIRS = $(VG_ARCH) $(VG_PLATFORM) demangle . docs |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 5 | |
nethercote | 4388a40 | 2004-09-01 23:20:49 +0000 | [diff] [blame] | 6 | AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" -I$(srcdir)/demangle \ |
nethercote | a131bb8 | 2004-09-06 15:34:37 +0000 | [diff] [blame] | 7 | -DKICKSTART_BASE=$(KICKSTART_BASE) \ |
| 8 | -DVG_PLATFORM="\"$(VG_PLATFORM)"\" |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 9 | AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fno-omit-frame-pointer \ |
| 10 | @PREFERRED_STACK_BOUNDARY@ -g -DELFSZ=32 |
| 11 | AM_CCASFLAGS = $(add_includes) -I.. |
gobry | 3b77789 | 2002-04-04 09:18:39 +0000 | [diff] [blame] | 12 | |
| 13 | default.supp: $(SUPP_FILES) |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 14 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 15 | bin_PROGRAMS = \ |
| 16 | valgrind |
| 17 | |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 18 | val_PROGRAMS = \ |
nethercote | 5f2ad77 | 2004-09-01 11:33:35 +0000 | [diff] [blame] | 19 | stage2 \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 20 | libpthread.so \ |
| 21 | vg_inject.so |
njn25 | cac76cb | 2002-09-23 11:21:57 +0000 | [diff] [blame] | 22 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 23 | EXTRA_DIST = \ |
| 24 | vg_libpthread.vs valgrind.vs \ |
| 25 | gen_toolint.pl toolfuncs.def \ |
nethercote | 187fdb7 | 2004-09-11 23:07:22 +0000 | [diff] [blame^] | 26 | gen_intercepts.pl vg_replace_malloc.c.base vg_intercept.c.base |
sewardj | fed4dd0 | 2002-04-14 14:32:54 +0000 | [diff] [blame] | 27 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 28 | BUILT_SOURCES = vg_toolint.c vg_toolint.h |
rjwalsh | e4e779d | 2004-04-16 23:02:29 +0000 | [diff] [blame] | 29 | CLEANFILES = vg_toolint.c vg_toolint.h vg_replace_malloc.c vg_intercept.c |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 30 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 31 | valgrind_SOURCES = \ |
| 32 | stage1.c \ |
| 33 | ume.c \ |
| 34 | x86/ume_entry.S \ |
| 35 | x86/ume_go.c |
| 36 | valgrind_DEPENDENCIES = |
| 37 | valgrind_LDFLAGS=-static -g -Wl,-e,_ume_entry |
| 38 | valgrind_LDADD= |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 39 | |
nethercote | b669ef7 | 2004-08-25 16:16:56 +0000 | [diff] [blame] | 40 | # Where stage2 will be put. |
| 41 | # Nb: Hard-wiring this sucks. A configure-time test would be better. A |
| 42 | # load-time test would be even better, but would require building stage2 in |
| 43 | # a position-independent way... |
| 44 | KICKSTART_BASE=0xb0000000 |
| 45 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 46 | stage2_SOURCES = \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 47 | ume.c \ |
| 48 | x86/ume_entry.S \ |
| 49 | x86/ume_go.c \ |
| 50 | \ |
sewardj | 2e93c50 | 2002-04-12 11:12:52 +0000 | [diff] [blame] | 51 | vg_scheduler.c \ |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 52 | vg_default.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 53 | vg_demangle.c \ |
| 54 | vg_dispatch.S \ |
| 55 | vg_errcontext.c \ |
| 56 | vg_execontext.c \ |
| 57 | vg_from_ucode.c \ |
njn | 3e88418 | 2003-04-15 13:03:23 +0000 | [diff] [blame] | 58 | vg_hashtable.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 59 | vg_helpers.S \ |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 60 | vg_instrument.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 61 | vg_main.c \ |
| 62 | vg_malloc2.c \ |
| 63 | vg_memory.c \ |
| 64 | vg_messages.c \ |
| 65 | vg_mylibc.c \ |
njn | 810086f | 2002-11-14 12:42:47 +0000 | [diff] [blame] | 66 | vg_needs.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 67 | vg_procselfmaps.c \ |
jsgf | 855d93d | 2003-10-13 22:26:55 +0000 | [diff] [blame] | 68 | vg_proxylwp.c \ |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 69 | vg_dummy_profile.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 70 | vg_signals.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 71 | vg_symtab2.c \ |
njn | 7ea9adc | 2003-10-18 13:58:44 +0000 | [diff] [blame] | 72 | vg_dwarf.c \ |
| 73 | vg_stabs.c \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 74 | vg_skiplist.c \ |
jsgf | cb1d1c0 | 2003-10-14 21:55:10 +0000 | [diff] [blame] | 75 | vg_symtypes.c \ |
njn25 | e49d8e7 | 2002-09-23 09:36:25 +0000 | [diff] [blame] | 76 | vg_syscalls.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 77 | vg_syscall.S \ |
| 78 | vg_to_ucode.c \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 79 | vg_toolint.c \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 80 | vg_translate.c \ |
sewardj | 92a5956 | 2002-09-30 00:53:10 +0000 | [diff] [blame] | 81 | vg_transtab.c \ |
thughes | 4ee6496 | 2004-06-16 20:51:45 +0000 | [diff] [blame] | 82 | vg_ldt.c \ |
| 83 | vg_cpuid.S |
fitzhardinge | e3c6b6f | 2004-03-12 10:51:39 +0000 | [diff] [blame] | 84 | stage2_DEPENDENCIES = $(srcdir)/valgrind.vs x86/stage2.lds |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 85 | stage2_LDFLAGS=-Wl,--export-dynamic -Wl,-e,_ume_entry -g \ |
nethercote | b669ef7 | 2004-08-25 16:16:56 +0000 | [diff] [blame] | 86 | -Wl,-defsym,kickstart_base=$(KICKSTART_BASE) \ |
fitzhardinge | e3c6b6f | 2004-03-12 10:51:39 +0000 | [diff] [blame] | 87 | -Wl,-T,x86/stage2.lds \ |
jsgf | 855d93d | 2003-10-13 22:26:55 +0000 | [diff] [blame] | 88 | -Wl,-version-script $(srcdir)/valgrind.vs |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 89 | stage2_LDADD= \ |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 90 | demangle/cp-demangle.o \ |
| 91 | demangle/cplus-dem.o \ |
| 92 | demangle/dyn-string.o \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 93 | demangle/safe-ctype.o \ |
nethercote | c06e213 | 2004-09-03 13:45:29 +0000 | [diff] [blame] | 94 | ${VG_ARCH}/libarch.a \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 95 | -ldl |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 96 | |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 97 | vg_intercept.c: $(srcdir)/gen_intercepts.pl $(srcdir)/vg_intercept.c.base |
rjwalsh | e4e779d | 2004-04-16 23:02:29 +0000 | [diff] [blame] | 98 | rm -f $@ |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 99 | $(PERL) $(srcdir)/gen_intercepts.pl < $(srcdir)/vg_intercept.c.base > $@ |
rjwalsh | e4e779d | 2004-04-16 23:02:29 +0000 | [diff] [blame] | 100 | |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 101 | vg_replace_malloc.c: $(srcdir)/gen_intercepts.pl $(srcdir)/vg_replace_malloc.c.base |
rjwalsh | e4e779d | 2004-04-16 23:02:29 +0000 | [diff] [blame] | 102 | rm -f $@ |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 103 | $(PERL) $(srcdir)/gen_intercepts.pl < $(srcdir)/vg_replace_malloc.c.base > $@ |
rjwalsh | e4e779d | 2004-04-16 23:02:29 +0000 | [diff] [blame] | 104 | |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 105 | vg_toolint.c: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 106 | rm -f $@ |
| 107 | $(PERL) $(srcdir)/gen_toolint.pl callwrap < $(srcdir)/toolfuncs.def > $@ || rm -f $@ |
| 108 | $(PERL) $(srcdir)/gen_toolint.pl missingfuncs < $(srcdir)/toolfuncs.def >> $@ || rm -f $@ |
| 109 | $(PERL) $(srcdir)/gen_toolint.pl initfunc < $(srcdir)/toolfuncs.def >> $@ || rm -f $@ |
| 110 | $(PERL) $(srcdir)/gen_toolint.pl initdlsym < $(srcdir)/toolfuncs.def >> $@ || rm -f $@ |
| 111 | $(PERL) $(srcdir)/gen_toolint.pl structdef < $(srcdir)/toolfuncs.def >> $@ || rm -f $@ |
njn | 3e88418 | 2003-04-15 13:03:23 +0000 | [diff] [blame] | 112 | |
thughes | 1d4d679 | 2004-06-29 09:45:37 +0000 | [diff] [blame] | 113 | vg_toolint.h: $(srcdir)/gen_toolint.pl $(srcdir)/toolfuncs.def ./Makefile |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 114 | rm -f $@ |
| 115 | $(PERL) $(srcdir)/gen_toolint.pl proto < $(srcdir)/toolfuncs.def > $@ || rm -f $@ |
| 116 | $(PERL) $(srcdir)/gen_toolint.pl struct < $(srcdir)/toolfuncs.def >> $@ || rm -f $@ |
| 117 | |
| 118 | libpthread_so_SOURCES = \ |
| 119 | vg_libpthread.c \ |
| 120 | vg_libpthread_unimp.c \ |
| 121 | vg_syscall.S |
| 122 | libpthread_so_DEPENDENCIES = $(srcdir)/vg_libpthread.vs |
| 123 | libpthread_so_LDFLAGS = -Werror -fno-omit-frame-pointer -UVG_LIBDIR \ |
fitzhardinge | 47735af | 2004-01-21 01:27:27 +0000 | [diff] [blame] | 124 | -shared -fpic -ldl \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 125 | -Wl,-version-script $(srcdir)/vg_libpthread.vs \ |
| 126 | -Wl,-z,nodelete \ |
| 127 | -Wl,--soname=libpthread.so.0 |
| 128 | |
| 129 | vg_inject_so_SOURCES = \ |
| 130 | vg_intercept.c |
| 131 | |
| 132 | # Not really true, but we need to build vg_replace_malloc.o somehow |
| 133 | vg_inject_so_DEPENDENCIES = \ |
| 134 | vg_replace_malloc.o |
| 135 | |
| 136 | vg_inject_so_LDFLAGS = \ |
| 137 | -shared \ |
| 138 | -Wl,--soname,vg_inject.so \ |
| 139 | -Wl,-z,initfirst |
njn | 3e88418 | 2003-04-15 13:03:23 +0000 | [diff] [blame] | 140 | |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 141 | noinst_HEADERS = \ |
nethercote | f1e5e15 | 2004-09-01 23:58:16 +0000 | [diff] [blame] | 142 | core.h \ |
nethercote | 5a2664c | 2004-09-02 15:37:39 +0000 | [diff] [blame] | 143 | core_asm.h \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 144 | ume.h \ |
| 145 | ume_arch.h \ |
jsgf | cb1d1c0 | 2003-10-14 21:55:10 +0000 | [diff] [blame] | 146 | vg_symtab2.h \ |
| 147 | vg_symtypes.h \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 148 | vg_toolint.h \ |
njn | 3e88418 | 2003-04-15 13:03:23 +0000 | [diff] [blame] | 149 | vg_unsafe.h |
sewardj | de4a1d0 | 2002-03-22 01:27:54 +0000 | [diff] [blame] | 150 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 151 | MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS) $(inplacedir)/libpthread.so.0 |
sewardj | 71889e6 | 2002-05-10 03:03:57 +0000 | [diff] [blame] | 152 | |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 153 | vg_replace_malloc.o vg_intercept.o vg_libpthread.o: CFLAGS += -fno-omit-frame-pointer -g -fpic |
njn | 01fe69e | 2002-11-11 18:54:42 +0000 | [diff] [blame] | 154 | |
daywalker | 781132b | 2003-06-01 20:05:08 +0000 | [diff] [blame] | 155 | all-local: |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 156 | mkdir -p $(inplacedir) |
| 157 | for i in $(val_PROGRAMS); do \ |
| 158 | to=$(inplacedir)/$$(echo $$i | sed 's,libpthread.so,libpthread.so.0,'); \ |
| 159 | rm -f $$$to; \ |
nethercote | 03b1948 | 2004-08-25 11:57:21 +0000 | [diff] [blame] | 160 | ln -sf ../$(subdir)/$$i $$to; \ |
fitzhardinge | 98abfc7 | 2003-12-16 02:05:15 +0000 | [diff] [blame] | 161 | done |
| 162 | |