diff --git a/makefile b/makefile
index ae44f415262a22c01eb78765d9d4c6068800b1db..598813a433d487fbed1782ae87d8c4ef05b1dab8 100644
--- a/makefile
+++ b/makefile
@@ -205,7 +205,7 @@ define mti_template
 .PHONY: $(1)
 mti_$(1):
 	@echo Starting Test $(1)
-	@timeout $(TIMEOUT) $(MAKE) -j1 run_mti TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
+	@timeout $(TIMEOUT) $$(MAKE) run_mti TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
 	@if cat $$(REGRESSION)/$(1).log | grep " TEST PASSED "; then echo "$(1): PASSED" >> $$(REGRESSION)/RESULTS.log; elif cat $$(REGRESSION)/$(1).log | grep " TEST SKIPPED "; then echo "$(1): SKIPPED"; else echo "$(1): FAILED" >> $$(REGRESSION)/RESULTS.log; fi > /dev/null
 	@echo Finished Test $(1)
 endef
@@ -214,7 +214,7 @@ define xm_template
 .PHONY: $(1)
 xm_$(1):
 	@echo Starting Test $(1)
-	@timeout $(TIMEOUT) $(MAKE) -j1 run_xm TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
+	@timeout $(TIMEOUT) $$(MAKE) -j1 run_xm TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
 	@if cat $$(REGRESSION)/$(1).log | grep " TEST PASSED "; then echo "$(1): PASSED" >> $$(REGRESSION)/RESULTS.log; elif cat $$(REGRESSION)/$(1).log | grep " TEST SKIPPED "; then echo "$(1): SKIPPED"; else echo "$(1): FAILED" >> $$(REGRESSION)/RESULTS.log; fi > /dev/null
 	@echo Finished Test $(1)
 endef
@@ -223,7 +223,7 @@ define vcs_template
 .PHONY: $(1)
 vcs_$(1):
 	@echo Starting Test $(1)
-	@timeout $(TIMEOUT) $(MAKE) -j1 run_vcs TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
+	@timeout $(TIMEOUT) $$(MAKE) -j1 run_vcs TESTNAME=$(1) > $$(REGRESSION)/$(1).log || true
 	@if cat $$(REGRESSION)/$(1).log | grep -i " TEST PASSED "; then echo "$(1): PASSED" >> $$(REGRESSION)/RESULTS.log; elif cat $$(REGRESSION)/$(1).log | grep -i " TEST SKIPPED "; then echo "$(1): SKIPPED"; else echo "$(1): FAILED" >> $$(REGRESSION)/RESULTS.log; fi > /dev/null
 	@echo Finished Test $(1)
 endef
@@ -295,12 +295,12 @@ run_xm : code compile_xm
 	@echo exit >> $(SIM_DIR)/run.tcl.tmp
 	@mv  $(SIM_DIR)/run.tcl.tmp $(SIM_DIR)/run.tcl
 	cd $(SIM_DIR); xmsim $(XMSIM_OPTIONS) -input run.tcl  | tee logs/run_$(TESTNAME).log ;
-	# @make verify
+	# @$(MAKE) verify
 
 # Run simulation in interactive mode
 sim_xm : code compile_xm
 	cd $(SIM_DIR); xmsim -gui $(XMSIM_OPTIONS)
-	# @make verify
+	# @$(MAKE) verify
 
 # ------- MTI -----------
 
@@ -362,8 +362,8 @@ regression_$(SIMULATOR): compile_$(SIMULATOR) bootrom debugtester
 	@echo --------------------------------------------
 	@echo Simulator: $(SIMULATOR)
 	@echo --------------------------------------------
-	@make -j$(PARALLEL_TESTS) all_$(SIMULATOR) REGRESSION=$(REGRESSION_DIR)
-	@make -j1 regression_results REGRESSION=$(REGRESSION_DIR)
+	@$(MAKE) -j$(PARALLEL_TESTS) all_$(SIMULATOR) REGRESSION=$(REGRESSION_DIR)
+	@$(MAKE) -j1 regression_results REGRESSION=$(REGRESSION_DIR)
 	
 defs_gen:
 	@mkdir -p $(DEFINES_DIR)
@@ -379,7 +379,7 @@ code : testcode bootrom debugtester
 # Note : The use of ls after compile allows the computing server to sync up
 bootrom:
 	@(cd $(TESTCODES_DIR)/$(BOOTLOADER) ;\
-	make all $(SW_MAKE_OPTIONS) ;\
+	$(MAKE) all $(SW_MAKE_OPTIONS) ;\
 	echo Compile done ;\
 	ls > /dev/null ;\
 	echo Copy $(BOOTLOADER).hex ;\
@@ -406,7 +406,7 @@ ifeq ($(TESTNAME),)
 endif
 	@(if [ -d "$(TESTCODES_DIR)/$(TESTNAME)" ] ; then \
 	  cd $(TESTCODES_DIR)/$(TESTNAME) ;\
-	  make all $(SW_MAKE_OPTIONS) ; \
+	  $(MAKE) all $(SW_MAKE_OPTIONS) ; \
 	  echo Compile done ;\
 	  ls > /dev/null ;\
 	  echo Copy $(TESTNAME).hex ;\
@@ -432,7 +432,7 @@ endif
 	  cd $(SIM_DIR) ;\
 	elif [ -d "$(PROJ_SW_DIR)/$(TESTNAME)" ] ; then \
 	  cd $(PROJ_SW_DIR)/$(TESTNAME) ;\
-	  make all $(SW_MAKE_OPTIONS) ; \
+	  $(MAKE) all $(SW_MAKE_OPTIONS) ; \
 	  echo Compile done ;\
 	  ls > /dev/null ;\
 	  echo Copy $(TESTNAME).hex ;\
@@ -466,7 +466,7 @@ endif
 # Note : The use of ls after compile allows the computing server to sync up
 debugtester:
 	@(cd $(NANOSOC_SW_DIR)/debug_tester ;\
-	make all $(SW_MAKE_OPTIONS) ;\
+	$(MAKE) all $(SW_MAKE_OPTIONS) ;\
 	echo Compile done ;\
 	ls > /dev/null ;\
 	echo Copy $(DEBUGTESTER)_le.hex ;\
@@ -509,7 +509,7 @@ compile_all_code: bootrom debugtester
 	  echo Compiling $$thistest   ; \
 	  echo Removing old image.hex ;\
 	  rm -f image.hex  ;\
-	  make testcode TESTNAME=$$thistest;\
+	  $(MAKE) testcode TESTNAME=$$thistest;\
 	  if [ -e $(SIM_DIR)/$$thistest/image.hex ] ; then \
             echo OK    - image.hex     created for test $$thistest ;\
 	  else \
@@ -520,24 +520,24 @@ compile_all_code: bootrom debugtester
 
 # Remove all software compilation results
 clean_all_code:
-	@(cd $(NANOSOC_SW_DIR)/debug_tester ; make clean; )
-	@(cd $(TESTCODES_DIR)/$(BOOTLOADER) ; make clean; )
+	@(cd $(NANOSOC_SW_DIR)/debug_tester ; $(MAKE) clean; )
+	@(cd $(TESTCODES_DIR)/$(BOOTLOADER) ; $(MAKE) clean; )
 	@for thistest in $(TEST_LIST) ; do \
 	  echo Cleaning $$thistest ...  ; \
 	  if [ -e $(TESTCODES_DIR)/$$thistest ]; then \
 	  	cd $(TESTCODES_DIR)/$$thistest ; \
-	  	make clean; \
+	  	$(MAKE) clean; \
 	  elif [ -e $(PROJ_SW_DIR)/$$thistest ]; then \
 	  	cd $(PROJ_SW_DIR)/$$thistest ; \
-	  	make clean; \
+	  	$(MAKE) clean; \
 	  fi \
 	done
 	@rm -rf $(BOOTROM_BUILD_DIR)
 
 # Remove only bootloader and default selected test
 clean_code:
-	@(cd $(TESTCODES_DIR)/$(BOOTLOADER) ; make clean; cd $(SIM_DIR); )
-	@(cd $(TESTCODES_DIR)/$(TESTNAME)   ; make clean; cd $(SIM_DIR); )
+	@(cd $(TESTCODES_DIR)/$(BOOTLOADER) ; $(MAKE) clean; cd $(SIM_DIR); )
+	@(cd $(TESTCODES_DIR)/$(TESTNAME)   ; $(MAKE) clean; cd $(SIM_DIR); )
 
 # ----- verification ------
 verify: