-tcp_banger2_LDADD = -L$(top_builddir)/lib -lmiscutil
-DEBUG_SOURCE = test_tools.cc
-debug_SOURCES = debug.cc $(DEBUG_SOURCE)
-ESIExpressions_SOURCES = ESIExpressions.cc $(DEBUG_SOURCE)
+tcp_banger2_LDADD = $(top_builddir)/lib/libmiscutil.la
+
+#do not include stub_libmem.cc here, as it would override libmem.la in
+# several tests whose purpose is testing libmem itself.
+STUBS = \
+ stub_cbdata.cc \
+ stub_debug.cc \
+ stub_MemBuf.cc \
+ stub_SBuf.cc \
+ stub_tools.cc \
+ stub_fatal.cc \
+ STUB.h
+DEBUG_SOURCE = test_tools.cc $(STUBS)
+CLEANFILES += $(STUBS) stub_libmem.cc
+
+stub_cbdata.cc: $(top_srcdir)/src/tests/stub_cbdata.cc
+ cp $(top_srcdir)/src/tests/stub_cbdata.cc $@
+
+stub_debug.cc: $(top_srcdir)/src/tests/stub_debug.cc
+ cp $(top_srcdir)/src/tests/stub_debug.cc $@
+
+stub_MemBuf.cc: $(top_srcdir)/src/tests/stub_MemBuf.cc
+ cp $(top_srcdir)/src/tests/stub_MemBuf.cc $@
+
+stub_SBuf.cc: $(top_srcdir)/src/tests/stub_SBuf.cc
+ cp $(top_srcdir)/src/tests/stub_SBuf.cc $@
+
+stub_tools.cc: $(top_srcdir)/src/tests/stub_tools.cc
+ cp $(top_srcdir)/src/tests/stub_tools.cc $@
+
+stub_fatal.cc: $(top_srcdir)/src/tests/stub_fatal.cc
+ cp $(top_srcdir)/src/tests/stub_fatal.cc $@
+
+stub_libmem.cc: $(top_srcdir)/src/tests/stub_libmem.cc STUB.h
+ cp $(top_srcdir)/src/tests/stub_libmem.cc $@
+
+STUB.h: $(top_srcdir)/src/tests/STUB.h
+ cp $(top_srcdir)/src/tests/STUB.h $@
+
+## XXX: somewhat broken. Its meant to test our debugs() implementation.
+## but it has never been linked to the actual src/debug.cc implementation !!
+## all it tests are the stream operators and macro in src/Debug.h
+debug_SOURCES = \
+ $(DEBUG_SOURCE) \
+ debug.cc \
+ stub_libmem.cc
+
+ESIExpressions_SOURCES = \
+ $(DEBUG_SOURCE) \
+ ESIExpressions.cc \
+ stub_libmem.cc