Store matcha_sw_all artifacts to out/matcha/hw

Append copy operation after the original bazel build to put the .elf and
.bin files in out/matcha/hw

It will add ~110MB of data to out/matcha/hw

Change-Id: Ifdd85bed2ef2f97992074ae4075c406fc44ba336
diff --git a/platforms/nexus/matcha_hw.mk b/platforms/nexus/matcha_hw.mk
index b630a7a..9b84896 100644
--- a/platforms/nexus/matcha_hw.mk
+++ b/platforms/nexus/matcha_hw.mk
@@ -73,10 +73,13 @@
 # Checks the matcha sw code integrity for targets not covered by the verilator
 # tests.
 #
-matcha_sw_all:
+matcha_sw_all: | $(MATCHA_OUT_DIR)
 	cd $(MATCHA_SRC_DIR) && \
 	  bazel build --define DISABLE_VERILATOR_BUILD=true --build_tag_filters="-kelvin_fpga" \
 			//sw/device/...
+	cd $(MATCHA_SRC_DIR) && \
+	  find "bazel-out/" \( -type f -name "*.elf" -o -name "*.bin" \) \
+		-exec cp -f --parents "{}" "$(MATCHA_OUT_DIR)" \;
 
 $(MATCHA_FPGA_MATCHA_BINARY_DIR):
 	mkdir -p $(MATCHA_FPGA_MATCHA_BINARY_DIR)
diff --git a/platforms/shodan/matcha_hw.mk b/platforms/shodan/matcha_hw.mk
index 8558900..c6b7dff 100644
--- a/platforms/shodan/matcha_hw.mk
+++ b/platforms/shodan/matcha_hw.mk
@@ -72,10 +72,13 @@
 # Checks the matcha sw code integrity for targets not covered by the verilator
 # tests.
 #
-matcha_sw_all:
+matcha_sw_all: | $(MATCHA_OUT_DIR)
 	cd $(MATCHA_SRC_DIR) && \
 	  bazel build --define DISABLE_VERILATOR_BUILD=true --build_tag_filters="-kelvin_fpga" \
 			//sw/device/...
+	cd $(MATCHA_SRC_DIR) && \
+	  find "bazel-out/" \( -type f -name "*.elf" -o -name "*.bin" \) \
+		-exec cp -f --parents "{}" "$(MATCHA_OUT_DIR)" \;
 
 
 $(MATCHA_FPGA_KELVIN_BINARY_DIR):