tools: build golang tools if go compiler is present

By default, if the go compiler is found by the configure script, build
the golang tools. If the compiler is not found, and --enable-golang was
not explicitly set, do not build to the golang tools.

The corresponding make variable is CONFIG_GOLANG. Remove CONFIG_GOLANG
from tools/Rules.mk since the variable is now set by configure in
config/Tools.mk.

Signed-off-by: Nick Rosbrook <rosbrookn@ainfosec.com>
Acked-by: Wei Liu <wl@xen.org>
Acked-by: George Dunlap <george.dunlap@citrix.com>
This commit is contained in:
Nick Rosbrook authored and Wei Liu committed 2020-04-27 14:24:59 +01:00
1 parent 8d4c17a90b
commit 1e13ea98bb
5 files changed
+155 -2

No files matched your search

+1
View File
@@ -55,6 +55,7 @@ CONFIG_QEMU_TRAD := @qemu_traditional@
CONFIG_QEMU_XEN := @qemu_xen@
CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
CONFIG_LIBNL := @libnl@
CONFIG_GOLANG := @golang@
CONFIG_SYSTEMD := @systemd@
SYSTEMD_CFLAGS := @SYSTEMD_CFLAGS@
+4
View File
@@ -0,0 +1,4 @@
AC_DEFUN([AC_PROG_GO], [
dnl Check for the go compiler
AC_CHECK_TOOL([GO],[go],[no])
])
-2
View File
@@ -35,8 +35,6 @@ XENSTORE_XENSTORED ?= y
debug ?= y
debug_symbols ?= $(debug)
# Set CONFIG_GOLANG=y in .config (or in make) to build golang
CONFIG_GOLANG ?= n
XEN_GOPATH = $(XEN_ROOT)/tools/golang
XEN_GOCODE_URL = golang.xenproject.org
+138
View File
@@ -664,6 +664,7 @@ pyconfig
PYTHONPATH
CHECKPOLICY
XENSTORED
GO
OCAMLFIND
OCAMLBUILD
OCAMLDOC
@@ -705,6 +706,7 @@ LD86
AS86
qemu_traditional
LINUX_BACKEND_MODULES
golang
seabios
ovmf
xsmpolicy
@@ -807,6 +809,7 @@ enable_ocamltools
enable_xsmpolicy
enable_ovmf
enable_seabios
enable_golang
with_linux_backend_modules
enable_qemu_traditional
enable_rombios
@@ -1493,6 +1496,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-golang Disable Go tools (default is ENABLED)
--enable-qemu-traditional
Enable qemu traditional device model, (DEFAULT is on
for Linux or NetBSD x86, otherwise off)
@@ -3870,6 +3874,8 @@ esac
@@ -4200,6 +4206,29 @@ seabios=$ax_cv_seabios
# Check whether --enable-golang was given.
if test "${enable_golang+set}" = set; then :
enableval=$enable_golang;
fi
if test "x$enable_golang" = "xno"; then :
ax_cv_golang="n"
elif test "x$enable_golang" = "xyes"; then :
ax_cv_golang="y"
elif test -z $ax_cv_golang; then :
ax_cv_golang="y"
fi
golang=$ax_cv_golang
# Check whether --with-linux-backend-modules was given.
if test "${with_linux_backend_modules+set}" = set; then :
@@ -6694,6 +6723,115 @@ fi
fi
if test "x$golang" = "xy"; then :
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}go", so it can be a program name with args.
set dummy ${ac_tool_prefix}go; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_GO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$GO"; then
ac_cv_prog_GO="$GO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_GO="${ac_tool_prefix}go"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
GO=$ac_cv_prog_GO
if test -n "$GO"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GO" >&5
$as_echo "$GO" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_GO"; then
ac_ct_GO=$GO
# Extract the first word of "go", so it can be a program name with args.
set dummy go; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_GO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_GO"; then
ac_cv_prog_ac_ct_GO="$ac_ct_GO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_GO="go"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_GO=$ac_cv_prog_ac_ct_GO
if test -n "$ac_ct_GO"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GO" >&5
$as_echo "$ac_ct_GO" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_GO" = x; then
GO="no"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
GO=$ac_ct_GO
fi
else
GO="$ac_cv_prog_GO"
fi
if test "x$GO" = "xno"; then :
if test "x$enable_golang" = "xyes"; then :
as_fn_error $? "Go tools enabled, but missing go compiler" "$LINENO" 5
fi
golang="n"
fi
fi
+12
View File
@@ -73,6 +73,7 @@ m4_include([../m4/fetcher.m4])
m4_include([../m4/ax_compare_version.m4])
m4_include([../m4/paths.m4])
m4_include([../m4/systemd.m4])
m4_include([../m4/golang.m4])
AX_XEN_EXPAND_CONFIG()
@@ -84,6 +85,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([golang], [Disable Go tools])
AC_ARG_WITH([linux-backend-modules],
AS_HELP_STRING([--with-linux-backend-modules="mod1 mod2"],
@@ -320,6 +322,16 @@ AS_IF([test "x$ocamltools" = "xy"], [
])
])
AS_IF([test "x$golang" = "xy"], [
AC_PROG_GO
AS_IF([test "x$GO" = "xno"], [
AS_IF([test "x$enable_golang" = "xyes"], [
AC_MSG_ERROR([Go tools enabled, but missing go compiler])
])
golang="n"
])
])
m4_include([../m4/xenstored.m4])
AX_XENSTORE_OPTIONS
AX_XENSTORE_SET
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.