diff --git a/examples/dynamic/Makefile b/examples/dynamic/Makefile
index 607a20a97e9bcdab4a3951690e38322c5d650af7..bbeb566252954638e1b10a350d3286fdbbbfee71 100644
--- a/examples/dynamic/Makefile
+++ b/examples/dynamic/Makefile
@@ -1,5 +1,12 @@
 all:
+	sh dynamic.sh
+	sh dynamic_type.sh
+	sh test.sh
+	sh test_type.sh
 
 clean:
+	-rm test/*.class
+	-rm encoded_data
+	-rm dynamic_out
 
-distclean:
+distclean: clean
diff --git a/test/Makefile b/test/Makefile
index a6f85c959f9e02a15be13e68a6811563d3c1f0ba..e57f3fa27f325eab6173686b84302511fcc64332 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,6 +1,8 @@
 TESTS=basic simple nested ref
 LABCOMM_JAR=../compiler/labcomm2014_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR)
+MONO_PATH=$(shell realpath ../lib/csharp)
+PYTHONPATH=$(shell realpath ../lib/python)
 
 include ../lib/c/os_compat.mk
 
@@ -20,7 +22,8 @@ test_%: gen/%/signatures.py \
 	gen/%/cs_relay.exe \
 	gen/%/java_relay.class \
 	gen/%/java_code
-	PYTHONPATH=../lib/python ./test_encoder_decoder.py \
+	PYTHONPATH=$(PYTHONPATH) MONO_PATH=$(MONO_PATH) \
+		./test_encoder_decoder.py \
 		--signatures=gen/$*/signatures.py \
 		--test tee gen/$*/testdata \
 		--test gen/$*/c_relay /dev/stdin /dev/stdout \
@@ -77,13 +80,8 @@ gen/%/cs_code.cs: %.lc Makefile | gen/%/.dir
 gen/%/cs_relay.cs:  gen/%/typeinfo relay_gen_cs.py Makefile
 	./relay_gen_cs.py $< > $@
 
-.PRECIOUS: gen/%/labcomm.dll
-gen/%/labcomm2014.dll:
-	ln -s ../../../lib/csharp/labcomm2014.dll $@
-
 .PRECIOUS: gen/%/cs_relay.exe
-gen/%/cs_relay.exe: gen/%/cs_relay.cs gen/%/cs_code.cs \
-		    gen/%/labcomm2014.dll Makefile
+gen/%/cs_relay.exe: gen/%/cs_relay.cs gen/%/cs_code.cs Makefile
 	mcs -out:$@ $(filter %.cs, $^) -lib:../lib/csharp/ -r:labcomm2014
 
 # Java relay test rules