-test_randomdecl_SOURCES = test/randomdecl.c test/declgen.c
-test_randomdecl_LDADD = $(TEST_LIBS)
-$(test_randomdecl_OBJECTS): $(gnulib_headers)
-
-test_crossparse_LDADD = $(TEST_LIBS)
-$(test_crossparse_OBJECTS): $(gnulib_headers)
-
-test_normalize_LDADD = src/output.lo src/normalize.lo $(TEST_LIBS)
-$(test_normalize_OBJECTS): $(gnulib_headers)
-
-test_rng_test_LDADD = $(TEST_LIBS)
-$(test_rng_test_OBJECTS): $(gnulib_headers)
-EXTRA_DIST += test/xos256p.c
-
-src/parse.lo: src/scan.h
-src/scan.lo: src/parse.h
-src/parse-decl.lo: src/scan.h src/parse.h src/typemap.h
-src/output.lo: src/specstr.h
-test/declgen.$(OBJEXT): test/typegen.h
+t_randomdecl_SOURCES = t/randomdecl.c t/declgen.c
+t_randomdecl_LDADD = $(TEST_LIBS)
+$(t_randomdecl_OBJECTS): $(gnulib_headers)
+
+t_crossparse_LDADD = $(TEST_LIBS)
+$(t_crossparse_OBJECTS): $(gnulib_headers)
+
+t_normalize_LDADD = src/normalize.lo $(TEST_LIBS)
+$(t_normalize_OBJECTS): $(gnulib_headers)
+
+t_rng_test_LDADD = $(TEST_LIBS)
+$(t_rng_test_OBJECTS): $(gnulib_headers)
+EXTRA_DIST += t/xos256p.c
+
+check_PROGRAMS += t/rendertest
+t_rendertest_LDADD = $(TEST_LIBS)
+$(t_rendertest_OBJECTS): $(gnulib_headers)
+
+check_PROGRAMS += t/scantest
+t_scantest_LDADD = src/scan.lo src/parse.lo src/keywords.lo $(TEST_LIBS)
+$(t_scantest_OBJECTS): $(gnulib_headers) src/scan.h src/parse.h
+
+EXTRA_LIBRARIES += t/libmemwrap.a
+t_libmemwrap_a_SOURCES = t/memwrap.c
+$(t_libmemwrap_a_OBJECTS): $(gnulib_headers)
+
+EXTRA_LIBRARIES += t/liberrtest.a
+t_liberrtest_a_SOURCES = src/error.c
+t_liberrtest_a_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_MALLOC_HOOK
+t_liberrtest_a_SHORTNAME = t
+$(t_liberrtest_a_OBJECTS): $(gnulib_headers)
+
+check_PROGRAMS += t/errthread
+EXTRA_t_errthread_DEPENDENCIES = $(t_liberrtest_a_OBJECTS) \
+ $(t_libmemwrap_a_OBJECTS) \
+ src/output.lo $(shared_gl_objects)
+t_errthread_LDADD = $(EXTRA_t_errthread_DEPENDENCIES) \
+ libtest.a $(LTLIBINTL) $(LIBMULTITHREAD)
+$(t_errthread_OBJECTS): $(gnulib_headers) src/errmsg.h
+
+src/error.lo: src/errmsg.h
+src/keywords.lo: src/parse.h
+src/output.lo: src/parse.h src/specstr.h
+src/parse-decl.lo: src/scan.h src/parse.h src/typemap.h src/errmsg.h
+src/parse.lo: src/scan.h src/errmsg.h
+src/scan.lo: src/parse.h src/errmsg.h
+t/declgen.$(OBJEXT): t/typegen.h
+t/cdeclerr.$(OBJEXT): src/errmsg.h
+
+check_PROGRAMS += t/cdeclerr
+t_cdeclerr_SOURCES = t/cdeclerr.c
+EXTRA_t_cdeclerr_DEPENDENCIES = src/error.lo src/output.lo $(shared_gl_objects)
+t_cdeclerr_LDADD = $(EXTRA_t_cdeclerr_DEPENDENCIES) \
+ libtest.a $(LTLIBINTL) $(LIBTHREAD)
+$(t_cdeclerr_OBJECTS): $(gnulib_headers)