|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 5/6] tools: provide --with-system-ipxe
This option lets user specify which binary is to be used as ipxe. If
it is specified, the in-tree ipxe will not be built. This option is in
line with other --with-system-* options we provide.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
v3: ipxe should require rombios
Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
config/Tools.mk.in | 1 +
tools/config.h.in | 3 +++
tools/configure | 58 +++++++++++++++++++++++++++++++++++++++++++++++
tools/configure.ac | 23 +++++++++++++++++++
tools/libxl/libxl_paths.c | 6 ++++-
5 files changed, 90 insertions(+), 1 deletion(-)
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 4cc9f29090..0964f6f9e9 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -50,6 +50,7 @@ FLASK_POLICY := @xsmpolicy@
CONFIG_OVMF := @ovmf@
CONFIG_ROMBIOS := @rombios@
CONFIG_SEABIOS := @seabios@
+CONFIG_IPXE := @ipxe@
CONFIG_QEMU_TRAD := @qemu_traditional@
CONFIG_QEMU_XEN := @qemu_xen@
CONFIG_BLKTAP2 := @blktap2@
diff --git a/tools/config.h.in b/tools/config.h.in
index c66a78c9b3..5987f087b8 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -96,6 +96,9 @@
/* libutil header file name */
#undef INCLUDE_LIBUTIL_H
+/* IPXE path */
+#undef IPXE_PATH
+
/* OVMF path */
#undef OVMF_PATH
diff --git a/tools/configure b/tools/configure
index 4863f28306..4bff2c02fd 100755
--- a/tools/configure
+++ b/tools/configure
@@ -703,6 +703,7 @@ AS86
qemu_traditional
blktap2
LINUX_BACKEND_MODULES
+ipxe
seabios
ovmf
xsmpolicy
@@ -805,6 +806,7 @@ enable_ocamltools
enable_xsmpolicy
enable_ovmf
enable_seabios
+enable_ipxe
with_linux_backend_modules
enable_blktap2
enable_qemu_traditional
@@ -812,6 +814,7 @@ enable_rombios
with_system_qemu
with_system_seabios
with_system_ovmf
+with_system_ipxe
with_extra_qemuu_configure_args
with_xenstored
enable_systemd
@@ -1488,6 +1491,7 @@ Optional Features:
--disable-xsmpolicy Disable XSM policy compilation (default is ENABLED)
--enable-ovmf Enable OVMF (default is DISABLED)
--disable-seabios Disable SeaBIOS (default is ENABLED)
+ --disable-ipxe Disable IPXE (default is ENABLED)
--enable-blktap2 Enable blktap2, (DEFAULT is off)
--enable-qemu-traditional
Enable qemu traditional device model, (DEFAULT is on
@@ -1527,6 +1531,9 @@ Optional Packages:
--with-system-ovmf[=PATH]
Use system supplied OVMF PATH instead of building
and installing our own version
+ --with-system-ipxe[=PATH]
+ Use system supplied IPXE PATH instead of building
+ and installing our own version
--with-extra-qemuu-configure-args[="--ARG1 ..."]
List of additional configure options for upstream
qemu
@@ -4184,6 +4191,29 @@ seabios=$ax_cv_seabios
+# Check whether --enable-ipxe was given.
+if test "${enable_ipxe+set}" = set; then :
+ enableval=$enable_ipxe;
+fi
+
+
+if test "x$enable_ipxe" = "xno"; then :
+
+ ax_cv_ipxe="n"
+
+elif test "x$enable_ipxe" = "xyes"; then :
+
+ ax_cv_ipxe="y"
+
+elif test -z $ax_cv_ipxe; then :
+
+ ax_cv_ipxe="y"
+
+fi
+ipxe=$ax_cv_ipxe
+
+
+
# Check whether --with-linux-backend-modules was given.
if test "${with_linux_backend_modules+set}" = set; then :
@@ -4573,6 +4603,34 @@ _ACEOF
fi
+# Check whether --with-system-ipxe was given.
+if test "${with_system_ipxe+set}" = set; then :
+ withval=$with_system_ipxe;
+ # Disable compilation of IPXE.
+ ipxe=n
+ case $withval in
+ no) ipxe_path= ;;
+ *) ipxe_path=$withval ;;
+ esac
+
+ # IPXE depends on Rombios
+ if test "x$enable_rombios" = "xno"; then
+ as_fn_error $? "Rombios is required for using IPXE" "$LINENO" 5
+ fi
+
+fi
+
+if test "x$ipxe" = "xy" -o -n "$ipxe_path" ; then :
+
+
+cat >>confdefs.h <<_ACEOF
+#define IPXE_PATH "${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"
+_ACEOF
+
+
+fi
+
+
# Check whether --with-extra-qemuu-configure-args was given.
if test "${with_extra_qemuu_configure_args+set}" = set; then :
withval=$with_extra_qemuu_configure_args;
diff --git a/tools/configure.ac b/tools/configure.ac
index 0826af8cbc..2db2356380 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -84,6 +84,7 @@ AX_ARG_DEFAULT_ENABLE([ocamltools], [Disable Ocaml tools])
AX_ARG_DEFAULT_ENABLE([xsmpolicy], [Disable XSM policy compilation])
AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
+AX_ARG_DEFAULT_ENABLE([ipxe], [Disable IPXE])
AC_ARG_WITH([linux-backend-modules],
AS_HELP_STRING([--with-linux-backend-modules="mod1 mod2"],
@@ -241,6 +242,28 @@ AS_IF([test "x$ovmf" = "xy" -o -n "$ovmf_path" ], [
[OVMF path])
])
+AC_ARG_WITH([system-ipxe],
+ AS_HELP_STRING([--with-system-ipxe@<:@=PATH@:>@],
+ [Use system supplied IPXE PATH instead of building and installing
+ our own version]),[
+ # Disable compilation of IPXE.
+ ipxe=n
+ case $withval in
+ no) ipxe_path= ;;
+ *) ipxe_path=$withval ;;
+ esac
+
+ # IPXE depends on Rombios
+ if test "x$enable_rombios" = "xno"; then
+ AC_MSG_ERROR([Rombios is required for using IPXE])
+ fi
+],[])
+AS_IF([test "x$ipxe" = "xy" -o -n "$ipxe_path" ], [
+ AC_DEFINE_UNQUOTED([IPXE_PATH],
+ ["${ipxe_path:-$XENFIRMWAREDIR/ipxe.bin}"],
+ [IPXE path])
+])
+
AC_ARG_WITH([extra-qemuu-configure-args],
AS_HELP_STRING([--with-extra-qemuu-configure-args@<:@="--ARG1 ..."@:>@],
[List of additional configure options for upstream qemu]),[
diff --git a/tools/libxl/libxl_paths.c b/tools/libxl/libxl_paths.c
index 8498f82781..3f6a33628e 100644
--- a/tools/libxl/libxl_paths.c
+++ b/tools/libxl/libxl_paths.c
@@ -55,7 +55,11 @@ const char *libxl__ovmf_path(void)
const char *libxl__ipxe_path(void)
{
- return XENFIRMWAREDIR "/ipxe.bin";
+#ifdef IPXE_PATH
+ return IPXE_PATH;
+#else
+ return NULL;
+#endif
}
/*
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |