1 2override XEN_TARGET_ARCH = x86_32 3XEN_ROOT = $(CURDIR)/../../.. 4include $(XEN_ROOT)/tools/Rules.mk 5include Config 6 7IPXE_GIT_URL ?= https://github.com/ipxe/ipxe.git 8 9# put an updated tar.gz on xenbits after changes to this variable 10IPXE_GIT_TAG := 1d1cf74a5e58811822bee4b3da3cff7282fcdfca 11 12IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz 13 14D=ipxe 15T=ipxe.tar.gz 16 17ROMS = $(addprefix $D/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) 18ROM = $D/src/bin/ipxe.bin 19 20.NOTPARALLEL: 21 22.PHONY: all 23all: $(ROM) 24 25$(ROM): $(ROMS) 26 cat $^ > $@.tmp 27 mv -f $@.tmp $@ 28 29%.rom: $D/src/arch/i386/Makefile 30 $(MAKE) -C $D/src bin/$(*F).rom 31 32$T: 33 set -e; if ! $(FETCHER) _$T $(IPXE_TARBALL_URL); then \ 34 $(GIT) clone $(IPXE_GIT_URL) $D.git; \ 35 (cd $D.git && $(GIT) archive --format=tar --prefix=$D/ \ 36 $(IPXE_GIT_TAG) | gzip -n >../_$T); \ 37 rm -rf $D.git; \ 38 fi 39 mv _$T $T 40 41$D/src/arch/i386/Makefile: $T Config 42 rm -rf $D 43 gzip -dc $T | tar xf - 44 for i in $$(cat patches/series) ; do \ 45 patch -d $D -p1 --quiet <patches/$$i || exit 1 ; \ 46 done 47 cat Config >>$@ 48 49$D/src/bin/NIC: $D/src/arch/i386/Makefile 50 $(MAKE) -C $D/src bin/NIC 51 52.PHONY: clean 53clean: 54 rm -rf $D $D.git *~ _$T $T 55 56.PHONY: distclean 57distclean: clean 58 rm -rf $T 59