1include $(top_srcdir)/Makefile.tool.am
2
3EXTRA_DIST = docs/drd-manual.xml docs/drd-xml-output.xsd
4
5#----------------------------------------------------------------------------
6# Headers, flags
7#----------------------------------------------------------------------------
8
9pkginclude_HEADERS = drd.h
10
11noinst_HEADERS =        \
12  drd_barrier.h         \
13  drd_basics.h          \
14  drd_bitmap.c          \
15  drd_bitmap.h          \
16  drd_clientobj.h       \
17  drd_clientreq.h       \
18  drd_cond.h            \
19  drd_error.h           \
20  drd_hb.h              \
21  drd_load_store.h      \
22  drd_malloc_wrappers.h \
23  drd_mutex.h           \
24  drd_rwlock.h          \
25  drd_segment.c         \
26  drd_segment.h         \
27  drd_semaphore.h       \
28  drd_suppression.h     \
29  drd_thread.c          \
30  drd_thread.h          \
31  drd_thread_bitmap.h   \
32  drd_vc.c              \
33  drd_vc.h              \
34  pub_drd_bitmap.h
35
36DRD_CFLAGS =				\
37  @FLAG_UNLIMITED_INLINE_UNIT_GROWTH@	\
38  -O2					\
39  @FLAG_W_EXTRA@			\
40  -Wformat-nonliteral			\
41  -Wno-inline				\
42  -Wno-unused-parameter
43
44#DRD_CFLAGS += -DENABLE_DRD_CONSISTENCY_CHECKS
45
46#----------------------------------------------------------------------------
47# drd-<platform>
48#----------------------------------------------------------------------------
49
50noinst_PROGRAMS  = drd-@VGCONF_ARCH_PRI@-@VGCONF_OS@
51if VGCONF_HAVE_PLATFORM_SEC
52noinst_PROGRAMS += drd-@VGCONF_ARCH_SEC@-@VGCONF_OS@
53endif
54
55DRD_SOURCES_COMMON =    \
56  drd_barrier.c         \
57  drd_clientobj.c       \
58  drd_clientreq.c       \
59  drd_cond.c            \
60  drd_cond_initializer.c \
61  drd_error.c           \
62  drd_hb.c              \
63  drd_load_store.c      \
64  drd_main.c            \
65  drd_malloc_wrappers.c \
66  drd_mutex.c           \
67  drd_rwlock.c          \
68  drd_semaphore.c       \
69  drd_suppression.c
70
71drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES      = \
72	$(DRD_SOURCES_COMMON)
73drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS     = \
74	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
75drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS       = \
76	$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(DRD_CFLAGS)
77drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_DEPENDENCIES = \
78	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@)
79drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD        = \
80	$(TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@)
81drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS      = \
82	$(TOOL_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
83drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LINK = \
84	$(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
85	@VALT_LOAD_ADDRESS_PRI@ \
86	$(LINK) \
87	$(drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS) \
88	$(drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS)
89
90if VGCONF_HAVE_PLATFORM_SEC
91drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_SOURCES      = \
92	$(DRD_SOURCES_COMMON)
93drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CPPFLAGS     = \
94	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
95drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS       = \
96	$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(DRD_CFLAGS)
97drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_DEPENDENCIES = \
98	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@)
99drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDADD        = \
100	$(TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@)
101drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS      = \
102	$(TOOL_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
103drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LINK = \
104	$(top_builddir)/coregrind/link_tool_exe_@VGCONF_OS@ \
105	@VALT_LOAD_ADDRESS_SEC@ \
106	$(LINK) \
107	$(drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_CFLAGS) \
108	$(drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_LDFLAGS)
109endif
110
111#----------------------------------------------------------------------------
112# vgpreload_drd-<platform>.so
113#----------------------------------------------------------------------------
114
115noinst_PROGRAMS += vgpreload_drd-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so
116if VGCONF_HAVE_PLATFORM_SEC
117noinst_PROGRAMS += vgpreload_drd-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so
118endif
119
120if VGCONF_OS_IS_DARWIN
121noinst_DSYMS = $(noinst_PROGRAMS)
122endif
123
124VGPRELOAD_DRD_SOURCES_COMMON = \
125  drd_pthread_intercepts.c     \
126  drd_qtcore_intercepts.c      \
127  drd_strmem_intercepts.c
128
129if VGCONF_OS_IS_DARWIN
130VGPRELOAD_DRD_SOURCES_COMMON += drd_darwin_intercepts.c
131endif
132
133vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES      = \
134	$(VGPRELOAD_DRD_SOURCES_COMMON)
135vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS     = \
136	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
137vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS       = \
138	$(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) $(DRD_CFLAGS)
139vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_DEPENDENCIES = \
140	$(LIBREPLACEMALLOC_@VGCONF_PLATFORM_PRI_CAPS@)
141vgpreload_drd_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS      = \
142	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
143	$(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
144
145if VGCONF_HAVE_PLATFORM_SEC
146vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES      = \
147	$(VGPRELOAD_DRD_SOURCES_COMMON)
148vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS     = \
149	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
150vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS       = \
151	$(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) $(DRD_CFLAGS)
152vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_DEPENDENCIES = \
153	$(LIBREPLACEMALLOC_@VGCONF_PLATFORM_SEC_CAPS@)
154vgpreload_drd_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS      = \
155	$(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) \
156	$(LIBREPLACEMALLOC_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
157endif
158
159