diff --git a/Makefile b/Makefile
index 4aacb99826ba4c2bfcbdf2c6a4655a5ceb2f16fe..f5d45f5fa97359bc7f7f0c963f738bbb05dbfee0 100644
--- a/Makefile
+++ b/Makefile
@@ -178,6 +178,10 @@ CPPFLAGS += $(CPPFLAGS_$(CONFIG))
 DEFINES += $(DEFINES_$(CONFIG)) INSTALL_PREFIX=\"$(prefix)\"
 LDFLAGS += $(LDFLAGS_$(CONFIG))
 
+ifdef EXTRA_DEFINES
+DEFINES += EXTRA_DEFINES
+endif
+
 CFLAGS += -std=c89 -pedantic
 ifeq ($(HAS_CXX11),true)
 CXXFLAGS += -std=c++11
diff --git a/templates/Makefile.template b/templates/Makefile.template
index caac5037965bc1fa3fb3ed1182be60ccb828fac0..0413f19e44eff080ca56d19b0467bec19b81b58e 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -195,6 +195,10 @@ CPPFLAGS += $(CPPFLAGS_$(CONFIG))
 DEFINES += $(DEFINES_$(CONFIG)) INSTALL_PREFIX=\"$(prefix)\"
 LDFLAGS += $(LDFLAGS_$(CONFIG))
 
+ifdef EXTRA_DEFINES
+DEFINES += EXTRA_DEFINES
+endif
+
 CFLAGS += -std=c89 -pedantic
 ifeq ($(HAS_CXX11),true)
 CXXFLAGS += -std=c++11
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index fddd8eb58b7768867716b9e0b042d25ad32cf9c5..4e0ff85c59d3d80d5644d76da2bfc7f618672f77 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -201,7 +201,7 @@ make_targets = []
 languages = set(_LANGUAGES[l] for l in args.language)
 build_steps = [jobset.JobSpec(['make',
                                '-j', '%d' % (multiprocessing.cpu_count() + 1),
-                               'DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % args.slowdown,
+                               'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % args.slowdown,
                                'CONFIG=%s' % cfg] + list(set(
                                    itertools.chain.from_iterable(
                                        l.make_targets() for l in languages))))