diff --git a/Makefile b/Makefile
index a8f9c79cb5efdd8ed316af5e45d4245943ed1e07..ebf6e363ede48ee5e033ba80279287310b56e1bc 100644
--- a/Makefile
+++ b/Makefile
@@ -5,10 +5,10 @@ PYTHONFILES := eval.py plot.py parse_results.py plot_tail_latency.py plot_utils.
 all: servers clients
 
 servers:
-	make -C servers/
+	$(MAKE) -C servers/
 
 clients:
-	make -C clients/
+	$(MAKE) -C clients/
 
 check: check-pylint check-format
 
@@ -30,8 +30,8 @@ clean-emper:
 	git -C emper/ worktree prune
 
 clean: clean-emper
-	make -C servers clean
-	make -C clients clean
+	$(MAKE) -C servers clean
+	$(MAKE) -C clients clean
 
 eval: all
 	./eval.py
diff --git a/clients/Makefile b/clients/Makefile
index 2d378d67419abf168bddb03b274cfbfc62832188..cc92c6d00a60d1e0135e1f98871ba70c347d76c2 100644
--- a/clients/Makefile
+++ b/clients/Makefile
@@ -2,16 +2,20 @@ CLIENT_MAKEFILES = $(shell dirname $(shell find . -name Makefile -not -path "./M
 
 .PHONY: all clean rust_echo_bench rust_echo_bench-clean $(CLIENT_MAKEFILES)
 
+ifneq (,$(findstring s,$(MAKEFLAGS)))
+CARGO_SILENT:=-q
+endif
+
 all: rust_echo_bench $(CLIENT_MAKEFILES)
 
 rust_echo_bench:
-	cd rust_echo_bench && cargo build --release
+	cd rust_echo_bench && cargo build --release $(CARGO_SILENT)
 
 rust_echo_bench-clean:
 	cd rust_echo_bench && cargo clean
 
 clean: rust_echo_bench-clean
-	for mf in $(CLIENT_MAKEFILES); do make -C $${mf} clean; done
+	for mf in $(CLIENT_MAKEFILES); do $(MAKE) -C $${mf} clean; done
 
 $(CLIENT_MAKEFILES):                                                            
 	$(MAKE) -C $@  
diff --git a/servers/Makefile b/servers/Makefile
index ba4bd38411e69d32d898cf4646b85110c3eb6c35..978c7024e0de2393c2df4897ea06e5bb6083024a 100644
--- a/servers/Makefile
+++ b/servers/Makefile
@@ -6,10 +6,10 @@ SERVER_MAKEFILES = $(shell dirname $(shell find ./ -name Makefile -not -path "./
 all: $(SERVER_MAKEFILES)
 
 clean:
-	for mf in $(SERVER_MAKEFILES) burak; do make -C $${mf} clean; done
+	for mf in $(SERVER_MAKEFILES) burak; do $(MAKE) -C $${mf} clean; done
 
 burak:
-	make -C burak/ release
+	$(MAKE) -C burak/ release
 
 $(SERVER_MAKEFILES):
 	$(MAKE) -C $@
diff --git a/servers/tokio-echo/Makefile b/servers/tokio-echo/Makefile
index 480c85dcd8149e3f6c87275fc7f7bc2d1858d494..3f2bffc296b362eaaca1838a18cdb02f29001db8 100644
--- a/servers/tokio-echo/Makefile
+++ b/servers/tokio-echo/Makefile
@@ -1,7 +1,11 @@
 .PHONY: all clean
 
+ifneq (,$(findstring s,$(MAKEFLAGS)))
+CARGO_SILENT:=-q
+endif
+
 all:
-	cargo build --release
+	cargo build --release $(CARGO_SILENT)
 
 clean:
 	cargo clean