1
2# Be very careful when renaming any files, targets, whatever, in this
3# Makefile.  Various parts of the system rely on these names having
4# particular forms.
5
6include $(top_srcdir)/Makefile.all.am
7
8#----------------------------------------------------------------------------
9# Basics, flags
10#----------------------------------------------------------------------------
11
12AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \
13	-I$(top_srcdir)/coregrind \
14	-DVG_LIBDIR="\"$(pkglibdir)"\" \
15	-DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\""
16if VGCONF_HAVE_PLATFORM_SEC
17AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \
18	-I$(top_srcdir)/coregrind \
19	-DVG_LIBDIR="\"$(pkglibdir)"\" \
20	-DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\""
21endif
22
23
24EXTRA_DIST = \
25	m_debuginfo/UNUSED_STABS.txt \
26	m_debuginfo/README.txt
27
28#----------------------------------------------------------------------------
29# The launcher.  Built for the primary target only.
30#----------------------------------------------------------------------------
31
32bin_PROGRAMS = \
33	valgrind \
34	no_op_client_for_valgrind
35
36if VGCONF_OS_IS_LINUX
37valgrind_SOURCES = \
38	launcher-linux.c \
39	m_debuglog.c
40endif
41if VGCONF_OS_IS_AIX5
42valgrind_SOURCES = \
43	launcher-aix5.c \
44	m_debuglog.c \
45	m_vkiscnums.c
46endif
47if VGCONF_OS_IS_DARWIN
48valgrind_SOURCES = \
49	launcher-darwin.c \
50	m_debuglog.c
51endif
52
53valgrind_CPPFLAGS  = $(AM_CPPFLAGS_PRI)
54valgrind_CFLAGS    = $(AM_CFLAGS_PRI)
55valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI)
56valgrind_LDFLAGS   = $(AM_CFLAGS_PRI)
57if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
58valgrind_LDFLAGS   += -Wl,-read_only_relocs -Wl,suppress
59endif
60
61no_op_client_for_valgrind_SOURCES = no_op_client_for_valgrind.c
62no_op_client_for_valgrind_CPPFLAGS  = $(AM_CPPFLAGS_PRI)
63no_op_client_for_valgrind_CFLAGS    = $(AM_CFLAGS_PRI)
64no_op_client_for_valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI)
65no_op_client_for_valgrind_LDFLAGS   = $(AM_CFLAGS_PRI)
66if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
67no_op_client_for_valgrind_LDFLAGS   += -Wl,-read_only_relocs -Wl,suppress
68endif
69
70#----------------------------------------------------------------------------
71# Darwin Mach stuff
72#----------------------------------------------------------------------------
73
74# Mach RPC interface definitions
75# Here are some more .defs files that are not used, but could be in the
76# future:
77#	clock.defs \
78#	clock_priv.defs \
79#	clock_reply.defs \
80#	exc.defs \
81#	host_priv.defs \
82#	host_security.defs \
83#	ledger.defs \
84#	lock_set.defs \
85#	mach_host.defs \
86#	mach_port.defs \
87#	notify.defs \
88#	processor.defs \
89#	processor_set.defs \
90#
91mach_user_srcs =
92mach_server_srcs =
93mach_hdrs =
94mach_defs =
95if VGCONF_OS_IS_DARWIN
96mach_user_srcs += \
97	m_mach/mach_vmUser.c \
98        m_mach/taskUser.c \
99        m_mach/thread_actUser.c \
100        m_mach/vm_mapUser.c
101mach_server_srcs += \
102	m_mach/mach_vmServer.c \
103        m_mach/taskServer.c \
104        m_mach/thread_actServer.c \
105        m_mach/vm_mapServer.c
106mach_hdrs += \
107	m_mach/mach_vm.h \
108        m_mach/task.h \
109        m_mach/thread_act.h \
110        m_mach/vm_map.h
111mach_defs += \
112	/usr/include/mach/mach_vm.defs \
113        /usr/include/mach/task.defs \
114        /usr/include/mach/thread_act.defs \
115        /usr/include/mach/vm_map.defs
116endif
117
118# Be careful w.r.t. parallel builds.  See section 27.9 of the automake info
119# page, "Handling Tools that Produce many Outputs".
120$(abs_builddir)/m_mach: 
121	mkdir -p $@
122$(mach_user_srcs): $(mach_defs) $(abs_builddir)/m_mach
123	(cd m_mach && mig $(mach_defs))
124$(mach_hdrs): $(mach_defs) $(mach_user_srcs) $(abs_builddir)/m_mach
125	(cd m_mach && mig $(mach_defs))
126
127#----------------------------------------------------------------------------
128# Headers
129#----------------------------------------------------------------------------
130
131noinst_HEADERS = \
132	launcher-aix5-bootblock.h \
133	pub_core_aspacehl.h	\
134	pub_core_aspacemgr.h	\
135	pub_core_basics.h	\
136	pub_core_basics_asm.h	\
137	pub_core_clientstate.h	\
138	pub_core_clreq.h	\
139	pub_core_commandline.h	\
140	pub_core_coredump.h	\
141	pub_core_cpuid.h	\
142	pub_core_debuginfo.h	\
143	pub_core_debugger.h	\
144	pub_core_debuglog.h	\
145	pub_core_demangle.h	\
146	pub_core_dispatch.h	\
147	pub_core_dispatch_asm.h	\
148	pub_core_errormgr.h	\
149	pub_core_execontext.h	\
150	pub_core_hashtable.h	\
151	pub_core_initimg.h	\
152	pub_core_libcbase.h	\
153	pub_core_libcassert.h	\
154	pub_core_libcfile.h	\
155	pub_core_libcprint.h	\
156	pub_core_libcproc.h	\
157	pub_core_libcsignal.h	\
158	pub_core_mach.h		\
159	pub_core_machine.h	\
160	pub_core_mallocfree.h	\
161	pub_core_options.h	\
162	pub_core_oset.h		\
163	pub_core_redir.h	\
164	pub_core_replacemalloc.h\
165	pub_core_scheduler.h	\
166	pub_core_seqmatch.h	\
167	pub_core_sigframe.h	\
168	pub_core_signals.h	\
169	pub_core_sparsewa.h	\
170	pub_core_stacks.h	\
171	pub_core_stacktrace.h	\
172	pub_core_syscall.h	\
173	pub_core_syswrap.h	\
174	pub_core_threadstate.h	\
175	pub_core_tooliface.h	\
176	pub_core_trampoline.h	\
177	pub_core_translate.h	\
178	pub_core_transtab.h	\
179	pub_core_transtab_asm.h	\
180	pub_core_ume.h		\
181	pub_core_vki.h		\
182	pub_core_vkiscnums.h	\
183	pub_core_vkiscnums_asm.h\
184	pub_core_wordfm.h	\
185	pub_core_xarray.h	\
186	m_aspacemgr/priv_aspacemgr.h \
187	m_debuginfo/priv_misc.h	\
188	m_debuginfo/priv_storage.h	\
189	m_debuginfo/priv_tytypes.h      \
190	m_debuginfo/priv_readstabs.h	\
191	m_debuginfo/priv_readpdb.h	\
192	m_debuginfo/priv_d3basics.h	\
193	m_debuginfo/priv_readdwarf.h	\
194	m_debuginfo/priv_readdwarf3.h	\
195	m_debuginfo/priv_readelf.h	\
196	m_debuginfo/priv_readmacho.h	\
197	m_debuginfo/priv_readxcoff.h	\
198	m_demangle/ansidecl.h	\
199	m_demangle/cp-demangle.h \
200	m_demangle/dyn-string.h	\
201	m_demangle/demangle.h	\
202	m_demangle/safe-ctype.h \
203	m_demangle/vg_libciface.h \
204	m_initimg/priv_initimg_pathscan.h \
205	m_initimg/simple_huffman.c \
206	m_scheduler/priv_sema.h \
207	m_syswrap/priv_types_n_macros.h \
208	m_syswrap/priv_syswrap-generic.h \
209	m_syswrap/priv_syswrap-linux.h \
210	m_syswrap/priv_syswrap-linux-variants.h \
211	m_syswrap/priv_syswrap-aix5.h \
212	m_syswrap/priv_syswrap-darwin.h \
213	m_syswrap/priv_syswrap-main.h \
214	m_ume/priv_ume.h
215
216#----------------------------------------------------------------------------
217# libcoregrind-<platform>.a
218#----------------------------------------------------------------------------
219
220BUILT_SOURCES = $(mach_user_srcs)
221CLEANFILES    = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs)
222
223pkglib_LIBRARIES  = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
224if VGCONF_HAVE_PLATFORM_SEC
225pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
226endif
227
228COREGRIND_SOURCES_COMMON = \
229	m_commandline.c \
230	m_clientstate.c \
231	m_cpuid.S \
232	m_debugger.c \
233	m_debuglog.c \
234	m_errormgr.c \
235	m_execontext.c \
236	m_hashtable.c \
237	m_libcbase.c \
238	m_libcassert.c \
239	m_libcfile.c \
240	m_libcprint.c \
241	m_libcproc.c \
242	m_libcsignal.c \
243	m_machine.c \
244	m_main.c \
245	m_mallocfree.c \
246	m_options.c \
247	m_oset.c \
248	m_redir.c \
249	m_seqmatch.c \
250	m_signals.c \
251	m_sparsewa.c \
252	m_stacks.c \
253	m_stacktrace.c \
254	m_syscall.c \
255	m_threadstate.c \
256	m_tooliface.c \
257	m_trampoline.S \
258	m_translate.c \
259	m_transtab.c \
260	m_vki.c \
261	m_vkiscnums.c \
262	m_wordfm.c \
263	m_xarray.c \
264	m_aspacehl.c \
265	m_aspacemgr/aspacemgr-common.c \
266	m_aspacemgr/aspacemgr-linux.c \
267	m_aspacemgr/aspacemgr-aix5.c \
268	m_coredump/coredump-elf.c \
269	m_coredump/coredump-macho.c \
270	m_coredump/coredump-xcoff.c \
271	m_debuginfo/misc.c \
272	m_debuginfo/d3basics.c \
273	m_debuginfo/debuginfo.c \
274	m_debuginfo/readdwarf.c \
275	m_debuginfo/readdwarf3.c \
276	m_debuginfo/readelf.c \
277	m_debuginfo/readmacho.c \
278	m_debuginfo/readpdb.c \
279	m_debuginfo/readstabs.c \
280	m_debuginfo/readxcoff.c \
281	m_debuginfo/storage.c \
282	m_debuginfo/tytypes.c \
283	m_demangle/cp-demangle.c \
284	m_demangle/cplus-dem.c \
285	m_demangle/demangle.c \
286	m_demangle/dyn-string.c \
287	m_demangle/safe-ctype.c \
288	m_dispatch/dispatch-x86-linux.S \
289	m_dispatch/dispatch-amd64-linux.S \
290	m_dispatch/dispatch-ppc32-linux.S \
291	m_dispatch/dispatch-ppc64-linux.S \
292	m_dispatch/dispatch-arm-linux.S \
293	m_dispatch/dispatch-ppc32-aix5.S \
294	m_dispatch/dispatch-ppc64-aix5.S \
295	m_dispatch/dispatch-x86-darwin.S \
296	m_dispatch/dispatch-amd64-darwin.S \
297	m_initimg/initimg-linux.c \
298	m_initimg/initimg-aix5.c \
299	m_initimg/initimg-darwin.c \
300	m_initimg/initimg-pathscan.c \
301	m_mach/mach_basics.c \
302	m_mach/mach_msg.c \
303	m_mach/mach_traps-x86-darwin.S \
304	m_mach/mach_traps-amd64-darwin.S \
305	m_replacemalloc/replacemalloc_core.c \
306	m_scheduler/scheduler.c \
307	m_scheduler/sema.c \
308	m_sigframe/sigframe-x86-linux.c \
309	m_sigframe/sigframe-amd64-linux.c \
310	m_sigframe/sigframe-ppc32-linux.c \
311	m_sigframe/sigframe-ppc64-linux.c \
312	m_sigframe/sigframe-arm-linux.c \
313	m_sigframe/sigframe-ppc32-aix5.c \
314	m_sigframe/sigframe-ppc64-aix5.c \
315	m_sigframe/sigframe-x86-darwin.c \
316	m_sigframe/sigframe-amd64-darwin.c \
317	m_syswrap/syscall-x86-linux.S \
318	m_syswrap/syscall-amd64-linux.S \
319	m_syswrap/syscall-ppc32-linux.S \
320	m_syswrap/syscall-ppc64-linux.S \
321	m_syswrap/syscall-arm-linux.S \
322	m_syswrap/syscall-ppc32-aix5.S \
323	m_syswrap/syscall-ppc64-aix5.S \
324	m_syswrap/syscall-x86-darwin.S \
325	m_syswrap/syscall-amd64-darwin.S \
326	m_syswrap/syswrap-main.c \
327	m_syswrap/syswrap-generic.c \
328	m_syswrap/syswrap-linux.c \
329	m_syswrap/syswrap-linux-variants.c \
330	m_syswrap/syswrap-aix5.c \
331	m_syswrap/syswrap-darwin.c \
332	m_syswrap/syswrap-x86-linux.c \
333	m_syswrap/syswrap-amd64-linux.c \
334	m_syswrap/syswrap-ppc32-linux.c \
335	m_syswrap/syswrap-ppc64-linux.c \
336	m_syswrap/syswrap-arm-linux.c \
337	m_syswrap/syswrap-ppc32-aix5.c \
338	m_syswrap/syswrap-ppc64-aix5.c \
339	m_syswrap/syswrap-x86-darwin.c \
340	m_syswrap/syswrap-amd64-darwin.c \
341	m_ume/elf.c \
342	m_ume/macho.c \
343	m_ume/main.c \
344	m_ume/script.c
345
346libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
347    $(COREGRIND_SOURCES_COMMON)
348nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
349    $(BUILT_SOURCES)
350libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
351    $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
352libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
353    $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
354libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \
355    $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
356if VGCONF_HAVE_PLATFORM_SEC
357libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
358    $(COREGRIND_SOURCES_COMMON)
359nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
360    $(BUILT_SOURCES)
361libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
362    $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
363libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
364    $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
365libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \
366    $(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
367endif
368
369libcoregrind_ppc32_aix5_a_AR = $(AR) -X32 cru
370libcoregrind_ppc64_aix5_a_AR = $(AR) -X64 cru
371
372#----------------------------------------------------------------------------
373# libreplacemalloc_toolpreload-<platform>.a
374#----------------------------------------------------------------------------
375
376pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
377if VGCONF_HAVE_PLATFORM_SEC
378pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
379endif
380
381libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
382	m_replacemalloc/vg_replace_malloc.c
383libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
384	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
385libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
386	$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC)
387if VGCONF_HAVE_PLATFORM_SEC
388libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
389	m_replacemalloc/vg_replace_malloc.c
390libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
391	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
392libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
393	$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC)
394endif
395
396# Special AR for AIX.
397libreplacemalloc_toolpreload_ppc32_aix5_a_AR = $(AR) -X32 cru
398libreplacemalloc_toolpreload_ppc64_aix5_a_AR = $(AR) -X64 cru
399
400#----------------------------------------------------------------------------
401# vgpreload_core-<platform>.a
402#----------------------------------------------------------------------------
403
404noinst_PROGRAMS  = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
405if VGCONF_HAVE_PLATFORM_SEC
406noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
407endif
408
409if VGCONF_OS_IS_DARWIN
410noinst_DSYMS = $(noinst_PROGRAMS)
411endif
412
413vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
414vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
415	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
416vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
417	$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC)
418vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
419	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
420if VGCONF_HAVE_PLATFORM_SEC
421vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
422vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
423	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
424vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
425	$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC)
426vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
427	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
428endif
429
430#----------------------------------------------------------------------------
431# General stuff
432#----------------------------------------------------------------------------
433
434all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS
435
436clean-local: clean-noinst_DSYMS
437
438install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS
439
440