On 07/05/2017 11:32 AM, Andrea Bolognani wrote:
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(a)redhat.com>
> ---
> +
> +# 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
In fact, gnulib's bootstrap script is already able to enforce
prerequisites, look for buildreq= in bootstrap.conf. But I don't know
if it is smart enough to make it easy to state that a project depends on
GNU make (not all projects have that dependency, but we do) - so maybe
it's worth hoisting the detection of an adequate (GNU) make into
gnulib's bootstrap script.
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"
Yes, that is indeed important, if you like scraping help output. But it
may be better to test some other GNU-only functionality instead of just
scraping output (features, not versions, is always better when it comes
to probing for sufficient support) - the question is whether that can be
done in an equally compact manner.
Is it worth cc'ing the gnulib list for thoughts on incorporating the
notion of "this project requires GNU make" into the $buildreq handling
of bootstrap?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization:
qemu.org |
libvirt.org