diff --git a/Makefile b/Makefile
index 02f9f1ff8c4e511df93d18b7ea6eabfc37df4653..a957eb0e0f3063fd923a4818b3a12ba739a29914 100644
--- a/Makefile
+++ b/Makefile
@@ -28,15 +28,15 @@ else
 ifeq ($(LANGUAGE), java)
 %:
 	java -jar B2Program-all-0.1.0-SNAPSHOT.jar $(JAVA_CODE_GEN_FLAGS) -f $(DIRECTORY)/$@.mch
-	cp $(DIRECTORY)/*.java .
+	@if [ "$(DIRECTORY)" != "." ]; then cp $(DIRECTORY)/*.java .; fi
 	javac -cp .$(JAVA_DEPENDENCIES) $@.java
 	java -cp .$(JAVA_DEPENDENCIES) $@ $(STRATEGY) $(THREADS) $(CACHING)
 endif
 ifeq ($(LANGUAGE), cpp)
 %:
 	java -jar B2Program-all-0.1.0-SNAPSHOT.jar $(CPP_CODE_GEN_FLAGS) -f $(DIRECTORY)/$@.mch
-	cp $(DIRECTORY)/*.cpp .
-	$(CPPC) $(CPPFLAGS) -o $@.exec $@.cpp
+	@if [ "$(DIRECTORY)" != "." ]; then cp $(DIRECTORY)/*.cpp .; fi
+	$(CPPC) $(CPPFLAGS) -o $@.exec $@.cpp -ftemplate-depth=16000
 	./$@.exec $(STRATEGY) $(THREADS) $(CACHING)
 endif
 ifneq (,$(findstring $(LANGUAGE), rs|RS|rust|Rust))