1# mpatrol
2# A library for controlling and tracing dynamic memory allocations.
3# Copyright (C) 1997-2002 Graeme S. Roy <graeme.roy@analog.com>
4#
5# This library is free software; you can redistribute it and/or
6# modify it under the terms of the GNU Library General Public
7# License as published by the Free Software Foundation; either
8# version 2 of the License, or (at your option) any later version.
9#
10# This library is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13# Library General Public License for more details.
14#
15# You should have received a copy of the GNU Library General Public
16# License along with this library; if not, write to the Free
17# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18# MA 02111-1307, USA.
19
20
21# GNU Makefile to compile on Windows with EPC C++ Netware Cross-Compiler
22
23
24# $Id: Makefile,v 1.60 2002/01/08 20:40:15 graeme Exp $
25
26
27# Definitions
28
29SHELL = sh
30CC    = nc++
31AR    = nc++
32
33SOURCE = ../../src
34TOOLS  = ../../tools
35VPATH  = $(SOURCE):$(TOOLS)
36
37CFLAGS = -I$(SOURCE) -I$(TOOLS)
38OFLAGS = -O
39TFLAGS = -DMP_THREADS_SUPPORT
40
41MPATROL	= mpatrol
42MPALLOC	= mpalloc
43MPTOOLS	= mptools
44
45MPTOBJS	 = list.obj tree.obj slots.obj utils.obj memory.obj heap.obj alloc.obj \
46	   info.obj stack.obj addr.obj strtab.obj symbol.obj signals.obj \
47	   diag.obj option.obj leaktab.obj profile.obj trace.obj inter.obj \
48	   version.obj
49MPTTOBJS = list.ts.obj tree.ts.obj slots.ts.obj utils.ts.obj memory.ts.obj \
50	   heap.ts.obj alloc.ts.obj info.ts.obj stack.ts.obj addr.ts.obj \
51	   strtab.ts.obj symbol.ts.obj signals.ts.obj mutex.ts.obj diag.ts.obj \
52	   option.ts.obj leaktab.ts.obj profile.ts.obj trace.ts.obj \
53	   inter.ts.obj version.ts.obj
54MPAOBJS	 = mpalloc.obj mpfailure.obj mpsetfail.obj mpmalloc.obj mpcalloc.obj \
55	   mpstrdup.obj mprealloc.obj
56MPLOBJS	 = dbmalloc.obj dmalloc.obj heapdiff.obj mgauge.obj mtrace.obj
57
58ARCHIVE_MPATROL	= $(MPATROL).lib
59OBJECT_MPATROL	= lib$(MPATROL).obj
60ARCHTS_MPATROL	= $(MPATROL)mt.lib
61OBJTS_MPATROL	= lib$(MPATROL)mt.obj
62
63ARCHIVE_MPALLOC	= $(MPALLOC).lib
64OBJECT_MPALLOC	= lib$(MPALLOC).obj
65
66ARCHIVE_MPTOOLS	= $(MPTOOLS).lib
67
68
69# Rules
70
71.SUFFIXES: .c .obj .ts.obj
72
73.c.obj:
74	$(CC) $(CFLAGS) $(OFLAGS) -c $<
75
76.c.ts.obj:
77	$(CC) $(CFLAGS) $(OFLAGS) $(TFLAGS) -c -o $@ $<
78
79$(ARCHIVE_MPATROL): $(MPTOBJS)
80	$(AR) -xar -o $@ $(MPTOBJS)
81
82$(OBJECT_MPATROL): $(SOURCE)/library.c
83	$(CC) $(CFLAGS) $(OFLAGS) -c -o $@ $<
84
85$(ARCHTS_MPATROL): $(MPTTOBJS)
86	$(AR) -xar -o $@ $(MPTTOBJS)
87
88$(OBJTS_MPATROL): $(SOURCE)/library.c
89	$(CC) $(CFLAGS) $(OFLAGS) $(TFLAGS) -c -o $@ $<
90
91$(ARCHIVE_MPALLOC): $(MPAOBJS)
92	$(AR) -xar -o $@ $(MPAOBJS)
93
94$(OBJECT_MPALLOC): $(SOURCE)/library2.c
95	$(CC) $(CFLAGS) $(OFLAGS) -c -o $@ $<
96
97$(ARCHIVE_MPTOOLS): $(MPLOBJS)
98	$(AR) -xar -o $@ $(MPLOBJS)
99
100mpatrol.nlm: mpatrol.obj getopt.obj version.obj
101	$(CC) $(CFLAGS) $(OFLAGS) -o $@ mpatrol.obj getopt.obj version.obj
102
103mprof.nlm: mprof.obj graph.obj getopt.obj list.obj tree.obj version.obj
104	$(CC) $(CFLAGS) $(OFLAGS) -o $@ mprof.obj graph.obj getopt.obj list.obj tree.obj version.obj
105
106mptrace.nlm: mptrace.obj getopt.obj tree.obj slots.obj utils.obj version.obj
107	$(CC) $(CFLAGS) $(OFLAGS) -o $@ mptrace.obj getopt.obj tree.obj slots.obj utils.obj version.obj
108
109mleak.nlm: mleak.obj getopt.obj tree.obj version.obj
110	$(CC) $(CFLAGS) $(OFLAGS) -o $@ mleak.obj getopt.obj tree.obj version.obj
111
112all: $(ARCHIVE_MPATROL) $(ARCHTS_MPATROL) $(ARCHIVE_MPALLOC) \
113	$(ARCHIVE_MPTOOLS) mpatrol.nlm mprof.nlm mptrace.nlm mleak.nlm
114
115clean:
116	-@ rm -f $(MPTOBJS) $(MPTTOBJS) 2>&1 >/dev/null
117	-@ rm -f $(MPAOBJS) $(MPLOBJS) 2>&1 >/dev/null
118	-@ rm -f mpatrol.obj mprof.obj mptrace.obj mleak.obj graph.obj getopt.obj 2>&1 >/dev/null
119
120clobber: clean
121	-@ rm -f $(ARCHIVE_MPATROL) $(ARCHTS_MPATROL) 2>&1 >/dev/null
122	-@ rm -f $(OBJECT_MPATROL) $(OBJTS_MPATROL) 2>&1 >/dev/null
123	-@ rm -f $(ARCHIVE_MPALLOC) $(OBJECT_MPALLOC) 2>&1 >/dev/null
124	-@ rm -f $(ARCHIVE_MPTOOLS) 2>&1 >/dev/null
125	-@ rm -f mpatrol.nlm mprof.nlm mptrace.nlm mleak.nlm 2>&1 >/dev/null
126
127
128# Dependencies
129
130list.obj list.ts.obj: $(SOURCE)/list.c $(SOURCE)/list.h $(SOURCE)/config.h \
131	$(SOURCE)/target.h
132tree.obj tree.ts.obj: $(SOURCE)/tree.c $(SOURCE)/tree.h $(SOURCE)/config.h \
133	$(SOURCE)/target.h
134slots.obj slots.ts.obj: $(SOURCE)/slots.c $(SOURCE)/slots.h $(SOURCE)/config.h \
135	$(SOURCE)/target.h $(SOURCE)/utils.h
136utils.obj utils.ts.obj: $(SOURCE)/utils.c $(SOURCE)/utils.h $(SOURCE)/config.h \
137	$(SOURCE)/target.h
138memory.obj memory.ts.obj: $(SOURCE)/memory.c $(SOURCE)/memory.h \
139	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/stack.h \
140	$(SOURCE)/utils.h
141heap.obj heap.ts.obj: $(SOURCE)/heap.c $(SOURCE)/heap.h $(SOURCE)/config.h \
142	$(SOURCE)/target.h $(SOURCE)/memory.h $(SOURCE)/slots.h \
143	$(SOURCE)/tree.h $(SOURCE)/trace.h $(SOURCE)/utils.h
144alloc.obj alloc.ts.obj: $(SOURCE)/alloc.c $(SOURCE)/alloc.h $(SOURCE)/config.h \
145	$(SOURCE)/target.h $(SOURCE)/heap.h $(SOURCE)/memory.h \
146	$(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h $(SOURCE)/utils.h
147info.obj: $(SOURCE)/info.c $(SOURCE)/info.h $(SOURCE)/config.h \
148	$(SOURCE)/target.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
149	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
150	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
151	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/diag.h \
152	$(SOURCE)/utils.h $(SOURCE)/profile.h $(SOURCE)/trace.h \
153	$(SOURCE)/leaktab.h
154info.ts.obj: $(SOURCE)/info.c $(SOURCE)/info.h $(SOURCE)/config.h \
155	$(SOURCE)/target.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
156	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
157	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
158	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/diag.h \
159	$(SOURCE)/mutex.h $(SOURCE)/utils.h $(SOURCE)/profile.h \
160	$(SOURCE)/trace.h $(SOURCE)/leaktab.h
161stack.obj stack.ts.obj: $(SOURCE)/stack.c $(SOURCE)/stack.h $(SOURCE)/memory.h \
162	$(SOURCE)/machine.h $(SOURCE)/config.h $(SOURCE)/target.h
163addr.obj addr.ts.obj: $(SOURCE)/addr.c $(SOURCE)/addr.h $(SOURCE)/config.h \
164	$(SOURCE)/target.h $(SOURCE)/heap.h $(SOURCE)/memory.h \
165	$(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h $(SOURCE)/stack.h \
166	$(SOURCE)/utils.h
167strtab.obj strtab.ts.obj: $(SOURCE)/strtab.c $(SOURCE)/strtab.h \
168	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/heap.h \
169	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
170	$(SOURCE)/utils.h
171symbol.obj symbol.ts.obj: $(SOURCE)/symbol.c $(SOURCE)/symbol.h \
172	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/heap.h \
173	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h \
174	$(SOURCE)/strtab.h $(SOURCE)/diag.h $(SOURCE)/info.h $(SOURCE)/addr.h \
175	$(SOURCE)/list.h $(SOURCE)/stack.h $(SOURCE)/alloc.h \
176	$(SOURCE)/signals.h $(SOURCE)/utils.h $(SOURCE)/profile.h \
177	$(SOURCE)/trace.h $(SOURCE)/leaktab.h
178signals.obj: $(SOURCE)/signals.c $(SOURCE)/signals.h $(SOURCE)/config.h \
179	$(SOURCE)/target.h $(SOURCE)/diag.h $(SOURCE)/info.h $(SOURCE)/addr.h \
180	$(SOURCE)/heap.h $(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h \
181	$(SOURCE)/list.h $(SOURCE)/stack.h $(SOURCE)/alloc.h \
182	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/inter.h \
183	$(SOURCE)/profile.h $(SOURCE)/trace.h $(SOURCE)/leaktab.h
184signals.ts.obj: $(SOURCE)/signals.c $(SOURCE)/signals.h $(SOURCE)/config.h \
185	$(SOURCE)/target.h $(SOURCE)/diag.h $(SOURCE)/info.h $(SOURCE)/addr.h \
186	$(SOURCE)/heap.h $(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h \
187	$(SOURCE)/list.h $(SOURCE)/stack.h $(SOURCE)/alloc.h \
188	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/inter.h \
189	$(SOURCE)/profile.h $(SOURCE)/trace.h $(SOURCE)/leaktab.h \
190	$(SOURCE)/mutex.h
191mutex.ts.obj: $(SOURCE)/mutex.c $(SOURCE)/mutex.h $(SOURCE)/config.h \
192	$(SOURCE)/target.h
193diag.obj: $(SOURCE)/diag.c $(SOURCE)/diag.h $(SOURCE)/config.h \
194	$(SOURCE)/target.h $(SOURCE)/info.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
195	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
196	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
197	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/utils.h \
198	$(SOURCE)/profile.h $(SOURCE)/trace.h $(SOURCE)/leaktab.h \
199	$(SOURCE)/version.h
200diag.ts.obj: $(SOURCE)/diag.c $(SOURCE)/diag.h $(SOURCE)/config.h \
201	$(SOURCE)/target.h $(SOURCE)/info.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
202	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
203	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
204	$(SOURCE)/mutex.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
205	$(SOURCE)/utils.h $(SOURCE)/profile.h $(SOURCE)/trace.h \
206	$(SOURCE)/leaktab.h $(SOURCE)/version.h
207option.obj option.ts.obj: $(SOURCE)/option.c $(SOURCE)/option.h \
208	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/info.h \
209	$(SOURCE)/addr.h $(SOURCE)/heap.h $(SOURCE)/memory.h $(SOURCE)/slots.h \
210	$(SOURCE)/tree.h $(SOURCE)/list.h $(SOURCE)/stack.h $(SOURCE)/alloc.h \
211	$(SOURCE)/signals.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
212	$(SOURCE)/diag.h $(SOURCE)/utils.h $(SOURCE)/profile.h \
213	$(SOURCE)/trace.h $(SOURCE)/leaktab.h
214leaktab.obj leaktab.ts.obj: $(SOURCE)/leaktab.c $(SOURCE)/leaktab.h \
215	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/list.h \
216	$(SOURCE)/heap.h $(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h \
217	$(SOURCE)/utils.h
218profile.obj profile.ts.obj: $(SOURCE)/profile.c $(SOURCE)/profile.h \
219	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/alloc.h \
220	$(SOURCE)/heap.h $(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h \
221	$(SOURCE)/list.h $(SOURCE)/info.h $(SOURCE)/addr.h $(SOURCE)/stack.h \
222	$(SOURCE)/signals.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
223	$(SOURCE)/diag.h $(SOURCE)/utils.h $(SOURCE)/trace.h \
224	$(SOURCE)/leaktab.h $(SOURCE)/version.h
225trace.obj trace.ts.obj: $(SOURCE)/trace.c $(SOURCE)/trace.h $(SOURCE)/config.h \
226	$(SOURCE)/target.h $(SOURCE)/memory.h $(SOURCE)/diag.h \
227	$(SOURCE)/info.h $(SOURCE)/alloc.h $(SOURCE)/heap.h $(SOURCE)/slots.h \
228	$(SOURCE)/tree.h $(SOURCE)/list.h $(SOURCE)/addr.h $(SOURCE)/stack.h \
229	$(SOURCE)/profile.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
230	$(SOURCE)/signals.h $(SOURCE)/leaktab.h $(SOURCE)/utils.h \
231	$(SOURCE)/version.h
232inter.obj: $(SOURCE)/inter.c $(SOURCE)/inter.h $(SOURCE)/config.h \
233	$(SOURCE)/target.h $(SOURCE)/info.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
234	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
235	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
236	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/diag.h \
237	$(SOURCE)/option.h $(SOURCE)/profile.h $(SOURCE)/trace.h \
238	$(SOURCE)/leaktab.h $(SOURCE)/machine.h $(SOURCE)/version.h
239inter.ts.obj: $(SOURCE)/inter.c $(SOURCE)/inter.h $(SOURCE)/config.h \
240	$(SOURCE)/target.h $(SOURCE)/info.h $(SOURCE)/addr.h $(SOURCE)/heap.h \
241	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
242	$(SOURCE)/stack.h $(SOURCE)/alloc.h $(SOURCE)/signals.h \
243	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/diag.h \
244	$(SOURCE)/mutex.h $(SOURCE)/option.h $(SOURCE)/profile.h \
245	$(SOURCE)/trace.h $(SOURCE)/leaktab.h $(SOURCE)/machine.h \
246	$(SOURCE)/version.h
247version.obj version.ts.obj: $(SOURCE)/version.c $(SOURCE)/version.h \
248	$(SOURCE)/config.h $(SOURCE)/target.h
249mpalloc.obj: $(SOURCE)/mpalloc.c $(SOURCE)/inter.h $(SOURCE)/config.h \
250	$(SOURCE)/target.h $(SOURCE)/info.h $(SOURCE)/alloc.h $(SOURCE)/heap.h \
251	$(SOURCE)/memory.h $(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h \
252	$(SOURCE)/addr.h $(SOURCE)/stack.h $(SOURCE)/profile.h \
253	$(SOURCE)/symbol.h $(SOURCE)/strtab.h $(SOURCE)/trace.h \
254	$(SOURCE)/leaktab.h $(SOURCE)/signals.h $(SOURCE)/diag.h \
255	$(SOURCE)/mpalloc.h $(SOURCE)/version.h
256mpfailure.obj: $(SOURCE)/mpfailure.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
257	$(SOURCE)/target.h
258mpsetfail.obj: $(SOURCE)/mpsetfail.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
259	$(SOURCE)/target.h
260mpmalloc.obj: $(SOURCE)/mpmalloc.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
261	$(SOURCE)/target.h
262mpcalloc.obj: $(SOURCE)/mpcalloc.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
263	$(SOURCE)/target.h
264mpstrdup.obj: $(SOURCE)/mpstrdup.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
265	$(SOURCE)/target.h
266mprealloc.obj: $(SOURCE)/mprealloc.c $(SOURCE)/mpalloc.h $(SOURCE)/config.h \
267	$(SOURCE)/target.h
268$(OBJECT_MPATROL): $(SOURCE)/library.c $(SOURCE)/config.h $(SOURCE)/target.h \
269	$(SOURCE)/list.c $(SOURCE)/list.h $(SOURCE)/tree.c $(SOURCE)/tree.h \
270	$(SOURCE)/slots.c $(SOURCE)/slots.h $(SOURCE)/utils.h \
271	$(SOURCE)/utils.c $(SOURCE)/memory.c $(SOURCE)/memory.h \
272	$(SOURCE)/stack.h $(SOURCE)/heap.c $(SOURCE)/heap.h $(SOURCE)/alloc.c \
273	$(SOURCE)/alloc.h $(SOURCE)/info.c $(SOURCE)/info.h $(SOURCE)/addr.h \
274	$(SOURCE)/signals.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
275	$(SOURCE)/diag.h $(SOURCE)/stack.c $(SOURCE)/addr.c $(SOURCE)/strtab.c \
276	$(SOURCE)/symbol.c $(SOURCE)/signals.c $(SOURCE)/inter.h \
277	$(SOURCE)/diag.c $(SOURCE)/version.h $(SOURCE)/option.c \
278	$(SOURCE)/option.h $(SOURCE)/inter.c $(SOURCE)/leaktab.c \
279	$(SOURCE)/leaktab.h $(SOURCE)/profile.c $(SOURCE)/profile.h \
280	$(SOURCE)/trace.c $(SOURCE)/trace.h $(SOURCE)/machine.h \
281	$(SOURCE)/version.c
282$(OBJTS_MPATROL): $(SOURCE)/library.c $(SOURCE)/config.h $(SOURCE)/target.h \
283	$(SOURCE)/list.c $(SOURCE)/list.h $(SOURCE)/tree.c $(SOURCE)/tree.h \
284	$(SOURCE)/slots.c $(SOURCE)/slots.h $(SOURCE)/utils.h \
285	$(SOURCE)/utils.c $(SOURCE)/memory.c $(SOURCE)/memory.h \
286	$(SOURCE)/stack.h $(SOURCE)/heap.c $(SOURCE)/heap.h $(SOURCE)/alloc.c \
287	$(SOURCE)/alloc.h $(SOURCE)/info.c $(SOURCE)/info.h $(SOURCE)/addr.h \
288	$(SOURCE)/signals.h $(SOURCE)/symbol.h $(SOURCE)/strtab.h \
289	$(SOURCE)/diag.h $(SOURCE)/mutex.h $(SOURCE)/stack.c $(SOURCE)/addr.c \
290	$(SOURCE)/strtab.c $(SOURCE)/symbol.c $(SOURCE)/signals.c \
291	$(SOURCE)/inter.h $(SOURCE)/mutex.c $(SOURCE)/diag.c \
292	$(SOURCE)/version.h $(SOURCE)/option.c $(SOURCE)/option.h \
293	$(SOURCE)/inter.c $(SOURCE)/leaktab.c $(SOURCE)/leaktab.h \
294	$(SOURCE)/profile.c $(SOURCE)/profile.h $(SOURCE)/trace.c \
295	$(SOURCE)/trace.h $(SOURCE)/machine.h $(SOURCE)/version.c
296$(OBJECT_MPALLOC): $(SOURCE)/library2.c $(SOURCE)/config.h $(SOURCE)/target.h \
297	$(SOURCE)/mpalloc.c $(SOURCE)/inter.h $(SOURCE)/info.h \
298	$(SOURCE)/alloc.h $(SOURCE)/heap.h $(SOURCE)/memory.h \
299	$(SOURCE)/slots.h $(SOURCE)/tree.h $(SOURCE)/list.h $(SOURCE)/addr.h \
300	$(SOURCE)/stack.h $(SOURCE)/profile.h $(SOURCE)/symbol.h \
301	$(SOURCE)/strtab.h $(SOURCE)/trace.h $(SOURCE)/signals.h \
302	$(SOURCE)/diag.h $(SOURCE)/leaktab.h $(SOURCE)/mpalloc.h \
303	$(SOURCE)/mpfailure.c $(SOURCE)/mpsetfail.c $(SOURCE)/mpmalloc.c \
304	$(SOURCE)/mpcalloc.c $(SOURCE)/mpstrdup.c $(SOURCE)/mprealloc.c
305mpatrol.obj: $(SOURCE)/mpatrol.c $(SOURCE)/getopt.h $(SOURCE)/config.h \
306	$(SOURCE)/target.h $(SOURCE)/version.h
307mprof.obj: $(SOURCE)/mprof.c $(SOURCE)/getopt.h $(SOURCE)/tree.h \
308	$(SOURCE)/graph.h $(SOURCE)/list.h $(SOURCE)/config.h \
309	$(SOURCE)/target.h $(SOURCE)/version.h
310mptrace.obj: $(SOURCE)/mptrace.c $(SOURCE)/getopt.h $(SOURCE)/tree.h \
311	$(SOURCE)/slots.h $(SOURCE)/config.h $(SOURCE)/target.h \
312	$(SOURCE)/utils.h $(SOURCE)/version.h
313mleak.obj: $(SOURCE)/mleak.c $(SOURCE)/getopt.h $(SOURCE)/tree.h \
314	$(SOURCE)/config.h $(SOURCE)/target.h $(SOURCE)/version.h
315graph.obj: $(SOURCE)/graph.c $(SOURCE)/graph.h $(SOURCE)/list.h \
316	$(SOURCE)/config.h $(SOURCE)/target.h
317getopt.obj: $(SOURCE)/getopt.c $(SOURCE)/getopt.h $(SOURCE)/config.h \
318	$(SOURCE)/target.h
319dbmalloc.obj: $(TOOLS)/dbmalloc.c $(TOOLS)/dbmalloc.h $(SOURCE)/mpatrol.h \
320	$(SOURCE)/config.h $(SOURCE)/target.h
321dmalloc.obj: $(TOOLS)/dmalloc.c $(TOOLS)/dmalloc.h $(SOURCE)/mpatrol.h \
322	$(SOURCE)/config.h $(SOURCE)/target.h
323heapdiff.obj: $(TOOLS)/heapdiff.c $(TOOLS)/heapdiff.h $(SOURCE)/mpatrol.h \
324	$(SOURCE)/config.h $(SOURCE)/target.h
325mgauge.obj: $(TOOLS)/mgauge.c $(TOOLS)/mgauge.h $(SOURCE)/mpatrol.h \
326	$(SOURCE)/config.h $(SOURCE)/target.h
327mtrace.obj: $(TOOLS)/mtrace.c $(TOOLS)/mtrace.h $(SOURCE)/mpatrol.h \
328	$(SOURCE)/config.h $(SOURCE)/target.h
329