Fabio Fantoni
2013-Aug-30 10:22 UTC
[PATCH v2] tools: allow user to specify a system seabios binary
If this option is given don''t bother building seabios ourselves. Likely to be handy for distros who have an existing seabios package which they want to reuse. Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz> --- config/Tools.mk.in | 2 ++ tools/configure | 28 ++++++++++++++++++++++++++++ tools/configure.ac | 16 ++++++++++++++++ tools/firmware/Makefile | 4 +++- tools/firmware/hvmloader/Makefile | 6 +++++- 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/config/Tools.mk.in b/config/Tools.mk.in index e388e42..eeca36b 100644 --- a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -23,6 +23,7 @@ LD86 := @LD86@ BCC := @BCC@ IASL := @IASL@ FETCHER := @FETCHER@ +SEABIOS_PATH := @seabios_path@ # Extra folder for libs/includes PREPEND_INCLUDES := @PREPEND_INCLUDES@ @@ -52,6 +53,7 @@ CONFIG_ROMBIOS := @rombios@ CONFIG_SEABIOS := @seabios@ CONFIG_QEMU_TRAD := @qemu_traditional@ CONFIG_QEMU_XEN := @qemu_xen@ +CONFIG_SEABIOS_COMP := @seabios_compile@ CONFIG_XEND := @xend@ CONFIG_BLKTAP1 := @blktap1@ diff --git a/tools/configure b/tools/configure index 4be39fc..0da48f4 100755 --- a/tools/configure +++ b/tools/configure @@ -654,6 +654,8 @@ APPEND_LIB APPEND_INCLUDES PREPEND_LIB PREPEND_INCLUDES +seabios_compile +seabios_path qemu_xen qemu_traditional blktap1 @@ -738,6 +740,7 @@ enable_xend enable_blktap1 enable_qemu_traditional with_system_qemu +with_system_seabios '' ac_precious_vars=''build_alias host_alias @@ -1409,6 +1412,9 @@ Optional Packages: Use system supplied qemu PATH or qemu (taken from $PATH) as qemu-xen device model instead of building and installing our own version + --with-system-seabios[=PATH] + Use system supplied seabios PATH instead of building + and installing our own version Some influential environment variables: CC C compiler command @@ -3727,6 +3733,28 @@ fi +# Check whether --with-system-seabios was given. +if test "${with_system_seabios+set}" = set; then : + withval=$with_system_seabios; + case $withval in + no) seabios_compile=y ; seabios_path= ;; + *) seabios_compile=n ; seabios_path=$withval ;; + esac + +else + + seabios_compile=y + +fi + +if test "x$seabios_compile" = "xn"; then : + + + +fi + + + diff --git a/tools/configure.ac b/tools/configure.ac index 1f57681..67b21bb 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -97,6 +97,22 @@ AS_IF([test "x$qemu_xen" = "xn"], [ ]) AC_SUBST(qemu_xen) +AC_ARG_WITH([system-seabios], + AS_HELP_STRING([--with-system-seabios@<:@=PATH@:>@], + [Use system supplied seabios PATH instead of building and installing + our own version]),[ + case $withval in + no) seabios_compile=y ; seabios_path= ;; + *) seabios_compile=n ; seabios_path=$withval ;; + esac +],[ + seabios_compile=y +]) +AS_IF([test "x$seabios_compile" = "xn"], [ + AC_SUBST(seabios_path) +]) +AC_SUBST(seabios_compile) + AC_ARG_VAR([PREPEND_INCLUDES], [List of include folders to prepend to CFLAGS (without -I)]) AC_ARG_VAR([PREPEND_LIB], diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index aff8e56..fe56036 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -7,7 +7,9 @@ INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) SUBDIRS-y : SUBDIRS-$(CONFIG_OVMF) += ovmf -SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir +ifeq ($(CONFIG_SEABIOS),y) +SUBDIRS-$(CONFIG_SEABIOS_COMP) += seabios-dir +endif SUBDIRS-$(CONFIG_ROMBIOS) += rombios SUBDIRS-$(CONFIG_ROMBIOS) += vgabios SUBDIRS-$(CONFIG_ROMBIOS) += etherboot diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index c6e7376..c81a9d2 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -70,7 +70,11 @@ endif ifeq ($(CONFIG_SEABIOS),y) OBJS += seabios.o CFLAGS += -DENABLE_SEABIOS -SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin +ifeq ($(CONFIG_SEABIOS_COMP),y) + SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin +else + SEABIOS_ROM := $(SEABIOS_PATH) +endif ROMS += $(SEABIOS_ROM) endif -- 1.7.9.5
Ian Campbell
2013-Sep-04 13:34 UTC
Re: [PATCH v2] tools: allow user to specify a system seabios binary
On Fri, 2013-08-30 at 12:22 +0200, Fabio Fantoni wrote:> If this option is given don''t bother building seabios ourselves. > Likely to be handy for distros who have an existing seabios > package which they want to reuse. > > Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz> > --- > config/Tools.mk.in | 2 ++ > tools/configure | 28 ++++++++++++++++++++++++++++ > tools/configure.ac | 16 ++++++++++++++++ > tools/firmware/Makefile | 4 +++- > tools/firmware/hvmloader/Makefile | 6 +++++- > 5 files changed, 54 insertions(+), 2 deletions(-) > > diff --git a/config/Tools.mk.in b/config/Tools.mk.in > index e388e42..eeca36b 100644 > --- a/config/Tools.mk.in > +++ b/config/Tools.mk.in > @@ -23,6 +23,7 @@ LD86 := @LD86@ > BCC := @BCC@ > IASL := @IASL@ > FETCHER := @FETCHER@ > +SEABIOS_PATH := @seabios_path@ > > # Extra folder for libs/includes > PREPEND_INCLUDES := @PREPEND_INCLUDES@ > @@ -52,6 +53,7 @@ CONFIG_ROMBIOS := @rombios@ > CONFIG_SEABIOS := @seabios@ > CONFIG_QEMU_TRAD := @qemu_traditional@ > CONFIG_QEMU_XEN := @qemu_xen@ > +CONFIG_SEABIOS_COMP := @seabios_compile@I don''t think you need both SEABIOS_PATH and CONFIG_SEABIOS_COMP. Simply make the compilation of SeaBIOS conditional on SEABIOS_PATH being empty.> CONFIG_XEND := @xend@ > CONFIG_BLKTAP1 := @blktap1@ >> diff --git a/tools/configure.ac b/tools/configure.ac > index 1f57681..67b21bb 100644 > --- a/tools/configure.ac > +++ b/tools/configure.ac > @@ -97,6 +97,22 @@ AS_IF([test "x$qemu_xen" = "xn"], [ > ]) > AC_SUBST(qemu_xen) > > +AC_ARG_WITH([system-seabios], > + AS_HELP_STRING([--with-system-seabios@<:@=PATH@:>@], > + [Use system supplied seabios PATH instead of building and installing > + our own version]),[ > + case $withval in > + no) seabios_compile=y ; seabios_path= ;; > + *) seabios_compile=n ; seabios_path=$withval ;;please line these up </nitpick>> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile > index aff8e56..fe56036 100644 > --- a/tools/firmware/Makefile > +++ b/tools/firmware/Makefile > @@ -7,7 +7,9 @@ INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) > > SUBDIRS-y :> SUBDIRS-$(CONFIG_OVMF) += ovmf > -SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir > +ifeq ($(CONFIG_SEABIOS),y) > +SUBDIRS-$(CONFIG_SEABIOS_COMP) += seabios-dir > +endifPerhaps: ifeq ($(CONFIG_SEABIOS_PATH),) SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir endif TBH I''m not sure that being able to disable SeaBIOS at build time is even useful.> SUBDIRS-$(CONFIG_ROMBIOS) += rombios > SUBDIRS-$(CONFIG_ROMBIOS) += vgabios > SUBDIRS-$(CONFIG_ROMBIOS) += etherboot > diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile > index c6e7376..c81a9d2 100644 > --- a/tools/firmware/hvmloader/Makefile > +++ b/tools/firmware/hvmloader/Makefile > @@ -70,7 +70,11 @@ endif > ifeq ($(CONFIG_SEABIOS),y) > OBJS += seabios.o > CFLAGS += -DENABLE_SEABIOS > -SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin > +ifeq ($(CONFIG_SEABIOS_COMP),y) > + SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin > +else > + SEABIOS_ROM := $(SEABIOS_PATH) > +endif > ROMS += $(SEABIOS_ROM) > endif >
Andrew Cooper
2013-Sep-04 13:43 UTC
Re: [PATCH v2] tools: allow user to specify a system seabios binary
On 04/09/13 14:34, Ian Campbell wrote:> On Fri, 2013-08-30 at 12:22 +0200, Fabio Fantoni wrote: >> If this option is given don''t bother building seabios ourselves. >> Likely to be handy for distros who have an existing seabios >> package which they want to reuse. >> >> Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz> >> --- >> config/Tools.mk.in | 2 ++ >> tools/configure | 28 ++++++++++++++++++++++++++++ >> tools/configure.ac | 16 ++++++++++++++++ >> tools/firmware/Makefile | 4 +++- >> tools/firmware/hvmloader/Makefile | 6 +++++- >> 5 files changed, 54 insertions(+), 2 deletions(-) >> >> diff --git a/config/Tools.mk.in b/config/Tools.mk.in >> index e388e42..eeca36b 100644 >> --- a/config/Tools.mk.in >> +++ b/config/Tools.mk.in >> @@ -23,6 +23,7 @@ LD86 := @LD86@ >> BCC := @BCC@ >> IASL := @IASL@ >> FETCHER := @FETCHER@ >> +SEABIOS_PATH := @seabios_path@ >> >> # Extra folder for libs/includes >> PREPEND_INCLUDES := @PREPEND_INCLUDES@ >> @@ -52,6 +53,7 @@ CONFIG_ROMBIOS := @rombios@ >> CONFIG_SEABIOS := @seabios@ >> CONFIG_QEMU_TRAD := @qemu_traditional@ >> CONFIG_QEMU_XEN := @qemu_xen@ >> +CONFIG_SEABIOS_COMP := @seabios_compile@ > I don''t think you need both SEABIOS_PATH and CONFIG_SEABIOS_COMP. Simply > make the compilation of SeaBIOS conditional on SEABIOS_PATH being empty. > >> CONFIG_XEND := @xend@ >> CONFIG_BLKTAP1 := @blktap1@ >> >> diff --git a/tools/configure.ac b/tools/configure.ac >> index 1f57681..67b21bb 100644 >> --- a/tools/configure.ac >> +++ b/tools/configure.ac >> @@ -97,6 +97,22 @@ AS_IF([test "x$qemu_xen" = "xn"], [ >> ]) >> AC_SUBST(qemu_xen) >> >> +AC_ARG_WITH([system-seabios], >> + AS_HELP_STRING([--with-system-seabios@<:@=PATH@:>@], >> + [Use system supplied seabios PATH instead of building and installing >> + our own version]),[ >> + case $withval in >> + no) seabios_compile=y ; seabios_path= ;; >> + *) seabios_compile=n ; seabios_path=$withval ;; > please line these up </nitpick> > >> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile >> index aff8e56..fe56036 100644 >> --- a/tools/firmware/Makefile >> +++ b/tools/firmware/Makefile >> @@ -7,7 +7,9 @@ INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) >> >> SUBDIRS-y :>> SUBDIRS-$(CONFIG_OVMF) += ovmf >> -SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir >> +ifeq ($(CONFIG_SEABIOS),y) >> +SUBDIRS-$(CONFIG_SEABIOS_COMP) += seabios-dir >> +endif > Perhaps: > > ifeq ($(CONFIG_SEABIOS_PATH),)ifneq ?> SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir > endif > > TBH I''m not sure that being able to disable SeaBIOS at build time is > even useful.Speaking as a downstream distro which doesn''t currently use SeaBIOS, the ability to disable is very useful to prevent having the xen build system download yet more code. While it is valid to have some combination of components built without using SeaBIOS, an option to disable is more useful than not, even if everyone is expected to use the default. ~Andrew
Ian Campbell
2013-Sep-04 13:53 UTC
Re: [PATCH v2] tools: allow user to specify a system seabios binary
On Wed, 2013-09-04 at 14:43 +0100, Andrew Cooper wrote:> >> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile > >> index aff8e56..fe56036 100644 > >> --- a/tools/firmware/Makefile > >> +++ b/tools/firmware/Makefile > >> @@ -7,7 +7,9 @@ INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) > >> > >> SUBDIRS-y :> >> SUBDIRS-$(CONFIG_OVMF) += ovmf > >> -SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir > >> +ifeq ($(CONFIG_SEABIOS),y) > >> +SUBDIRS-$(CONFIG_SEABIOS_COMP) += seabios-dir > >> +endif > > Perhaps: > > > > ifeq ($(CONFIG_SEABIOS_PATH),) > > ifneq ?If CONFIG_SEABIOS_PATH == "" then we want to build, so I think ifeq was correct.> > > SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir > > endif > > > > TBH I''m not sure that being able to disable SeaBIOS at build time is > > even useful. > > Speaking as a downstream distro which doesn''t currently use SeaBIOS, the > ability to disable is very useful to prevent having the xen build system > download yet more code. > > While it is valid to have some combination of components built without > using SeaBIOS, an option to disable is more useful than not, even if > everyone is expected to use the default.SeaBIOS should be built iff qemu-xen (upstream) is enabled. Since that isn''t an build time option I think think SeaBIOS needs to be either. Ian.
Fabio Fantoni
2013-Sep-04 14:28 UTC
Re: [PATCH v2] tools: allow user to specify a system seabios binary
Il 04/09/2013 15:34, Ian Campbell ha scritto:> On Fri, 2013-08-30 at 12:22 +0200, Fabio Fantoni wrote: >> If this option is given don''t bother building seabios ourselves. >> Likely to be handy for distros who have an existing seabios >> package which they want to reuse. >> >> Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz> >> --- >> config/Tools.mk.in | 2 ++ >> tools/configure | 28 ++++++++++++++++++++++++++++ >> tools/configure.ac | 16 ++++++++++++++++ >> tools/firmware/Makefile | 4 +++- >> tools/firmware/hvmloader/Makefile | 6 +++++- >> 5 files changed, 54 insertions(+), 2 deletions(-) >> >> diff --git a/config/Tools.mk.in b/config/Tools.mk.in >> index e388e42..eeca36b 100644 >> --- a/config/Tools.mk.in >> +++ b/config/Tools.mk.in >> @@ -23,6 +23,7 @@ LD86 := @LD86@ >> BCC := @BCC@ >> IASL := @IASL@ >> FETCHER := @FETCHER@ >> +SEABIOS_PATH := @seabios_path@ >> >> # Extra folder for libs/includes >> PREPEND_INCLUDES := @PREPEND_INCLUDES@ >> @@ -52,6 +53,7 @@ CONFIG_ROMBIOS := @rombios@ >> CONFIG_SEABIOS := @seabios@ >> CONFIG_QEMU_TRAD := @qemu_traditional@ >> CONFIG_QEMU_XEN := @qemu_xen@ >> +CONFIG_SEABIOS_COMP := @seabios_compile@ > I don''t think you need both SEABIOS_PATH and CONFIG_SEABIOS_COMP. Simply > make the compilation of SeaBIOS conditional on SEABIOS_PATH being empty.Thanks for reply, I''ll do new patch version probably tomorrow.>> CONFIG_XEND := @xend@ >> CONFIG_BLKTAP1 := @blktap1@ >> >> diff --git a/tools/configure.ac b/tools/configure.ac >> index 1f57681..67b21bb 100644 >> --- a/tools/configure.ac >> +++ b/tools/configure.ac >> @@ -97,6 +97,22 @@ AS_IF([test "x$qemu_xen" = "xn"], [ >> ]) >> AC_SUBST(qemu_xen) >> >> +AC_ARG_WITH([system-seabios], >> + AS_HELP_STRING([--with-system-seabios@<:@=PATH@:>@], >> + [Use system supplied seabios PATH instead of building and installing >> + our own version]),[ >> + case $withval in >> + no) seabios_compile=y ; seabios_path= ;; >> + *) seabios_compile=n ; seabios_path=$withval ;; > please line these up </nitpick> > >> diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile >> index aff8e56..fe56036 100644 >> --- a/tools/firmware/Makefile >> +++ b/tools/firmware/Makefile >> @@ -7,7 +7,9 @@ INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR) >> >> SUBDIRS-y :>> SUBDIRS-$(CONFIG_OVMF) += ovmf >> -SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir >> +ifeq ($(CONFIG_SEABIOS),y) >> +SUBDIRS-$(CONFIG_SEABIOS_COMP) += seabios-dir >> +endif > Perhaps: > > ifeq ($(CONFIG_SEABIOS_PATH),) > SUBDIRS-$(CONFIG_SEABIOS) += seabios-dir > endif > > TBH I''m not sure that being able to disable SeaBIOS at build time is > even useful. > >> SUBDIRS-$(CONFIG_ROMBIOS) += rombios >> SUBDIRS-$(CONFIG_ROMBIOS) += vgabios >> SUBDIRS-$(CONFIG_ROMBIOS) += etherboot >> diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile >> index c6e7376..c81a9d2 100644 >> --- a/tools/firmware/hvmloader/Makefile >> +++ b/tools/firmware/hvmloader/Makefile >> @@ -70,7 +70,11 @@ endif >> ifeq ($(CONFIG_SEABIOS),y) >> OBJS += seabios.o >> CFLAGS += -DENABLE_SEABIOS >> -SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin >> +ifeq ($(CONFIG_SEABIOS_COMP),y) >> + SEABIOS_ROM := $(SEABIOS_DIR)/out/bios.bin >> +else >> + SEABIOS_ROM := $(SEABIOS_PATH) >> +endif >> ROMS += $(SEABIOS_ROM) >> endif >> >