diff --git a/Makefile b/Makefile
index 0a1f96a973d7c30fb991866c11a98f39e42bc604..e38d44a810448b7c7def639658a2f9b25c6070b4 100644
--- a/Makefile
+++ b/Makefile
@@ -85,7 +85,7 @@ prereq: $(target/stamp-prereq) tmp/.prereq_packages
 	fi
 
 checksum: FORCE
-	$(call sha256sums,$(BIN_DIR))
+	$(call sha256sums,$(BIN_DIR),$(CONFIG_BUILDBOT))
 
 diffconfig: FORCE
 	mkdir -p $(BIN_DIR)
diff --git a/rules.mk b/rules.mk
index a97b2d2155695c3a15f361ea2fe95b977be05959..b1ecc24fab1f9a97a4dd4a7a5c17753996003977 100644
--- a/rules.mk
+++ b/rules.mk
@@ -390,8 +390,9 @@ endef
 
 # Calculate sha256sum of any plain file within a given directory
 # $(1) => Input directory
+# $(2) => If set, recurse into subdirectories
 define sha256sums
-	(cd $(1); find . -maxdepth 1 -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
+	(cd $(1); find . $(if $(2),,-maxdepth 1) -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
 		xargs -r $(STAGING_DIR_HOST)/bin/mkhash -n sha256 | sed -ne 's!^\(.*\) \(.*\)$$!\1 *\2!p' > sha256sums)
 endef