xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] tools: allow user to specify a system seabios binary
@ 2013-08-30 10:22 Fabio Fantoni
  2013-09-04 13:34 ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Fabio Fantoni @ 2013-08-30 10:22 UTC (permalink / raw)
  To: xen-devel
  Cc: George.Dunlap, Fabio Fantoni, Ian.Jackson, Ian.Campbell,
	Stefano.Stabellini

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] tools: allow user to specify a system seabios binary
  2013-08-30 10:22 [PATCH v2] tools: allow user to specify a system seabios binary Fabio Fantoni
@ 2013-09-04 13:34 ` Ian Campbell
  2013-09-04 13:43   ` Andrew Cooper
  2013-09-04 14:28   ` Fabio Fantoni
  0 siblings, 2 replies; 5+ messages in thread
From: Ian Campbell @ 2013-09-04 13:34 UTC (permalink / raw)
  To: Fabio Fantoni; +Cc: George.Dunlap, xen-devel, Ian.Jackson, Stefano.Stabellini

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),)
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
>  

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] tools: allow user to specify a system seabios binary
  2013-09-04 13:34 ` Ian Campbell
@ 2013-09-04 13:43   ` Andrew Cooper
  2013-09-04 13:53     ` Ian Campbell
  2013-09-04 14:28   ` Fabio Fantoni
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Cooper @ 2013-09-04 13:43 UTC (permalink / raw)
  To: Ian Campbell
  Cc: George.Dunlap, Fabio Fantoni, Ian.Jackson, xen-devel,
	Stefano.Stabellini

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] tools: allow user to specify a system seabios binary
  2013-09-04 13:43   ` Andrew Cooper
@ 2013-09-04 13:53     ` Ian Campbell
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Campbell @ 2013-09-04 13:53 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: George.Dunlap, Fabio Fantoni, Ian.Jackson, xen-devel,
	Stefano.Stabellini

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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] tools: allow user to specify a system seabios binary
  2013-09-04 13:34 ` Ian Campbell
  2013-09-04 13:43   ` Andrew Cooper
@ 2013-09-04 14:28   ` Fabio Fantoni
  1 sibling, 0 replies; 5+ messages in thread
From: Fabio Fantoni @ 2013-09-04 14:28 UTC (permalink / raw)
  To: Ian Campbell; +Cc: George.Dunlap, xen-devel, Ian.Jackson, Stefano.Stabellini

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
>>   
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-04 14:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-30 10:22 [PATCH v2] tools: allow user to specify a system seabios binary Fabio Fantoni
2013-09-04 13:34 ` Ian Campbell
2013-09-04 13:43   ` Andrew Cooper
2013-09-04 13:53     ` Ian Campbell
2013-09-04 14:28   ` Fabio Fantoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).