• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/README.txt \
26	m_gdbserver/README_DEVELOPERS \
27	docs/vgdb-manpage.xml
28
29#----------------------------------------------------------------------------
30# The launcher.  Built for the primary target only.
31#----------------------------------------------------------------------------
32
33bin_PROGRAMS = \
34	valgrind \
35	vgdb
36
37if VGCONF_OS_IS_LINUX
38valgrind_SOURCES = \
39	launcher-linux.c \
40	m_debuglog.c
41endif
42if VGCONF_OS_IS_DARWIN
43valgrind_SOURCES = \
44	launcher-darwin.c \
45	m_debuglog.c
46endif
47if VGCONF_OS_IS_SOLARIS
48valgrind_SOURCES = \
49	launcher-linux.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) @LIB_UBSAN@
57# If there is no secondary platform, and the platforms include x86-darwin,
58# then the primary platform must be x86-darwin.  Hence:
59if ! VGCONF_HAVE_PLATFORM_SEC
60if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
61valgrind_LDFLAGS   += -Wl,-read_only_relocs -Wl,suppress
62endif
63endif
64# On Android we must ask for non-executable stack, not sure why.
65if VGCONF_PLATVARIANT_IS_ANDROID
66valgrind_CFLAGS += -static
67valgrind_LDFLAGS   += -Wl,-z,noexecstack
68endif
69if VGCONF_OS_IS_SOLARIS
70valgrind_LDFLAGS   += -Wl,-M,/usr/lib/ld/map.noexstk
71endif
72
73
74vgdb_SOURCES = vgdb.c
75if VGCONF_OS_IS_LINUX
76if VGCONF_PLATVARIANT_IS_ANDROID
77vgdb_SOURCES += vgdb-invoker-none.c
78else
79vgdb_SOURCES += vgdb-invoker-ptrace.c
80endif
81endif
82if VGCONF_OS_IS_DARWIN
83# Some darwin specific stuff is needed as ptrace is not
84# fully supported on MacOS. Till we find someone courageous
85# having access to Darwin, 'none' implementation is used.
86vgdb_SOURCES += vgdb-invoker-none.c
87endif
88if VGCONF_OS_IS_SOLARIS
89vgdb_SOURCES += vgdb-invoker-solaris.c
90endif
91
92vgdb_CPPFLAGS  = $(AM_CPPFLAGS_PRI)
93vgdb_CFLAGS    = $(AM_CFLAGS_PRI)
94vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI)
95vgdb_LDFLAGS   = $(AM_CFLAGS_PRI) @LIB_UBSAN@
96if VGCONF_PLATVARIANT_IS_ANDROID
97vgdb_CFLAGS    += -static
98endif
99if VGCONF_OS_IS_SOLARIS
100vgdb_LDADD     = -lsocket
101else
102if !VGCONF_PLATVARIANT_IS_ANDROID
103vgdb_LDADD     = -lpthread
104endif
105endif
106# If there is no secondary platform, and the platforms include x86-darwin,
107# then the primary platform must be x86-darwin.  Hence:
108if ! VGCONF_HAVE_PLATFORM_SEC
109if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
110vgdb_LDFLAGS   += -Wl,-read_only_relocs -Wl,suppress
111endif
112endif
113
114#----------------------------------------------------------------------------
115# Darwin Mach stuff
116#----------------------------------------------------------------------------
117
118# Mach RPC interface definitions
119# Here are some more .defs files that are not used, but could be in the
120# future:
121#	clock.defs \
122#	clock_priv.defs \
123#	clock_reply.defs \
124#	exc.defs \
125#	host_priv.defs \
126#	host_security.defs \
127#	ledger.defs \
128#	lock_set.defs \
129#	mach_host.defs \
130#	mach_port.defs \
131#	notify.defs \
132#	processor.defs \
133#	processor_set.defs \
134#
135mach_user_srcs =
136mach_server_srcs =
137mach_hdrs =
138mach_defs =
139if VGCONF_OS_IS_DARWIN
140mach_user_srcs += \
141	m_mach/mach_vmUser.c \
142        m_mach/taskUser.c \
143        m_mach/thread_actUser.c \
144        m_mach/vm_mapUser.c
145mach_server_srcs += \
146	m_mach/mach_vmServer.c \
147        m_mach/taskServer.c \
148        m_mach/thread_actServer.c \
149        m_mach/vm_mapServer.c
150mach_hdrs += \
151	m_mach/mach_vm.h \
152        m_mach/task.h \
153        m_mach/thread_act.h \
154        m_mach/vm_map.h
155mach_defs += \
156	/usr/include/mach/mach_vm.defs \
157        /usr/include/mach/task.defs \
158        /usr/include/mach/thread_act.defs \
159        /usr/include/mach/vm_map.defs
160endif
161
162# Be careful w.r.t. parallel builds.  See section 27.9 of the automake info
163# page, "Handling Tools that Produce many Outputs".
164$(abs_builddir)/m_mach:
165	mkdir -p $@
166$(mach_user_srcs): $(mach_defs) $(abs_builddir)/m_mach
167	(cd m_mach && mig $(mach_defs))
168$(mach_hdrs): $(mach_defs) $(mach_user_srcs) $(abs_builddir)/m_mach
169	(cd m_mach && mig $(mach_defs))
170
171#----------------------------------------------------------------------------
172# Headers
173#----------------------------------------------------------------------------
174
175noinst_HEADERS = \
176	pub_core_addrinfo.h	\
177	pub_core_aspacehl.h	\
178	pub_core_aspacemgr.h	\
179	pub_core_basics.h	\
180	pub_core_basics_asm.h	\
181	pub_core_clientstate.h	\
182	pub_core_clreq.h	\
183	pub_core_commandline.h	\
184	pub_core_coredump.h	\
185	pub_core_cpuid.h	\
186	pub_core_deduppoolalloc.h \
187	pub_core_debuginfo.h	\
188	pub_core_debuglog.h	\
189	pub_core_demangle.h	\
190	pub_core_dispatch.h	\
191	pub_core_dispatch_asm.h	\
192	pub_core_errormgr.h	\
193	pub_core_execontext.h	\
194	pub_core_gdbserver.h	\
195	pub_core_guest.h	\
196	pub_core_hashtable.h	\
197	pub_core_initimg.h	\
198	pub_core_inner.h	\
199	pub_core_libcbase.h	\
200	pub_core_libcassert.h	\
201	pub_core_libcfile.h	\
202	pub_core_libcprint.h	\
203	pub_core_libcproc.h	\
204	pub_core_libcsetjmp.h	\
205	pub_core_libcsignal.h	\
206	pub_core_mach.h		\
207	pub_core_machine.h	\
208	pub_core_mallocfree.h	\
209	pub_core_options.h	\
210	pub_core_oset.h		\
211	pub_core_poolalloc.h	\
212	pub_core_rangemap.h	\
213	pub_core_redir.h	\
214	pub_core_replacemalloc.h\
215	pub_core_sbprofile.h	\
216	pub_core_scheduler.h	\
217	pub_core_seqmatch.h	\
218	pub_core_sigframe.h	\
219	pub_core_signals.h	\
220	pub_core_sparsewa.h	\
221	pub_core_stacks.h	\
222	pub_core_stacktrace.h	\
223	pub_core_syscall.h	\
224	pub_core_syswrap.h	\
225	pub_core_threadstate.h	\
226	pub_core_tooliface.h	\
227	pub_core_trampoline.h	\
228	pub_core_translate.h	\
229	pub_core_transtab.h	\
230	pub_core_transtab_asm.h	\
231	pub_core_ume.h		\
232	pub_core_vki.h		\
233	pub_core_vkiscnums.h	\
234	pub_core_vkiscnums_asm.h\
235	pub_core_wordfm.h	\
236	pub_core_xarray.h	\
237	pub_core_xtree.h	\
238	pub_core_xtmemory.h	\
239	m_aspacemgr/priv_aspacemgr.h \
240	m_debuginfo/priv_misc.h	\
241	m_debuginfo/priv_storage.h	\
242	m_debuginfo/priv_tytypes.h      \
243	m_debuginfo/priv_readpdb.h	\
244	m_debuginfo/priv_d3basics.h	\
245	m_debuginfo/priv_readdwarf.h	\
246	m_debuginfo/priv_readdwarf3.h	\
247	m_debuginfo/priv_readelf.h	\
248	m_debuginfo/priv_readexidx.h	\
249	m_debuginfo/priv_readmacho.h	\
250	m_debuginfo/priv_image.h	\
251	m_debuginfo/lzoconf.h		\
252	m_debuginfo/lzodefs.h		\
253	m_debuginfo/minilzo.h		\
254	m_demangle/ansidecl.h	\
255	m_demangle/cp-demangle.h \
256	m_demangle/dyn-string.h	\
257	m_demangle/demangle.h	\
258	m_demangle/safe-ctype.h \
259	m_demangle/vg_libciface.h \
260	m_gdbserver/regcache.h \
261	m_gdbserver/regdef.h \
262	m_gdbserver/server.h \
263	m_gdbserver/target.h \
264	m_gdbserver/valgrind_low.h \
265	m_gdbserver/gdb/signals.h \
266	m_initimg/priv_initimg_pathscan.h \
267	m_scheduler/priv_sema.h \
268	m_scheduler/priv_sched-lock.h \
269	m_scheduler/priv_sched-lock-impl.h \
270	m_sigframe/priv_sigframe.h \
271	m_syswrap/priv_types_n_macros.h \
272	m_syswrap/priv_syswrap-generic.h \
273	m_syswrap/priv_syswrap-linux.h \
274	m_syswrap/priv_syswrap-linux-variants.h \
275	m_syswrap/priv_syswrap-darwin.h \
276	m_syswrap/priv_syswrap-solaris.h \
277	m_syswrap/priv_syswrap-main.h \
278	m_syswrap/priv_syswrap-xen.h \
279	m_ume/priv_ume.h \
280	vgdb.h
281
282#----------------------------------------------------------------------------
283# libcoregrind-<platform>.a
284#----------------------------------------------------------------------------
285
286BUILT_SOURCES = $(mach_user_srcs)
287CLEANFILES    = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs)
288
289pkglib_LIBRARIES  = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
290if VGCONF_HAVE_PLATFORM_SEC
291pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
292endif
293
294COREGRIND_SOURCES_COMMON = \
295	m_addrinfo.c \
296	m_cache.c \
297	m_commandline.c \
298	m_compiler.c \
299	m_clientstate.c \
300	m_cpuid.S \
301	m_deduppoolalloc.c \
302	m_debuglog.c \
303	m_errormgr.c \
304	m_execontext.c \
305	m_hashtable.c \
306	m_libcbase.c \
307	m_libcassert.c \
308	m_libcfile.c \
309	m_libcprint.c \
310	m_libcproc.c \
311	m_libcsetjmp.c \
312	m_libcsignal.c \
313	m_machine.c \
314	m_main.c \
315	m_mallocfree.c \
316	m_options.c \
317	m_oset.c \
318	m_poolalloc.c \
319	m_rangemap.c \
320	m_redir.c \
321	m_sbprofile.c \
322	m_seqmatch.c \
323	m_signals.c \
324	m_sparsewa.c \
325	m_stacks.c \
326	m_stacktrace.c \
327	m_syscall.c \
328	m_threadstate.c \
329	m_tooliface.c \
330	m_trampoline.S \
331	m_translate.c \
332	m_transtab.c \
333	m_vki.c \
334	m_vkiscnums.c \
335	m_wordfm.c \
336	m_xarray.c \
337	m_xtree.c \
338	m_xtmemory.c \
339	m_aspacehl.c \
340	m_aspacemgr/aspacemgr-common.c \
341	m_aspacemgr/aspacemgr-linux.c \
342	m_aspacemgr/aspacemgr-segnames.c \
343	m_coredump/coredump-elf.c \
344	m_coredump/coredump-macho.c \
345	m_coredump/coredump-solaris.c \
346	m_debuginfo/misc.c \
347	m_debuginfo/d3basics.c \
348	m_debuginfo/debuginfo.c \
349	m_debuginfo/image.c \
350	m_debuginfo/minilzo-inl.c \
351	m_debuginfo/readdwarf.c \
352	m_debuginfo/readdwarf3.c \
353	m_debuginfo/readelf.c \
354	m_debuginfo/readexidx.c \
355	m_debuginfo/readmacho.c \
356	m_debuginfo/readpdb.c \
357	m_debuginfo/storage.c \
358	m_debuginfo/tinfl.c \
359	m_debuginfo/tytypes.c \
360	m_demangle/cp-demangle.c \
361	m_demangle/cplus-dem.c \
362	m_demangle/demangle.c \
363	m_demangle/dyn-string.c \
364	m_demangle/d-demangle.c \
365	m_demangle/rust-demangle.c \
366	m_demangle/safe-ctype.c \
367	m_dispatch/dispatch-x86-linux.S \
368	m_dispatch/dispatch-amd64-linux.S \
369	m_dispatch/dispatch-ppc32-linux.S \
370	m_dispatch/dispatch-ppc64be-linux.S \
371	m_dispatch/dispatch-ppc64le-linux.S \
372	m_dispatch/dispatch-arm-linux.S \
373	m_dispatch/dispatch-arm64-linux.S \
374	m_dispatch/dispatch-s390x-linux.S \
375	m_dispatch/dispatch-mips32-linux.S \
376	m_dispatch/dispatch-mips64-linux.S \
377	m_dispatch/dispatch-x86-darwin.S \
378	m_dispatch/dispatch-amd64-darwin.S \
379	m_dispatch/dispatch-x86-solaris.S \
380	m_dispatch/dispatch-amd64-solaris.S \
381	m_gdbserver/inferiors.c \
382	m_gdbserver/m_gdbserver.c \
383	m_gdbserver/regcache.c \
384	m_gdbserver/remote-utils.c \
385	m_gdbserver/server.c \
386	m_gdbserver/signals.c \
387	m_gdbserver/target.c \
388	m_gdbserver/utils.c \
389	m_gdbserver/valgrind-low-x86.c \
390	m_gdbserver/valgrind-low-amd64.c \
391	m_gdbserver/valgrind-low-arm.c \
392	m_gdbserver/valgrind-low-arm64.c \
393	m_gdbserver/valgrind-low-ppc32.c \
394	m_gdbserver/valgrind-low-ppc64.c \
395	m_gdbserver/valgrind-low-s390x.c \
396	m_gdbserver/valgrind-low-mips32.c \
397	m_gdbserver/valgrind-low-mips64.c \
398	m_gdbserver/version.c \
399	m_initimg/initimg-linux.c \
400	m_initimg/initimg-darwin.c \
401	m_initimg/initimg-solaris.c \
402	m_initimg/initimg-pathscan.c \
403	m_mach/mach_basics.c \
404	m_mach/mach_msg.c \
405	m_mach/mach_traps-x86-darwin.S \
406	m_mach/mach_traps-amd64-darwin.S \
407	m_replacemalloc/replacemalloc_core.c \
408	m_scheduler/sched-lock.c \
409	m_scheduler/sched-lock-generic.c \
410	m_scheduler/scheduler.c \
411	m_scheduler/sema.c \
412	m_sigframe/sigframe-common.c \
413	m_sigframe/sigframe-x86-linux.c \
414	m_sigframe/sigframe-amd64-linux.c \
415	m_sigframe/sigframe-ppc32-linux.c \
416	m_sigframe/sigframe-ppc64-linux.c \
417	m_sigframe/sigframe-arm-linux.c \
418	m_sigframe/sigframe-arm64-linux.c \
419	m_sigframe/sigframe-s390x-linux.c \
420	m_sigframe/sigframe-mips32-linux.c \
421	m_sigframe/sigframe-mips64-linux.c \
422	m_sigframe/sigframe-x86-darwin.c \
423	m_sigframe/sigframe-amd64-darwin.c \
424	m_sigframe/sigframe-solaris.c \
425	m_syswrap/syscall-x86-linux.S \
426	m_syswrap/syscall-amd64-linux.S \
427	m_syswrap/syscall-ppc32-linux.S \
428	m_syswrap/syscall-ppc64be-linux.S \
429	m_syswrap/syscall-ppc64le-linux.S \
430	m_syswrap/syscall-arm-linux.S \
431	m_syswrap/syscall-arm64-linux.S \
432	m_syswrap/syscall-s390x-linux.S \
433	m_syswrap/syscall-mips32-linux.S \
434	m_syswrap/syscall-mips64-linux.S \
435	m_syswrap/syscall-x86-darwin.S \
436	m_syswrap/syscall-amd64-darwin.S \
437	m_syswrap/syscall-x86-solaris.S \
438	m_syswrap/syscall-amd64-solaris.S \
439	m_syswrap/syswrap-main.c \
440	m_syswrap/syswrap-generic.c \
441	m_syswrap/syswrap-linux.c \
442	m_syswrap/syswrap-linux-variants.c \
443	m_syswrap/syswrap-darwin.c \
444	m_syswrap/syswrap-solaris.c \
445	m_syswrap/syswrap-x86-linux.c \
446	m_syswrap/syswrap-amd64-linux.c \
447	m_syswrap/syswrap-ppc32-linux.c \
448	m_syswrap/syswrap-ppc64-linux.c \
449	m_syswrap/syswrap-arm-linux.c \
450	m_syswrap/syswrap-arm64-linux.c \
451	m_syswrap/syswrap-s390x-linux.c \
452	m_syswrap/syswrap-mips32-linux.c \
453	m_syswrap/syswrap-mips64-linux.c \
454	m_syswrap/syswrap-x86-darwin.c \
455	m_syswrap/syswrap-amd64-darwin.c \
456	m_syswrap/syswrap-xen.c \
457	m_syswrap/syswrap-x86-solaris.c \
458	m_syswrap/syswrap-amd64-solaris.c \
459	m_ume/elf.c \
460	m_ume/macho.c \
461	m_ume/main.c \
462	m_ume/script.c
463
464libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
465    $(COREGRIND_SOURCES_COMMON)
466nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
467    $(BUILT_SOURCES)
468libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
469    $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
470libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
471    $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
472libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \
473    $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
474if ENABLE_LINUX_TICKET_LOCK_PRIMARY
475libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES += \
476    m_scheduler/ticket-lock-linux.c
477libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS += \
478    -DENABLE_LINUX_TICKET_LOCK
479endif
480
481if VGCONF_HAVE_PLATFORM_SEC
482libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
483    $(COREGRIND_SOURCES_COMMON)
484nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
485    $(BUILT_SOURCES)
486libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
487    $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
488libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
489    $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
490libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \
491    $(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
492if ENABLE_LINUX_TICKET_LOCK_SECONDARY
493libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES += \
494    m_scheduler/ticket-lock-linux.c
495libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS += \
496    -DENABLE_LINUX_TICKET_LOCK
497endif
498endif
499
500#----------------------------------------------------------------------------
501# libreplacemalloc_toolpreload-<platform>.a
502#----------------------------------------------------------------------------
503
504pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
505if VGCONF_HAVE_PLATFORM_SEC
506pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
507endif
508
509libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
510	m_replacemalloc/vg_replace_malloc.c
511libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
512	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
513libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
514	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
515if VGCONF_HAVE_PLATFORM_SEC
516libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
517	m_replacemalloc/vg_replace_malloc.c
518libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
519	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
520libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
521	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
522endif
523
524#----------------------------------------------------------------------------
525# vgpreload_core-<platform>.a
526#----------------------------------------------------------------------------
527
528noinst_PROGRAMS  = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
529if VGCONF_HAVE_PLATFORM_SEC
530noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
531endif
532
533if VGCONF_OS_IS_DARWIN
534noinst_DSYMS = $(noinst_PROGRAMS)
535endif
536
537vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
538vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \
539	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
540vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
541	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
542vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \
543	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
544if VGCONF_HAVE_PLATFORM_SEC
545vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c
546vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \
547	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
548vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
549	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
550vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \
551	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
552endif
553
554if VGCONF_OS_IS_SOLARIS
555# Give the vgpreload_core library a proper soname so it can be easily
556# recognized during reading of debug information.
557vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS += \
558	-Wl,-soname -Wl,vgpreload_core.so.0
559if VGCONF_HAVE_PLATFORM_SEC
560vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS += \
561	-Wl,-soname -Wl,vgpreload_core.so.0
562endif
563endif
564
565#----------------------------------------------------------------------------
566# gdbserver xml target descriptions
567#----------------------------------------------------------------------------
568
569GDBSERVER_XML_FILES = \
570	m_gdbserver/32bit-core-valgrind-s1.xml \
571	m_gdbserver/32bit-core-valgrind-s2.xml \
572	m_gdbserver/32bit-core.xml \
573	m_gdbserver/32bit-linux-valgrind-s1.xml \
574	m_gdbserver/32bit-linux-valgrind-s2.xml \
575	m_gdbserver/32bit-linux.xml \
576	m_gdbserver/32bit-sse-valgrind-s1.xml \
577	m_gdbserver/32bit-sse-valgrind-s2.xml \
578	m_gdbserver/32bit-sse.xml \
579	m_gdbserver/64bit-avx-valgrind-s2.xml \
580	m_gdbserver/64bit-avx-valgrind-s1.xml \
581	m_gdbserver/64bit-avx.xml \
582	m_gdbserver/64bit-core-valgrind-s1.xml \
583	m_gdbserver/64bit-core-valgrind-s2.xml \
584	m_gdbserver/64bit-core.xml \
585	m_gdbserver/64bit-linux-valgrind-s1.xml \
586	m_gdbserver/64bit-linux-valgrind-s2.xml \
587	m_gdbserver/64bit-linux.xml \
588	m_gdbserver/64bit-sse-valgrind-s1.xml \
589	m_gdbserver/64bit-sse-valgrind-s2.xml \
590	m_gdbserver/64bit-sse.xml \
591	m_gdbserver/amd64-avx-coresse-valgrind.xml \
592	m_gdbserver/amd64-avx-coresse.xml \
593	m_gdbserver/amd64-avx-linux-valgrind.xml \
594	m_gdbserver/amd64-avx-linux.xml \
595	m_gdbserver/amd64-coresse-valgrind.xml \
596	m_gdbserver/amd64-linux-valgrind.xml \
597	m_gdbserver/arm-core-valgrind-s1.xml \
598	m_gdbserver/arm-core-valgrind-s2.xml \
599	m_gdbserver/arm-core.xml \
600	m_gdbserver/arm-vfpv3-valgrind-s1.xml \
601	m_gdbserver/arm-vfpv3-valgrind-s2.xml \
602	m_gdbserver/arm-vfpv3.xml \
603	m_gdbserver/arm-with-vfpv3-valgrind.xml \
604	m_gdbserver/arm-with-vfpv3.xml \
605	m_gdbserver/i386-coresse-valgrind.xml \
606	m_gdbserver/i386-linux-valgrind.xml \
607	m_gdbserver/power64-core-valgrind-s1.xml \
608	m_gdbserver/power64-core-valgrind-s2.xml \
609	m_gdbserver/power64-core.xml \
610	m_gdbserver/power64-core2-valgrind-s1.xml \
611	m_gdbserver/power64-core2-valgrind-s2.xml \
612	m_gdbserver/power64-linux-valgrind-s1.xml \
613	m_gdbserver/power64-linux-valgrind-s2.xml \
614	m_gdbserver/power64-linux.xml \
615	m_gdbserver/power-altivec-valgrind-s1.xml \
616	m_gdbserver/power-altivec-valgrind-s2.xml \
617	m_gdbserver/power-altivec.xml \
618	m_gdbserver/power-vsx-valgrind-s1.xml \
619	m_gdbserver/power-vsx-valgrind-s2.xml \
620	m_gdbserver/power-vsx.xml \
621	m_gdbserver/power-core-valgrind-s1.xml \
622	m_gdbserver/power-core-valgrind-s2.xml \
623	m_gdbserver/power-core.xml \
624	m_gdbserver/power-fpu-valgrind-s1.xml \
625	m_gdbserver/power-fpu-valgrind-s2.xml \
626	m_gdbserver/power-fpu.xml \
627	m_gdbserver/power-linux-valgrind-s1.xml \
628	m_gdbserver/power-linux-valgrind-s2.xml \
629	m_gdbserver/power-linux.xml \
630	m_gdbserver/powerpc-altivec32l-valgrind.xml \
631	m_gdbserver/powerpc-altivec32l.xml \
632	m_gdbserver/powerpc-altivec64l-valgrind.xml \
633	m_gdbserver/powerpc-altivec64l.xml \
634	m_gdbserver/s390-acr-valgrind-s1.xml \
635	m_gdbserver/s390-acr-valgrind-s2.xml \
636	m_gdbserver/s390-acr.xml \
637	m_gdbserver/s390-fpr-valgrind-s1.xml \
638	m_gdbserver/s390-fpr-valgrind-s2.xml \
639	m_gdbserver/s390-fpr.xml \
640	m_gdbserver/s390x-core64-valgrind-s1.xml \
641	m_gdbserver/s390x-core64-valgrind-s2.xml \
642	m_gdbserver/s390x-core64.xml \
643	m_gdbserver/s390x-generic-valgrind.xml \
644	m_gdbserver/s390x-generic.xml \
645	m_gdbserver/s390x-linux64-valgrind-s1.xml \
646	m_gdbserver/s390x-linux64-valgrind-s2.xml \
647	m_gdbserver/s390x-linux64.xml \
648	m_gdbserver/mips-cp0-valgrind-s1.xml \
649	m_gdbserver/mips-cp0-valgrind-s2.xml \
650	m_gdbserver/mips-cp0.xml \
651	m_gdbserver/mips-cpu-valgrind-s1.xml \
652	m_gdbserver/mips-cpu-valgrind-s2.xml \
653	m_gdbserver/mips-cpu.xml \
654	m_gdbserver/mips-linux.xml \
655	m_gdbserver/mips-linux-valgrind.xml \
656	m_gdbserver/mips-fpu-valgrind-s1.xml \
657	m_gdbserver/mips-fpu-valgrind-s2.xml \
658	m_gdbserver/mips-fpu.xml \
659	m_gdbserver/mips64-cp0-valgrind-s1.xml \
660	m_gdbserver/mips64-cp0-valgrind-s2.xml \
661	m_gdbserver/mips64-cp0.xml \
662	m_gdbserver/mips64-cpu-valgrind-s1.xml \
663	m_gdbserver/mips64-cpu-valgrind-s2.xml \
664	m_gdbserver/mips64-cpu.xml \
665	m_gdbserver/mips64-linux.xml \
666	m_gdbserver/mips64-linux-valgrind.xml \
667	m_gdbserver/mips64-fpu-valgrind-s1.xml \
668	m_gdbserver/mips64-fpu-valgrind-s2.xml \
669	m_gdbserver/mips64-fpu.xml
670
671# so as to make sure these get copied into the install tree
672vglibdir = $(pkglibdir)
673vglib_DATA  = $(GDBSERVER_XML_FILES)
674
675# so as to make sure these get copied into the tarball
676EXTRA_DIST  += $(GDBSERVER_XML_FILES)
677
678#----------------------------------------------------------------------------
679# General stuff
680#----------------------------------------------------------------------------
681
682all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS
683	mkdir -p $(inplacedir); \
684	for f in $(vglib_DATA); do \
685	  rm -f $(inplacedir)/$$f; \
686	  ln -f -s ../$(subdir)/$$f $(inplacedir); \
687	done
688
689clean-local: clean-noinst_DSYMS
690
691install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS
692
693uninstall-local: uninstall-noinst_PROGRAMS uninstall-noinst_DSYMS
694
695#----------------------------------------------------------------------------
696# Darwin linker kludges
697#----------------------------------------------------------------------------
698
699if VGCONF_OS_IS_DARWIN
700
701BUILT_SOURCES += fixup_macho_loadcmds
702fixup_macho_loadcmds: fixup_macho_loadcmds.c
703	$(CC) -I $(top_srcdir) -g -Wall -o $@ $<
704
705CLEANFILES += fixup_macho_loadcmds
706
707endif
708
709EXTRA_DIST += fixup_macho_loadcmds.c
710