Re: [libvirt] [PATCH v2] autogen.sh: tell user the correct make command
On Wed, Dec 13, 2017 at 11:00:34AM +0100, Andrea Bolognani wrote: > On Tue, 2017-12-12 at 15:57 +, 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> > --- > > autogen.sh | 14 +- > > 1 file changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/autogen.sh b/autogen.sh > > index d5d836aa71..ea94528de6 100755 > > --- a/autogen.sh > > +++ b/autogen.sh > > @@ -175,6 +175,18 @@ if test "$OBJ_DIR"; then > > } > > fi > > > > +# Make sure we can find GNU make and tell the user > > +# the right command to run > > +if make -v 2>&1 | grep -q "GNU Make"; then > > +MAKE=make > > +else > > +if which gmake >/dev/null 2>&1; then > > +MAKE=gmake > > +else > > +die "GNU make is required to build libvirt" > > +fi > > +fi > > Alternative approach which doesn't assume 'gmake' is necessarily > going to be GNU make - even though it is, for all intents and > purposes, a fairly reasonable assumption: > > MAKE= > for cmd in make gmake; do > if $cmd -v 2>&1 | grep -q "GNU Make"; then > MAKE=$cmd > break > fi > done > test "$MAKE" || { > die "GNU make is required to build libvirt" > } > > Or you can leave it as it is, your call. Yeah, lets do this, it is nicer. > > Reviewed-by: Andrea Bolognani Regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2] autogen.sh: tell user the correct make command
On Tue, 2017-12-12 at 15:57 +, 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> --- > autogen.sh | 14 +- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/autogen.sh b/autogen.sh > index d5d836aa71..ea94528de6 100755 > --- a/autogen.sh > +++ b/autogen.sh > @@ -175,6 +175,18 @@ if test "$OBJ_DIR"; then > } > fi > > +# Make sure we can find GNU make and tell the user > +# the right command to run > +if make -v 2>&1 | grep -q "GNU Make"; then > +MAKE=make > +else > +if which gmake >/dev/null 2>&1; then > +MAKE=gmake > +else > +die "GNU make is required to build libvirt" > +fi > +fi Alternative approach which doesn't assume 'gmake' is necessarily going to be GNU make - even though it is, for all intents and purposes, a fairly reasonable assumption: MAKE= for cmd in make gmake; do if $cmd -v 2>&1 | grep -q "GNU Make"; then MAKE=$cmd break fi done test "$MAKE" || { die "GNU make is required to build libvirt" } Or you can leave it as it is, your call. > + > if test -z "$*" && test -z "$extra_args" && test -f config.status; then > echo "Running config.status..." > ./config.status --recheck || { > @@ -193,4 +205,4 @@ else > fi > > echo > -echo "Now type 'make' to compile libvirt." > +echo "Now type '$MAKE' to compile libvirt." Reviewed-by: Andrea Bolognani -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list