diff --git a/Makefile b/Makefile
index a2087b8dd51651d3688893bfab22c0a083203c8c..70875b53aad4fd90bd2aab9ea132f30d58b550c7 100644
--- a/Makefile
+++ b/Makefile
@@ -141,8 +141,11 @@ TESTLIBS         = -l$(LIBNAME)
 TESTSRCS_C      := $(wildcard $(TESTNAMEPREFIX)*.c)
 TESTOBJS_C      := $(patsubst %.c,%.o,$(TESTSRCS_C))
 TESTPRGS_C      := $(patsubst %.c,%,$(TESTSRCS_C))
-TESTPRGS         = $(TESTPRGS_C)
-TESTRUNS        := $(patsubst $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTPRGS))
+TESTSPRGS_C     := $(patsubst %.c,%_static,$(TESTSRCS_C))
+TESTRUNS        := $(patsubst \
+                     $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTPRGS_C))
+TESTSRUNS       := $(patsubst \
+                     $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTSPRGS_C))
 
 # Tests that are only run manually
 MANTESTDIR       = manual_tests
@@ -328,6 +331,9 @@ $(TESTOBJS_C): %.o: %.c $(ALLHEADERS)
 $(TESTPRGS_C): %: %.o $(BUILDDLIBPATH)
 	$(CC) $(TESTLDFLAGS) $< $(TESTLIBS) -o $@
 
+$(TESTSPRGS_C): %_static: %.o $(BUILDSLIBPATH)
+	$(CC) $(ALLLDFLAGS) $< $(BUILDSLIBPATH) -o $@
+
 # The "darwin_c" tests need the -fno-builtin option with some compilers.
 $(XTESTOBJS_C): %.o: %.c $(ALLHEADERS)
 	$(CC) -c -std=c99 -fno-builtin -I$(SRCINCDIR) $(CFLAGS) $< -o $@
@@ -391,6 +397,9 @@ test_faccessat_setuid_msg:
 $(TESTRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
 	$< $(TEST_ARGS)
 
+$(TESTSRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
+	$< $(TEST_ARGS)
+
 $(XTESTRUNS): $(XTESTRUNPREFIX)%: $(XTESTNAMEPREFIX)%
 	$< $(TEST_ARGS)
 
@@ -450,6 +459,8 @@ install-tiger: $(TIGERBINS)
 
 test check: $(TESTRUNS) $(XTESTRUNS) test_cmath test_faccessat_setuid_msg
 
+test_static: $(TESTSRUNS)
+
 xtest: $(XTESTRUNS)
 
 xtest_clean:
@@ -466,7 +477,7 @@ clean: $(MANRUNPREFIX)clean test_clean
 	$(RM) $(BUILDDLIBPATH) $(BUILDSLIBPATH) $(BUILDSYSLIBPATH) $(TESTPRGS) test/test_cmath_* test/test_faccessat_setuid
 	@$(RMDIR) $(BUILDDLIBDIR) $(BUILDSLIBDIR)
 
-.PHONY: all dlib syslib slib clean check test test_cmath xtest
+.PHONY: all dlib syslib slib clean check test test_cmath xtest test_static
 .PHONY: $(TESTRUNS) $(XTESTRUNS) $(MANTESTRUNS)
 .PHONY: $(MANRUNPREFIX)clean test_clean xtest_clean
 .PHONY: install install-headers install-lib install-dlib install-slib