Update to iPXE version to 1.21.1
- Build additional artifacts - ISO, UEFI, etc.
- Set default timeout on shell to fallthrough on failures
- Add ping command (enabling patch renamed to be more generic)
- Update build container to Debian 11
- Add VERSION file
Change-Id: I9476c1d6446f6943dcd084384ba2ae3d96f71128
diff --git a/Makefile b/Makefile
index 759d9ac..60b38d6 100644
--- a/Makefile
+++ b/Makefile
@@ -6,14 +6,19 @@
SHELL = bash -eu -o pipefail
# iPXE configuration
-IPXE_VERSION ?= v1.20.1
-TARGETS ?= bin/undionly.kpxe bin/ipxe.usb
-OPTIONS ?= EMBED=chain.ipxe
-COPY_FILES ?= chain.ipxe
+IPXE_VERSION ?= v1.21.1
+TARGETS ?= bin/undionly.kpxe bin/ipxe.usb bin/ipxe.iso bin/ipxe.pdsk
+TARGETS_EFI32 ?= bin-i386-efi/ipxe.usb
+TARGETS_EFI64 ?= bin-x86_64-efi/ipxe.usb
+OPTIONS ?= EMBED=chain.ipxe
+COPY_FILES ?= chain.ipxe
# Build configuration
-OUTDIR ?= $(shell pwd)/out
-BUILDER := ipxebuilder-$(shell date +"%Y%m%d%H%M%S")# timestamp for each run
+OUTDIR ?= $(shell pwd)/out
+BUILDER := ipxebuilder-$(shell date +"%Y%m%d%H%M%S")# timestamp for each run
+
+# print help by default
+.DEFAULT_GOAL := help
# phony (doesn't make files) targets
.PHONY: base image clean clean-all license help
@@ -27,16 +32,18 @@
out:
mkdir -p out
-base: | ipxe ## create bas iPXE build container using Docker
+base: | ipxe ## create base iPXE build container using Docker
docker build . -t ipxe-builder:$(IPXE_VERSION)
-image: | out base ## create iPXE binary artifacts using Docker
+image: | out base ## create iPXE binaries using Docker
docker run -v $(OUTDIR):/tmp/out --name $(BUILDER) -d ipxe-builder:$(IPXE_VERSION)
for file in $(COPY_FILES); do \
docker cp $$file $(BUILDER):/ipxe/src/ ;\
done
docker exec -w /ipxe/src $(BUILDER) \
- bash -c "make -j4 $(TARGETS) $(OPTIONS); cp $(TARGETS) /tmp/out"
+ bash -c "make -j4 $(TARGETS) $(OPTIONS); cp $(TARGETS) /tmp/out; \
+ make -j4 $(TARGETS_EFI32) $(OPTIONS); cp $(TARGETS_EFI32) /tmp/out/ipxe_efi32.usb; \
+ make -j4 $(TARGETS_EFI64) $(OPTIONS); cp $(TARGETS_EFI64) /tmp/out/ipxe_efi64.usb"
docker rm --force $(BUILDER)
test: image ## test (currently only runs an image build)
@@ -54,5 +61,5 @@
help: ## Print help for each target
@echo infra-playbooks make targets
@echo
- @grep '^[[:alnum:]_-]*:.* ##' $(MAKEFILE_LIST) \
+ @grep '^[[:alnum:]_-]*:.* ## ' $(MAKEFILE_LIST) \
| sort | awk 'BEGIN {FS=":.* ## "}; {printf "%-25s %s\n", $$1, $$2};'