[PULL 12/30] Makefile: Remove generated files when doing 'distclean'

Paolo Bonzini posted 30 patches 6 years, 4 months ago
Maintainers: Alex Williamson <alex.williamson@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Laurent Vivier <lvivier@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Peter Maydell <peter.maydell@linaro.org>, Aleksandar Markovic <amarkovic@wavecomp.com>, Fam Zheng <fam@euphon.net>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, "Hervé Poussineau" <hpoussin@reactos.org>, Thomas Huth <huth@tuxfamily.org>, Eric Auger <eric.auger@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Richard Henderson <rth@twiddle.net>, Marcelo Tosatti <mtosatti@redhat.com>, Juan Quintela <quintela@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, Thomas Huth <thuth@redhat.com>, John Snow <jsnow@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Aurelien Jarno <aurelien@aurel32.net>, "Alex Bennée" <alex.bennee@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Aleksandar Rikalo <arikalo@wavecomp.com>
There is a newer version of this series
[PULL 12/30] Makefile: Remove generated files when doing 'distclean'
Posted by Paolo Bonzini 6 years, 4 months ago
From: Thomas Huth <thuth@redhat.com>

When running "make distclean" we currently leave a lot of generated
files in the build directory. Fix that.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile               |  6 +++---
 tests/Makefile.include | 12 +++++++++++-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 8da3359..47b1e1f 100644
--- a/Makefile
+++ b/Makefile
@@ -696,14 +696,14 @@ clean: recurse-clean
 		-exec rm {} +
 	rm -f $(edk2-decompressed)
 	rm -f $(filter-out %.tlb,$(TOOLS)) $(HELPERS-y) TAGS cscope.* *.pod *~ */*~
-	rm -f fsdev/*.pod scsi/*.pod
+	rm -f fsdev/*.pod scsi/*.pod docs/*.pod docs/*/*.pod docs/*/.buildinfo
 	rm -f qemu-img-cmds.h
 	rm -f ui/shader/*-vert.h ui/shader/*-frag.h
 	@# May not be present in generated-files-y
 	rm -f trace/generated-tracers-dtrace.dtrace*
 	rm -f trace/generated-tracers-dtrace.h*
 	rm -f $(foreach f,$(generated-files-y),$(f) $(f)-timestamp)
-	rm -f qapi-gen-timestamp
+	rm -f qapi-gen-timestamp vhost-user-input
 	rm -rf qga/qapi-generated
 	rm -f config-all-devices.mak
 
@@ -724,7 +724,7 @@ distclean: clean
 	rm -f tests/tcg/config-*.mak
 	rm -f config-all-devices.mak config-all-disas.mak config.status
 	rm -f $(SUBDIR_DEVICES_MAK)
-	rm -f po/*.mo tests/qemu-iotests/common.env
+	rm -f po/*.mo
 	rm -f roms/seabios/config.mak roms/vgabios/config.mak
 	rm -f qemu-doc.info qemu-doc.aux qemu-doc.cp qemu-doc.cps
 	rm -f qemu-doc.fn qemu-doc.fns qemu-doc.info qemu-doc.ky qemu-doc.kys
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 3543451..48b52da 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -1176,11 +1176,21 @@ check: check-block check-qapi-schema check-unit check-softfloat check-qtest chec
 check-clean:
 	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
 	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
-	rm -f tests/test-qapi-gen-timestamp
 	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
+	rm -f tests/qemu-iotests/common.env tests/qemu-iotests/check.*
+	rm -f tests/test-qapi-gen-timestamp tests/qht-bench$(EXESUF) \
+		tests/fp/fp-test tests/fp/*.out tests/qapi-schema/*.test.*
 
 clean: check-clean
 
+check-distclean:
+	rm -f tests/test-qapi-types*.c tests/test-qapi-visit*.c \
+		tests/test-qapi-commands*.c tests/test-qapi-events*.c \
+		tests/test-qapi-emit-events.[ch] tests/test-qapi-introspect.c \
+		tests/include/test-qapi-*.c
+
+distclean: check-distclean
+
 # Build the help program automatically
 
 all: $(QEMU_IOTESTS_HELPERS-y)
-- 
1.8.3.1



Re: [PULL 12/30] Makefile: Remove generated files when doing 'distclean'
Posted by Peter Maydell 6 years, 4 months ago
On Wed, 2 Oct 2019 at 18:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> From: Thomas Huth <thuth@redhat.com>
>
> When running "make distclean" we currently leave a lot of generated
> files in the build directory. Fix that.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: John Snow <jsnow@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---

> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 3543451..48b52da 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -1176,11 +1176,21 @@ check: check-block check-qapi-schema check-unit check-softfloat check-qtest chec
>  check-clean:
>         rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
>         rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
> -       rm -f tests/test-qapi-gen-timestamp
>         rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
> +       rm -f tests/qemu-iotests/common.env tests/qemu-iotests/check.*
> +       rm -f tests/test-qapi-gen-timestamp tests/qht-bench$(EXESUF) \
> +               tests/fp/fp-test tests/fp/*.out tests/qapi-schema/*.test.*
>
>  clean: check-clean

Hi; this change breaks the sequence
 'make clean; make; make check'

because now 'make clean' removes tests/qemu-iotests/common.env.
But this file is created by 'configure', not by 'make', so if there's
no other reason why 'make' needs to re-run configure then we get
to the 'make check' stage with the file not existing, and then
when we try to run the iotests they fail with:

./check: line 60:
/home/petmay01/linaro/qemu-for-merges/build/alldbg/tests/qemu-iotests/common.env:
No such file or directory
check: failed to source common.env (make sure the qemu-iotests are run
from tests/qemu-iotests in the build tree)
/home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:1102:
recipe for target 'check-tests/check-block.sh' failed

thanks
-- PMM

Re: [PULL 12/30] Makefile: Remove generated files when doing 'distclean'
Posted by Paolo Bonzini 6 years, 4 months ago
On 04/10/19 14:20, Peter Maydell wrote:
> On Wed, 2 Oct 2019 at 18:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> From: Thomas Huth <thuth@redhat.com>
>>
>> When running "make distclean" we currently leave a lot of generated
>> files in the build directory. Fix that.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> Reviewed-by: John Snow <jsnow@redhat.com>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
> 
>> diff --git a/tests/Makefile.include b/tests/Makefile.include
>> index 3543451..48b52da 100644
>> --- a/tests/Makefile.include
>> +++ b/tests/Makefile.include
>> @@ -1176,11 +1176,21 @@ check: check-block check-qapi-schema check-unit check-softfloat check-qtest chec
>>  check-clean:
>>         rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
>>         rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
>> -       rm -f tests/test-qapi-gen-timestamp
>>         rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
>> +       rm -f tests/qemu-iotests/common.env tests/qemu-iotests/check.*
>> +       rm -f tests/test-qapi-gen-timestamp tests/qht-bench$(EXESUF) \
>> +               tests/fp/fp-test tests/fp/*.out tests/qapi-schema/*.test.*
>>
>>  clean: check-clean
> 
> Hi; this change breaks the sequence
>  'make clean; make; make check'
> 
> because now 'make clean' removes tests/qemu-iotests/common.env.
> But this file is created by 'configure', not by 'make', so if there's
> no other reason why 'make' needs to re-run configure then we get
> to the 'make check' stage with the file not existing, and then
> when we try to run the iotests they fail with:
> 
> ./check: line 60:
> /home/petmay01/linaro/qemu-for-merges/build/alldbg/tests/qemu-iotests/common.env:
> No such file or directory
> check: failed to source common.env (make sure the qemu-iotests are run
> from tests/qemu-iotests in the build tree)
> /home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:1102:
> recipe for target 'check-tests/check-block.sh' failed
> 
> thanks
> -- PMM
> 

I've dropped this patch and will send v3 that adds back the VMX patches.

Paolo

Re: [PULL 12/30] Makefile: Remove generated files when doing 'distclean'
Posted by Thomas Huth 6 years, 4 months ago
----- Original Message -----
> From: "Paolo Bonzini" <pbonzini@redhat.com>
> To: "Peter Maydell" <peter.maydell@linaro.org>
> Cc: "QEMU Developers" <qemu-devel@nongnu.org>, "Thomas Huth" <thuth@redhat.com>
> Sent: Friday, October 4, 2019 6:48:47 PM
> Subject: Re: [PULL 12/30] Makefile: Remove generated files when doing 'distclean'
> 
> On 04/10/19 14:20, Peter Maydell wrote:
> > On Wed, 2 Oct 2019 at 18:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >>
> >> From: Thomas Huth <thuth@redhat.com>
> >>
> >> When running "make distclean" we currently leave a lot of generated
> >> files in the build directory. Fix that.
> >>
> >> Signed-off-by: Thomas Huth <thuth@redhat.com>
> >> Reviewed-by: John Snow <jsnow@redhat.com>
> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> >> ---
> > 
> >> diff --git a/tests/Makefile.include b/tests/Makefile.include
> >> index 3543451..48b52da 100644
> >> --- a/tests/Makefile.include
> >> +++ b/tests/Makefile.include
> >> @@ -1176,11 +1176,21 @@ check: check-block check-qapi-schema check-unit
> >> check-softfloat check-qtest chec
> >>  check-clean:
> >>         rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
> >>         rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST),
> >>         $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
> >> -       rm -f tests/test-qapi-gen-timestamp
> >>         rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
> >> +       rm -f tests/qemu-iotests/common.env tests/qemu-iotests/check.*
> >> +       rm -f tests/test-qapi-gen-timestamp tests/qht-bench$(EXESUF) \
> >> +               tests/fp/fp-test tests/fp/*.out tests/qapi-schema/*.test.*
> >>
> >>  clean: check-clean
> > 
> > Hi; this change breaks the sequence
> >  'make clean; make; make check'
> > 
> > because now 'make clean' removes tests/qemu-iotests/common.env.
> > But this file is created by 'configure', not by 'make', so if there's
> > no other reason why 'make' needs to re-run configure then we get
> > to the 'make check' stage with the file not existing, and then
> > when we try to run the iotests they fail with:
> > 
> > ./check: line 60:
> > /home/petmay01/linaro/qemu-for-merges/build/alldbg/tests/qemu-iotests/common.env:
> > No such file or directory
> > check: failed to source common.env (make sure the qemu-iotests are run
> > from tests/qemu-iotests in the build tree)
> > /home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:1102:
> > recipe for target 'check-tests/check-block.sh' failed
> 
> I've dropped this patch and will send v3 that adds back the VMX patches.

Thanks, and I will rework the patch to only remove that file during "make distclean",
and not already during "make clean".

 Thomas

Re: [PULL 12/30] Makefile: Remove generated files when doing 'distclean'
Posted by Aleksandar Markovic 6 years, 4 months ago
On Monday, October 7, 2019, Thomas Huth <thuth@redhat.com> wrote:

> ----- Original Message -----
> > From: "Paolo Bonzini" <pbonzini@redhat.com>
> > To: "Peter Maydell" <peter.maydell@linaro.org>
> > Cc: "QEMU Developers" <qemu-devel@nongnu.org>, "Thomas Huth" <
> thuth@redhat.com>
> > Sent: Friday, October 4, 2019 6:48:47 PM
> > Subject: Re: [PULL 12/30] Makefile: Remove generated files when doing
> 'distclean'
> >
> > On 04/10/19 14:20, Peter Maydell wrote:
> > > On Wed, 2 Oct 2019 at 18:07, Paolo Bonzini <pbonzini@redhat.com>
> wrote:
> > >>
> > >> From: Thomas Huth <thuth@redhat.com>
> > >>
> > >> When running "make distclean" we currently leave a lot of generated
> > >> files in the build directory. Fix that.
> > >>
> > >> Signed-off-by: Thomas Huth <thuth@redhat.com>
> > >> Reviewed-by: John Snow <jsnow@redhat.com>
> > >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > >> ---
> > >
> > >> diff --git a/tests/Makefile.include b/tests/Makefile.include
> > >> index 3543451..48b52da 100644
> > >> --- a/tests/Makefile.include
> > >> +++ b/tests/Makefile.include
> > >> @@ -1176,11 +1176,21 @@ check: check-block check-qapi-schema
> check-unit
> > >> check-softfloat check-qtest chec
> > >>  check-clean:
> > >>         rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
> > >>         rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST),
> > >>         $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
> > >> -       rm -f tests/test-qapi-gen-timestamp
> > >>         rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
> > >> +       rm -f tests/qemu-iotests/common.env tests/qemu-iotests/check.*
> > >> +       rm -f tests/test-qapi-gen-timestamp tests/qht-bench$(EXESUF) \
> > >> +               tests/fp/fp-test tests/fp/*.out
> tests/qapi-schema/*.test.*
> > >>
> > >>  clean: check-clean
> > >
> > > Hi; this change breaks the sequence
> > >  'make clean; make; make check'
> > >
> > > because now 'make clean' removes tests/qemu-iotests/common.env.
> > > But this file is created by 'configure', not by 'make', so if there's
> > > no other reason why 'make' needs to re-run configure then we get
> > > to the 'make check' stage with the file not existing, and then
> > > when we try to run the iotests they fail with:
> > >
> > > ./check: line 60:
> > > /home/petmay01/linaro/qemu-for-merges/build/alldbg/tests/
> qemu-iotests/common.env:
> > > No such file or directory
> > > check: failed to source common.env (make sure the qemu-iotests are run
> > > from tests/qemu-iotests in the build tree)
> > > /home/petmay01/linaro/qemu-for-merges/tests/Makefile.include:1102:
> > > recipe for target 'check-tests/check-block.sh' failed
> >
> > I've dropped this patch and will send v3 that adds back the VMX patches.
>
> Thanks, and I will rework the patch to only remove that file during "make
> distclean",
> and not already during "make clean".
>
>  Thomas
>
>
The commit message says that it affects "make distclean". It does not
mention "make clean", while the change obviously affects "make clean" too.
It looks to me that the commit message was misleading. It would be good if
the new version of the patch has clearer (not misleading) commit message,
specifying what exactly is affected by the change. Or, alteratively, this
patch could be split into several ones.

Thanks,
Aleksandar