Message ID | 20200825202755.50626-3-r.bolshakov@yadro.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/4] configure: Use discovered make for in-source build | expand |
On 25/08/2020 22.27, Roman Bolshakov wrote: > QEMU build fails with cryptic messages if make is too old: > > Makefile.ninja:2655: *** multiple target patterns. Stop. > > To avoid the confusion it's worth to fail the build right away and print > a friendly error message. > > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> > Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com> > --- > Makefile | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/Makefile b/Makefile > index 81794d5c34..b4ebf3e30f 100644 > --- a/Makefile > +++ b/Makefile > @@ -4,6 +4,11 @@ ifneq ($(words $(subst :, ,$(CURDIR))), 1) > $(error main directory cannot contain spaces nor colons) > endif > > +ifeq ($(filter undefine,$(value .FEATURES)),) > +$(error Unsupported Make version: $(MAKE_VERSION). \ > + Please use GNU Make 3.82 or above) > +endif > + > # Always point to the root of the build tree (needs GNU make). > BUILD_DIR=$(CURDIR) Reviewed-by: Thomas Huth <thuth@redhat.com>
Le 12/10/2020 à 11:47, Thomas Huth a écrit : > On 25/08/2020 22.27, Roman Bolshakov wrote: >> QEMU build fails with cryptic messages if make is too old: >> >> Makefile.ninja:2655: *** multiple target patterns. Stop. >> >> To avoid the confusion it's worth to fail the build right away and print >> a friendly error message. >> >> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> >> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com> >> --- >> Makefile | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/Makefile b/Makefile >> index 81794d5c34..b4ebf3e30f 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -4,6 +4,11 @@ ifneq ($(words $(subst :, ,$(CURDIR))), 1) >> $(error main directory cannot contain spaces nor colons) >> endif >> >> +ifeq ($(filter undefine,$(value .FEATURES)),) >> +$(error Unsupported Make version: $(MAKE_VERSION). \ >> + Please use GNU Make 3.82 or above) >> +endif >> + >> # Always point to the root of the build tree (needs GNU make). >> BUILD_DIR=$(CURDIR) > > Reviewed-by: Thomas Huth <thuth@redhat.com> > > Applied to my trivial-patches branch. Thanks, Laurent
On Sun, 13 Dec 2020 at 17:22, Laurent Vivier <laurent@vivier.eu> wrote: > > Le 12/10/2020 à 11:47, Thomas Huth a écrit : > > On 25/08/2020 22.27, Roman Bolshakov wrote: > >> QEMU build fails with cryptic messages if make is too old: > >> > >> Makefile.ninja:2655: *** multiple target patterns. Stop. > >> > >> To avoid the confusion it's worth to fail the build right away and print > >> a friendly error message. > >> > >> +ifeq ($(filter undefine,$(value .FEATURES)),) > >> +$(error Unsupported Make version: $(MAKE_VERSION). \ > >> + Please use GNU Make 3.82 or above) > >> +endif > >> + > >> # Always point to the root of the build tree (needs GNU make). > >> BUILD_DIR=$(CURDIR) > > > > Reviewed-by: Thomas Huth <thuth@redhat.com> > > > > > > Applied to my trivial-patches branch. Commit 09e93326e448ab4 says that the switch to ninja from ninjatool removed the requirement for Make 3.82. Is this change still required? thanks -- PMM
Le 13/12/2020 à 20:04, Peter Maydell a écrit : > On Sun, 13 Dec 2020 at 17:22, Laurent Vivier <laurent@vivier.eu> wrote: >> >> Le 12/10/2020 à 11:47, Thomas Huth a écrit : >>> On 25/08/2020 22.27, Roman Bolshakov wrote: >>>> QEMU build fails with cryptic messages if make is too old: >>>> >>>> Makefile.ninja:2655: *** multiple target patterns. Stop. >>>> >>>> To avoid the confusion it's worth to fail the build right away and print >>>> a friendly error message. >>>> >>>> +ifeq ($(filter undefine,$(value .FEATURES)),) >>>> +$(error Unsupported Make version: $(MAKE_VERSION). \ >>>> + Please use GNU Make 3.82 or above) >>>> +endif >>>> + >>>> # Always point to the root of the build tree (needs GNU make). >>>> BUILD_DIR=$(CURDIR) >>> >>> Reviewed-by: Thomas Huth <thuth@redhat.com> >>> >>> >> >> Applied to my trivial-patches branch. > > Commit 09e93326e448ab4 says that the switch to ninja from > ninjatool removed the requirement for Make 3.82. Is this > change still required? > It seems 09e93326e448ab4 has been committed on 17th of October, so after Thomas' review. I remove it from my queue. Thanks, Laurent
On Sun, Dec 13, 2020 at 11:56:22PM +0100, Laurent Vivier wrote: > Le 13/12/2020 à 20:04, Peter Maydell a écrit : > > On Sun, 13 Dec 2020 at 17:22, Laurent Vivier <laurent@vivier.eu> wrote: > >> > >> Le 12/10/2020 à 11:47, Thomas Huth a écrit : > >>> On 25/08/2020 22.27, Roman Bolshakov wrote: > >>>> QEMU build fails with cryptic messages if make is too old: > >>>> > >>>> Makefile.ninja:2655: *** multiple target patterns. Stop. > >>>> > >>>> To avoid the confusion it's worth to fail the build right away and print > >>>> a friendly error message. > >>>> > >>>> +ifeq ($(filter undefine,$(value .FEATURES)),) > >>>> +$(error Unsupported Make version: $(MAKE_VERSION). \ > >>>> + Please use GNU Make 3.82 or above) > >>>> +endif > >>>> + > >>>> # Always point to the root of the build tree (needs GNU make). > >>>> BUILD_DIR=$(CURDIR) > >>> > >>> Reviewed-by: Thomas Huth <thuth@redhat.com> > >>> > >>> > >> > >> Applied to my trivial-patches branch. > > > > Commit 09e93326e448ab4 says that the switch to ninja from > > ninjatool removed the requirement for Make 3.82. Is this > > change still required? > > > > It seems 09e93326e448ab4 has been committed on 17th of October, so after Thomas' review. > I remove it from my queue. > I can confirm: ./configure --target-list=x86_64-softmmu --enable-trace-backends=dtrace && make -j$(nproc) Works fine on macOS with the latest qemu HEAD. The patch can be discarded. Regards, Roman
diff --git a/Makefile b/Makefile index 81794d5c34..b4ebf3e30f 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,11 @@ ifneq ($(words $(subst :, ,$(CURDIR))), 1) $(error main directory cannot contain spaces nor colons) endif +ifeq ($(filter undefine,$(value .FEATURES)),) +$(error Unsupported Make version: $(MAKE_VERSION). \ + Please use GNU Make 3.82 or above) +endif + # Always point to the root of the build tree (needs GNU make). BUILD_DIR=$(CURDIR)