Skip to content

Commit

Permalink
build: add checksum target
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
jow- committed Aug 1, 2016
1 parent 4d9fc1b commit 27854a0
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
7 changes: 7 additions & 0 deletions rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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)))

Expand Down
6 changes: 6 additions & 0 deletions target/imagebuilder/files/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ ifneq ($(USER_FILES),)
endif
$(MAKE) package_postinst
$(MAKE) build_image
$(MAKE) checksum

package_index: FORCE
@echo
Expand Down Expand Up @@ -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)

Expand Down

0 comments on commit 27854a0

Please sign in to comment.