From: Jo-Philipp Wich Date: Tue, 26 Jul 2016 13:05:35 +0000 (+0200) Subject: build: add checksum target X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=27854a0a84cd2db9539b662a1f1fc95ef7409962;p=openwrt%2Fstaging%2Fblogic.git build: add checksum target Add a new "checksum" make target which generates an sha256sums file over the image files produced in bin/targets/ and automatically call it during make world after the package index generation. The advantage of this new target is that it is guaranteed to run after the images, the SDK and the ImageBuilder archives have been generated to ensure that they all end up in the checksum file. Fixes FS#51. Uses sed to postprocess the OpenSSL digest output into an sha256sum command compatible format. Signed-off-by: Jo-Philipp Wich --- diff --git a/Makefile b/Makefile index c3e1ed77076f..5bd4fb2ca71a 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 12a79ba30c21..de2477861421 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 44439854d696..493012ff7205 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)