diff --git a/fpga/makefile b/fpga/makefile
index be5892e1250da874a4f21f2814d3058cacfae601..e13f1daa6c031f6124573e756e422bd305016875 100644
--- a/fpga/makefile
+++ b/fpga/makefile
@@ -47,7 +47,7 @@ TCL_OUTPUT_FILELIST  := $(TCL_FLIST_DIR)/gen_flist.tcl
 NANOSOC_FPGA_FLOW_DIR := $(SOCLABS_NANOSOC_TECH_DIR)/fpga
 
 # NanoSoC Defines File
-NANOSOC_DEFINES      ?= $(NANOSOC_FPGA_FLOW_DIR)/nanosoc_defines.tcl
+NANOSOC_DEFINES_FILE  ?= $(NANOSOC_FPGA_FLOW_DIR)/nanosoc_defines.tcl
 
 # Directory to look for FPGA specific implementation files
 TARGET_DIR            ?= $(NANOSOC_FPGA_FLOW_DIR)/targets/$(BOARD_NAME)
@@ -72,6 +72,10 @@ else
 	ACCELERATOR_SUBSYSTEM = 0
 endif
 
+# Compile Testcodes and Bootrom
+code:
+	@$(MAKE) -C $(SOCLABS_NANOSOC_TECH_DIR) code
+
 # Generate TCL filelist from flists
 nanosoc_flist:
 	@mkdir -p $(TCL_FLIST_DIR)
@@ -80,11 +84,11 @@ nanosoc_flist:
 
 # Package NanoSoC Socket Components
 package_socket:
-	$(MAKE) -C $(SOCLABS_SOCDEBUG_TECH_DIR)/fpga package_socket IMP_SOCKET_DIR=$(IMP_SOCKET_DIR) RTL_SOCKET_DIR=$(RTL_SOCKET_DIR)
+	@$(MAKE) -C $(SOCLABS_SOCDEBUG_TECH_DIR)/fpga package_socket IMP_SOCKET_DIR=$(IMP_SOCKET_DIR) RTL_SOCKET_DIR=$(RTL_SOCKET_DIR)
 
 # Environment Variables for Packaging NanoSoC
 package_nanosoc: export FPGA_COMPONENT_FILELIST = $(TCL_OUTPUT_FILELIST)
-package_nanosoc: export FPGA_COMPONENT_DEFINES  = $(NANOSOC_DEFINES)
+package_nanosoc: export FPGA_COMPONENT_DEFINES  = $(NANOSOC_DEFINES_FILE)
 package_nanosoc: export FPGA_COMPONENT_LIB      = $(IMP_NANOSOC_DIR)
 package_nanosoc: export FPGA_ACCELERATOR        = $(ACCELERATOR_SUBSYSTEM)
 package_nanosoc: export FPGA_DESIGN_TOP         = $(FPGA_TOP)
@@ -92,7 +96,7 @@ package_nanosoc: export FPGA_VENDOR             = $(VENDOR)
 package_nanosoc: export FPGA_CORE_REV           = $(NANOSOC_CORE_REV)
 
 # Package NanoSoC IP
-package_nanosoc: nanosoc_flist
+package_nanosoc: code nanosoc_flist
 	@echo Packaging NanoSoC
 	@mkdir -p $(RUN_DIR)
 	@cd $(RUN_DIR); vivado -mode batch -source $(SOCLABS_SOCTOOLS_FLOW_DIR)/resources/fpga/package_component.tcl
@@ -119,8 +123,17 @@ build_nanosoc_design:
 	@cp $(RUN_DIR)/vivado.log $(TARGET_DIR)
 	@echo Built NanoSoC Design
 
+# Move Output Files 
+output_nanosoc_design:
+	@echo Moving NanoSoC Design Files
+	@unzip -u -o $(PROJECT_DIR)/$(DESIGN_NAME).xsa -d $(PROJECT_DIR)/export
+	@mkdir -p $(OUTPUT_DIR)
+	@cp -p $(PROJECT_DIR)/export/$(DESIGN_NAME).bit $(OUTPUT_DIR)
+	@cp -p $(PROJECT_DIR)/export/$(DESIGN_NAME).hwh $(OUTPUT_DIR)
+	
 # Build NanoSoC Design Flow
-build_fpga: clean_fpga package_socket package_nanosoc build_nanosoc_design
+build_fpga: clean_fpga package_socket package_nanosoc build_nanosoc_design output_nanosoc_design
+	@echo NanoSOC Design Complete
 
 # Clean FPGA Run
 clean_fpga: