diff options
-rw-r--r-- | Config.mk | 3 | ||||
-rw-r--r-- | tools/firmware/Makefile | 18 | ||||
-rw-r--r-- | tools/firmware/hvmloader/Makefile | 32 |
3 files changed, 32 insertions, 21 deletions
@@ -224,6 +224,9 @@ SEABIOS_UPSTREAM_TAG ?= rel-1.6.3.1 ETHERBOOT_NICS ?= rtl8139 8086100e +CONFIG_ROMBIOS ?= y +CONFIG_SEABIOS ?= y + # Specify which qemu-dm to use. This may be `ioemu' to use the old # Mercurial in-tree version, or a local directory, or a git URL. # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index c3ec9a07b9..5d40bcd2f8 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -5,19 +5,20 @@ include $(XEN_ROOT)/tools/Rules.mk TARGET := hvmloader/hvmloader INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) -SUBDIRS := -SUBDIRS += seabios-dir -SUBDIRS += rombios -SUBDIRS += vgabios -SUBDIRS += etherboot -SUBDIRS += hvmloader +SUBDIRS-y := +SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir +SUBDIRS-$(CONFIG_ROMBIOS) += rombios +SUBDIRS-$(CONFIG_ROMBIOS) += vgabios +SUBDIRS-$(CONFIG_ROMBIOS) += etherboot +SUBDIRS-y += hvmloader seabios-dir: GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir cp seabios-config seabios-dir/.config; .PHONY: all -all: seabios-dir +all: $(SUBDIRS-y) +ifeq ($(CONFIG_ROMBIOS),y) @set -e; if [ $$((`( bcc -v 2>&1 | grep version || echo 0.0.0 ) | cut -d' ' -f 3 | awk -F. '{ printf "0x%02x%02x%02x", $$1, $$2, $$3}'`)) -lt $$((0x00100e)) ] ; then \ echo "==========================================================================="; \ echo "Require dev86 rpm or bin86 & bcc debs version >= 0.16.14 to build firmware!"; \ @@ -25,7 +26,8 @@ all: seabios-dir echo "==========================================================================="; \ false ; \ fi - $(MAKE) subdirs-$@; \ +endif + $(MAKE) subdirs-$@ .PHONY: install diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 5a5ee41e79..175dba6360 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -38,27 +38,33 @@ endif CIRRUSVGA_DEBUG ?= n ROMBIOS_DIR := ../rombios -ifneq ($(ROMBIOS_DIR),) -OBJS += optionroms.o 32bitbios_support.o rombios.o -CFLAGS += -DENABLE_ROMBIOS -ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest -endif - SEABIOS_DIR := ../seabios-dir -ifneq ($(SEABIOS_DIR),) -OBJS += seabios.o -CFLAGS += -DENABLE_SEABIOS -SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin -endif +ifeq ($(CONFIG_ROMBIOS),y) STDVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.bin ifeq ($(CIRRUSVGA_DEBUG),y) CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.debug.bin else CIRRUSVGA_ROM := ../vgabios/VGABIOS-lgpl-latest.cirrus.bin endif - ETHERBOOT_ROMS := $(addprefix ../etherboot/ipxe/src/bin/, $(addsuffix .rom, $(ETHERBOOT_NICS))) +endif + +ROMS := + +ifeq ($(CONFIG_ROMBIOS),y) +OBJS += optionroms.o 32bitbios_support.o rombios.o +CFLAGS += -DENABLE_ROMBIOS +ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest +ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) $(ETHERBOOT_ROMS) +endif + +ifeq ($(CONFIG_SEABIOS),y) +OBJS += seabios.o +CFLAGS += -DENABLE_SEABIOS +SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin +ROMS += $(SEABIOS_ROM) +endif .PHONY: all all: subdirs-all @@ -72,7 +78,7 @@ hvmloader: $(OBJS) acpi/acpi.a $(OBJCOPY) hvmloader.tmp hvmloader rm -f hvmloader.tmp -roms.inc: $(ROMBIOS_ROM) $(SEABIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) $(ETHERBOOT_ROMS) +roms.inc: $(ROMS) echo "/* Autogenerated file. DO NOT EDIT */" > $@.new ifneq ($(ROMBIOS_ROM),) |