[libvirt] [PATCH] autogen.sh: tell user the correct make command

Andrea Bolognani abologna at redhat.com
Wed Jul 5 16:32:07 UTC 2017


On Tue, 2017-07-04 at 16:22 +0100, Daniel P. Berrange wrote:
> When autogen.sh finishes it helpfully prints
> 
>   "Now type 'make' to compile libvirt."
> 
> which is fine if on a host with GNU make, but on *BSD running
> 'make' will end in tears. We should tell users to run 'gmake'
> on these platforms. If 'gmake' doesn't exist then we should
> report an error too
> 
>   "GNU make is required to build libvirt"
> 
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  autogen.sh | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/autogen.sh b/autogen.sh
> index d5d836a..1e99ce8 100755
> --- a/autogen.sh
> +++ b/autogen.sh
> @@ -193,4 +193,21 @@ else
>  fi
>  
>  echo

I'd move this 'echo' to the bottom as well.

> -echo "Now type 'make' to compile libvirt."
> +
> +# Make sure we can find GNU make and tell the user
> +# the right command to run
> +make -v | grep "GNU Make" 1>/dev/null 2>&1

This doesn't catch stderr for the make invocation, and
FreeBSD's make doesn't support the -v flag so you'll
end up with a bunch of spurious output. You can use

  make -v 2>&1 | grep -q "GNU Make"

instead.

> +if test $? = 0

You're not using $? for anything else, so you can just
have the command above as condition for 'if'.

> +then

The rest of the file puts 'then' on the same line as
'if', please keep it consistent.

> +    MAKE=make
> +else
> +    which gmake 1>/dev/null 2>&1
> +    if test $? = 0
> +    then

Same comments as above. Additionally, you don't need
to mention fd 1 explicitly when redirecting stdout,
just '>/dev/null' is enough and looks less weird.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list