diff --git a/gf180mcu/Makefile.in b/gf180mcu/Makefile.in
index 768cb12..5a71821 100644
--- a/gf180mcu/Makefile.in
+++ b/gf180mcu/Makefile.in
@@ -495,91 +495,91 @@
 pr-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_PR_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_pr | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_PR_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_PR_PATH}" ; then \
 			echo "Using existing installation of primitive library from ${GF180MCU_PR_PATH}" ; \
 		else \
 			echo "Downloading primitive library from ${GF180MCU_PR_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_PR} ${GF180MCU_PR_PATH} ${FD_PR_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_PR} ${GF180MCU_PR_PATH} $${FD_PR_COMMIT}; \
 		fi ; \
 	fi
 
 pv-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_PV_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_pv | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_PV_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_PV_PATH}" ; then \
 			echo "Using existing installation of verification library from ${GF180MCU_PV_PATH}" ; \
 		else \
 			echo "Downloading verification library from ${GF180MCU_PV_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_PV} ${GF180MCU_PV_PATH} ${FD_PV_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_PV} ${GF180MCU_PV_PATH} $${FD_PV_COMMIT}; \
 		fi ; \
 	fi
 
 io-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_IO_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_io | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_IO_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_IO_PATH}" ; then \
 			echo "Using existing installation of I/O library from ${GF180MCU_IO_PATH}" ; \
 		else \
 			echo "Downloading I/O library from ${GF180MCU_IO_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_IO} ${GF180MCU_IO_PATH} ${FD_IO_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_IO} ${GF180MCU_IO_PATH} $${FD_IO_COMMIT}; \
 		fi ; \
 	fi
 
 sc-7t-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_SC_MCU7T5V0_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_sc_mcu7t5v0 | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_SC_7T5V0_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_SC_7T5V0_PATH}" ; then \
 			echo "Using existing installation of 7-track standard cell library from ${GF180MCU_SC_7T5V0_PATH}" ; \
 		else \
 			echo "Downloading 7-track standard cell library from ${GF180MCU_SC_7T5V0_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_SC_7T5V0} ${GF180MCU_SC_7T5V0_PATH} ${FD_SC_MCU7T5V0_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_SC_7T5V0} ${GF180MCU_SC_7T5V0_PATH} $${FD_SC_MCU7T5V0_COMMIT}; \
 		fi ; \
 	fi
 
 sc-9t-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_SC_MCU9T5V0_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_sc_mcu9t5v0 | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_SC_9T5V0_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_SC_9T5V0_PATH}" ; then \
 			echo "Using existing installation of 9-track standard cell library from ${GF180MCU_SC_9T5V0_PATH}" ; \
 		else \
 			echo "Downloading 9-track standard cell library from ${GF180MCU_SC_9T5V0_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_SC_9T5V0} ${GF180MCU_SC_9T5V0_PATH} ${FD_SC_MCU9T5V0_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_SC_9T5V0} ${GF180MCU_SC_9T5V0_PATH} $${FD_SC_MCU9T5V0_COMMIT}; \
 		fi ; \
 	fi
 
 sram-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		FD_IP_SRAM_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_fd_ip_sram | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_SRAM_PATH}" ; then \
 			echo "Using existing installation of primitive library from ${GF180MCU_SRAM_PATH}" ; \
 		else \
 			echo "Downloading primitive library from ${GF180MCU_SRAM_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_SRAM} ${GF180MCU_SRAM_PATH} ${FD_IP_SRAM_COMMIT}; \
+			../scripts/download.sh ${PDK_LIB_SRAM} ${GF180MCU_SRAM_PATH} $${FD_IP_SRAM_COMMIT}; \
 		fi ; \
 	fi
 
 osu-sc-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		OSU_SC_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_osu_sc_gf12t3v3 | grep -v COMMIT | cut -d'"' -f4` ; \
-	fi
+	fi ; \
 	if test "x${GF180MCU_OSU_SC_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_OSU_SC_PATH}" ; then \
 			echo "Using existing installation of OSU 3.3V standard cell library from ${GF180MCU_OSU_SC_PATH}" ; \
 		else \
 			echo "Downloading OSU 3.3V standard cell library from ${GF180MCU_OSU_SC_PATH}" ; \
-			../scripts/download.sh ${PDK_LIB_OSU_SC} ${GF180MCU_OSU_SC_PATH} ${OSU_SC_COMMIT} ; \
+			../scripts/download.sh ${PDK_LIB_OSU_SC} ${GF180MCU_OSU_SC_PATH} $${OSU_SC_COMMIT} ; \
 		fi ; \
 	fi
 
