Files
xen/tools/firmware/etherboot/Makefile
T
Ian Jackson 58f904c4cf tools: ipxe: Correct download error handling
This shell fragment lacked set -e.  So, eg if the download failed a
broken ipxe.tar.gz would be left behind.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
Tested-by: Paul Durrant <paul.durrant@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
2018-11-06 12:15:05 +00:00

62 lines
1.2 KiB
Makefile

override XEN_TARGET_ARCH = x86_32
XEN_ROOT = $(CURDIR)/../../..
include $(XEN_ROOT)/tools/Rules.mk
include Config
ifeq ($(GIT_HTTP),y)
IPXE_GIT_URL ?= http://git.ipxe.org/ipxe.git
else
IPXE_GIT_URL ?= git://git.ipxe.org/ipxe.git
endif
IPXE_GIT_TAG := d2063b7693e0e35db97b2264aa987eb6341ae779
IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz
D=ipxe
T=ipxe.tar.gz
ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS)))
ROM = $D/src/bin/ipxe.bin
.NOTPARALLEL:
.PHONY: all
all: $(ROM)
$(ROM): $(ROMS)
cat $^ > $@.tmp
mv -f $@.tmp $@
%.rom: $D/src/arch/i386/Makefile
$(MAKE) -C $D/src bin/$(*F).rom
$T:
set -e; if ! $(FETCHER) _$T $(IPXE_TARBALL_URL); then \
$(GIT) clone $(IPXE_GIT_URL) $D.git; \
(cd $D.git && $(GIT) archive --format=tar --prefix=$D/ \
$(IPXE_GIT_TAG) | gzip -n >../_$T); \
rm -rf $D.git; \
fi
mv _$T $T
$D/src/arch/i386/Makefile: $T Config
rm -rf $D
gzip -dc $T | tar xf -
for i in $$(cat patches/series) ; do \
patch -d $D -p1 --quiet <patches/$$i || exit 1 ; \
done
cat Config >>$@
$D/src/bin/NIC: $D/src/arch/i386/Makefile
$(MAKE) -C $D/src bin/NIC
.PHONY: clean
clean:
rm -rf $D $D.git *~ _$T $T
.PHONY: distclean
distclean: clean
rm -rf $T