
Bookworm was just released, bullseye is now oldstable, and buster is now oldoldstable. It doesn't seem to be worth it to keep building images for it, so let's drop support for it right away.
76 lines
2.3 KiB
Makefile
76 lines
2.3 KiB
Makefile
all: shasums
|
|
|
|
# List all the supported and built Pi platforms here. They get expanded
|
|
# to names like 'raspi_2_buster.yaml' and 'raspi_3_bullseye.img.xz'.
|
|
BUILD_FAMILIES := 1 2 3 4
|
|
BUILD_RELEASES := bullseye bookworm trixie
|
|
|
|
platforms := $(foreach plat, $(BUILD_FAMILIES),$(foreach rel, $(BUILD_RELEASES), raspi_$(plat)_$(rel)))
|
|
|
|
shasums: $(addsuffix .img.sha256,$(platforms)) $(addsuffix .img.xz.sha256,$(platforms))
|
|
xzimages: $(addsuffix .img.xz,$(platforms))
|
|
images: $(addsuffix .img,$(platforms))
|
|
yaml: $(addsuffix .yaml,$(platforms))
|
|
|
|
ifeq ($(shell id -u),0)
|
|
as_root =
|
|
else ifneq (,$(wildcard /usr/bin/fakemachine))
|
|
$(warning "This should normally be run as root, but found 'fakemachine', so using that.")
|
|
as_root = fakemachine -v $(CURDIR) -- env --chdir $(CURDIR)
|
|
else
|
|
$(error "This must be run as root")
|
|
endif
|
|
|
|
target_platforms:
|
|
@echo $(platforms)
|
|
|
|
# Generate targets based on all family * release combinations:
|
|
define dynamic_yaml_target =
|
|
raspi_$(1)_$(2).yaml: raspi_master.yaml generate-recipe.py
|
|
raspi_$(1)_$(2).yaml:
|
|
./generate-recipe.py $(1) $(2)
|
|
endef
|
|
$(foreach release,$(BUILD_RELEASES), \
|
|
$(foreach family,$(BUILD_FAMILIES), \
|
|
$(eval $(call dynamic_yaml_target,$(family),$(release)))))
|
|
|
|
%.img.sha256: %.img
|
|
echo $@
|
|
sha256sum $< > $@
|
|
|
|
%.img.xz.sha256: %.img.xz
|
|
echo $@
|
|
sha256sum $< > $@
|
|
|
|
%.img.xz: %.img
|
|
xz -f -k -z -9 $<
|
|
|
|
%.img.bmap: %.img
|
|
bmaptool create -o $@ $<
|
|
|
|
%.img: %.yaml
|
|
touch $(@:.img=.log)
|
|
time nice $(as_root) vmdb2 --verbose --rootfs-tarball=$(subst .img,.tar.gz,$@) --output=$@ $(subst .img,.yaml,$@) --log $(subst .img,.log,$@)
|
|
chmod 0644 $@ $(@,.img=.log)
|
|
|
|
_ck_root:
|
|
[ `whoami` = 'root' ] # Only root can summon vmdb2 ☹
|
|
|
|
_clean_yaml:
|
|
rm -f $(addsuffix .yaml,$(platforms)) raspi_base_bullseye.yaml raspi_base_bookworm.yaml raspi_base_trixie.yaml
|
|
_clean_images:
|
|
rm -f $(addsuffix .img,$(platforms))
|
|
_clean_xzimages:
|
|
rm -f $(addsuffix .img.xz,$(platforms))
|
|
_clean_bmaps:
|
|
rm -f $(addsuffix .img.bmap,$(platforms))
|
|
_clean_shasums:
|
|
rm -f $(addsuffix .img.sha256,$(platforms)) $(addsuffix .img.xz.sha256,$(platforms))
|
|
_clean_logs:
|
|
rm -f $(addsuffix .log,$(platforms))
|
|
_clean_tarballs:
|
|
rm -f $(addsuffix .tar.gz,$(platforms))
|
|
clean: _clean_xzimages _clean_images _clean_shasums _clean_yaml _clean_tarballs _clean_logs _clean_bmaps
|
|
|
|
.PHONY: _ck_root _build_img clean _clean_images _clean_yaml _clean_tarballs _clean_logs
|