aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--rules.mk7
-rw-r--r--target/imagebuilder/files/Makefile6
3 files changed, 17 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index c3e1ed7707..5bd4fb2ca7 100644
--- a/Makefile
+++ b/Makefile
@@ -83,9 +83,13 @@ prereq: $(target/stamp-prereq) tmp/.prereq_packages
exit 1; \
fi
+checksum: FORCE
+ $(call sha256sums,$(BIN_DIR))
+
prepare: .config $(tools/stamp-install) $(toolchain/stamp-install)
world: prepare $(target/stamp-compile) $(package/stamp-compile) $(package/stamp-install) $(target/stamp-install) FORCE
$(_SINGLE)$(SUBMAKE) -r package/index
+ $(_SINGLE)$(SUBMAKE) -r checksum
.PHONY: clean dirclean prereq prepare world package/symlinks package/symlinks-install package/symlinks-clean
diff --git a/rules.mk b/rules.mk
index 12a79ba30c..de24778614 100644
--- a/rules.mk
+++ b/rules.mk
@@ -371,6 +371,13 @@ define file_copy
$(CP) $(1) $(2)
endef
+# Calculate sha256sum of any plain file within a given directory
+# $(1) => Input directory
+define sha256sums
+ (cd $(1); find . -maxdepth 1 -type f -not -name 'sha256sums' -printf "%P\n" | sort | \
+ xargs openssl dgst -sha256 | sed -ne 's!^SHA256(\(.*\))= \(.*\)$$!\2 *\1!p' > sha256sums)
+endef
+
# file extension
ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1)))
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 44439854d6..493012ff72 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -125,6 +125,7 @@ ifneq ($(USER_FILES),)
endif
$(MAKE) package_postinst
$(MAKE) build_image
+ $(MAKE) checksum
package_index: FORCE
@echo
@@ -170,6 +171,11 @@ build_image: FORCE
$(NO_TRACE_MAKE) -C target/linux/$(BOARD)/image install TARGET_BUILD=1 IB=1 EXTRA_IMAGE_NAME="$(EXTRA_IMAGE_NAME)" \
$(if $(USER_PROFILE),PROFILE="$(USER_PROFILE)")
+checksum: FORCE
+ @echo
+ @echo Calculating checksums...
+ @$(call sha256sums,$(BIN_DIR))
+
clean:
rm -rf $(TMP_DIR) $(DL_DIR) $(TARGET_DIR) $(BIN_DIR)