# SPDX-License-Identifier: GPL-3.0+ BOARD ?= devkit TYPE ?= latest DIST ?= buster+ci SHELL := /bin/bash # Get a variable from the board config # $1 : Variable name to get the value for define get_board_var $(shell pureos_board=$(BOARD); . conf/board; echo $$$1) endef STAMPFILE := tmp/$(BOARD).img.stamp IMAGES := $(BOARD).img ifeq ($(call get_board_var,want_boot_image),1) IMAGES += $(BOARD)-boot.img endif COMPRESSED := $(addsuffix .xz,$(IMAGES)) CHECKSUM := sha256sums DEPS=\ build-image \ root.sh \ conf/board \ conf/packages \ $(NULL) SHELLCHECK_SCRIPTS=\ ./build-image \ build/build_kernel_deb.sh \ $(NULL) all: $(COMPRESSED) $(IMAGES): $(STAMPFILE) # Use an order-only dependency to prevent rebuilding $(STAMPFILE) every time # local.sh-link is out of date (it is always out of date because of .PHONY). $(STAMPFILE): | local.sh-link $(STAMPFILE): $(DEPS) ./build-image -b $(BOARD) -T $(TYPE) -d $(DIST) touch $@ %.img.xz: %.img xz -T0 --stdout $< > $@.tmp mv $@.tmp $@ $(CHECKSUM): $(COMPRESSED) sha256sum $(COMPRESSED) > $@.tmp mv $@.tmp $@ clean: rm -rf files/ tmp/ $(IMAGES) $(COMPRESSED) $(CHECKSUM) *.tmp check: shellcheck -x $(SHELLCHECK_SCRIPTS) bash -n root.sh publish: $(CHECKSUM) bin/sign-checksum bin/publish -T ${TYPE} local.sh-link: if test -e local.sh; then \ mkdir -p files; \ ln -sf ../local.sh files; \ fi .PHONY: all publish local.sh-link