Makefile: use variables for platforms instead of repeating platform numbers

Create a variable called BUILD_PLATFORMS that lists the various pi images
to build. This keeps the platform list in one place in the makefile, rather
than sprinkled and repeated throughout multiple dependency and build lines.

When a platform is added (ie, the pi4) or removed, it won't touch multiple
rules and obscure other changes. This uses gmake-specific addprefix and
addsuffix.
This commit is contained in:
Andres Salomon 2020-05-04 18:07:01 -04:00
parent dab07510cf
commit 5507be93ef

View File

@ -1,9 +1,14 @@
all: shasums all: shasums
shasums: raspi_0w.sha256 raspi_2.sha256 raspi_3.sha256 raspi_0w.xz.sha256 raspi_2.xz.sha256 raspi_3.xz.sha256 # List all the supported and built Pi platforms here. They get expanded
xzimages: raspi_0w.img.xz raspi_2.img.xz raspi_3.img.xz # to names like 'raspi_2.yaml' and 'raspi_0w.img.xz'.
images: raspi_0w.img raspi_2.img raspi_3.img BUILD_PLATFORMS := 0w 2 3
yaml: raspi_0w.yaml raspi_2.yaml raspi_3.yaml
platforms := $(addprefix raspi_,$(BUILD_PLATFORMS))
shasums: $(addsuffix .sha256,$(platforms)) $(addsuffix .xz.sha256,$(platforms))
xzimages: $(addsuffix .img.xz,$(platforms))
images: $(addsuffix .img,$(platforms))
yaml: $(addsuffix .yaml,$(platforms))
raspi_0w.yaml: raspi_master.yaml raspi_0w.yaml: raspi_master.yaml
cat raspi_master.yaml | sed "s/__ARCH__/armel/" | \ cat raspi_master.yaml | sed "s/__ARCH__/armel/" | \
@ -49,17 +54,17 @@ _ck_root:
[ `whoami` = 'root' ] # Only root can summon vmdb2 ☹ [ `whoami` = 'root' ] # Only root can summon vmdb2 ☹
_clean_yaml: _clean_yaml:
rm -f raspi_0w.yaml raspi_2.yaml raspi_3.yaml rm -f $(addsuffix .yaml,$(platforms))
_clean_images: _clean_images:
rm -f raspi_0w.img raspi_2.img raspi_3.img rm -f $(addsuffix .img,$(platforms))
_clean_xzimages: _clean_xzimages:
rm -f raspi_0w.img.xz raspi_2.img.xz raspi_3.img.xz rm -f $(addsuffix .img.xz,$(platforms))
_clean_shasums: _clean_shasums:
rm -f raspi_0w.sha256 raspi_2.sha256 raspi_3.sha256 raspi_0w.xz.sha256 raspi_2.xz.sha256 raspi_3.xz.sha256 rm -f $(addsuffix .sha256,$(platforms)) $(addsuffix .xz.sha256,$(platforms))
_clean_logs: _clean_logs:
rm -f raspi_0w.log raspi_2.log raspi_3.log rm -f $(addsuffix .log,$(platforms))
_clean_tarballs: _clean_tarballs:
rm -f raspi_0w.tar.gz raspi_2.tar.gz raspi_3.tar.gz rm -f $(addsuffix .tar.gz,$(platforms))
clean: _clean_xzimages _clean_images _clean_shasums _clean_yaml _clean_tarballs _clean_logs clean: _clean_xzimages _clean_images _clean_shasums _clean_yaml _clean_tarballs _clean_logs
.PHONY: _ck_root _build_img clean _clean_images _clean_yaml _clean_tarballs _clean_logs .PHONY: _ck_root _build_img clean _clean_images _clean_yaml _clean_tarballs _clean_logs