Patchwork [V9,2/8] Buildsystem clean tests directory clearly

login
register
mail settings
Submitter Wayne Xia
Date Nov. 16, 2012, 10:12 a.m.
Message ID <1353060737-4244-3-git-send-email-xiawenc@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/199529/
State New
Headers show

Comments

Wayne Xia - Nov. 16, 2012, 10:12 a.m.
Currently make clean only clean tests/tcg and hard to extend.
This patch added command make check-clean, which clean all
generated files used in tests. With this command root Makefile
do not care tests clean method any more, it simply calls the
command to do it, so any more clean script could be added in
tests/Makefile make it easier to extend.

Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
---
 Makefile       |    2 +-
 configure      |    2 +-
 tests/Makefile |    7 +++++++
 3 files changed, 9 insertions(+), 2 deletions(-)
Peter Maydell - Nov. 16, 2012, 10:23 a.m.
On 16 November 2012 10:12, Wenchao Xia <xiawenc@linux.vnet.ibm.com> wrote:
>   Currently make clean only clean tests/tcg and hard to extend.
> This patch added command make check-clean, which clean all
> generated files used in tests. With this command root Makefile
> do not care tests clean method any more, it simply calls the
> command to do it, so any more clean script could be added in
> tests/Makefile make it easier to extend.
>
> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
> ---
>  Makefile       |    2 +-
>  configure      |    2 +-
>  tests/Makefile |    7 +++++++
>  3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index f40885b..8201e80 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -251,7 +251,7 @@ clean:
>         rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
>         rm -rf qapi-generated
>         rm -rf qga/qapi-generated
> -       $(MAKE) -C tests/tcg clean
> +       MAKEFILES=./tests/Makefile $(MAKE) check-clean

tests/Makefile is directly included by the top level makefile,
so there's no need to reinvoke make here. You should be able to
just make check-clean a dependency of the clean target here.

>         for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard; do \
>         if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>         rm -f $$d/qemu-options.def; \
> diff --git a/configure b/configure
> index f847ee2..a18e267 100755
> --- a/configure
> +++ b/configure
> @@ -4163,7 +4163,7 @@ DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
>  DIRS="$DIRS roms/seabios roms/vgabios"
>  DIRS="$DIRS qapi-generated"
>  DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
> -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
> +FILES="Makefile tests/Makefile tests/tcg/Makefile qdict-test-data.txt"
>  FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
>  FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
>  FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
> diff --git a/tests/Makefile b/tests/Makefile
> index 9bf0765..a286622 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -94,6 +94,7 @@ check-help:
>         @echo " make check-unit           Run qobject tests"
>         @echo " make check-block          Run block tests"
>         @echo " make check-report.html    Generates an HTML test report"
> +       @echo " make check-clean          Clean the tests"
>         @echo
>         @echo "Please note that HTML reports do not regenerate if the unit tests"
>         @echo "has not changed."
> @@ -148,4 +149,10 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>  check-block: $(patsubst %,check-%, $(check-block-y))
>  check: check-unit check-qtest
>
> +check-clean:
> +       $(MAKE) -C tests/tcg clean
> +       rm -f $(check-unit-y)
> +       rm -f $(check-qtest-i386-y) $(check-qtest-x86_64-y) $(check-qtest-sparc64-y) $(check-qtest-sparc-y)

Overlong line.

-- PMM
Wayne Xia - Nov. 16, 2012, 10:31 a.m.
于 2012-11-16 18:23, Peter Maydell 写道:
> On 16 November 2012 10:12, Wenchao Xia <xiawenc@linux.vnet.ibm.com> wrote:
>>    Currently make clean only clean tests/tcg and hard to extend.
>> This patch added command make check-clean, which clean all
>> generated files used in tests. With this command root Makefile
>> do not care tests clean method any more, it simply calls the
>> command to do it, so any more clean script could be added in
>> tests/Makefile make it easier to extend.
>>
>> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>> ---
>>   Makefile       |    2 +-
>>   configure      |    2 +-
>>   tests/Makefile |    7 +++++++
>>   3 files changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index f40885b..8201e80 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -251,7 +251,7 @@ clean:
>>          rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
>>          rm -rf qapi-generated
>>          rm -rf qga/qapi-generated
>> -       $(MAKE) -C tests/tcg clean
>> +       MAKEFILES=./tests/Makefile $(MAKE) check-clean
>
> tests/Makefile is directly included by the top level makefile,
> so there's no need to reinvoke make here. You should be able to
> just make check-clean a dependency of the clean target here.
>
   if make destclean is executed, that tests/Makefile is not include
any more for a condition in root Makefile, change that condition may
bring extra trouble, MAKEFILES= is added to work around it.

>>          for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard; do \
>>          if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>>          rm -f $$d/qemu-options.def; \
>> diff --git a/configure b/configure
>> index f847ee2..a18e267 100755
>> --- a/configure
>> +++ b/configure
>> @@ -4163,7 +4163,7 @@ DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
>>   DIRS="$DIRS roms/seabios roms/vgabios"
>>   DIRS="$DIRS qapi-generated"
>>   DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
>> -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
>> +FILES="Makefile tests/Makefile tests/tcg/Makefile qdict-test-data.txt"
>>   FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
>>   FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
>>   FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
>> diff --git a/tests/Makefile b/tests/Makefile
>> index 9bf0765..a286622 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -94,6 +94,7 @@ check-help:
>>          @echo " make check-unit           Run qobject tests"
>>          @echo " make check-block          Run block tests"
>>          @echo " make check-report.html    Generates an HTML test report"
>> +       @echo " make check-clean          Clean the tests"
>>          @echo
>>          @echo "Please note that HTML reports do not regenerate if the unit tests"
>>          @echo "has not changed."
>> @@ -148,4 +149,10 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>>   check-block: $(patsubst %,check-%, $(check-block-y))
>>   check: check-unit check-qtest
>>
>> +check-clean:
>> +       $(MAKE) -C tests/tcg clean
>> +       rm -f $(check-unit-y)
>> +       rm -f $(check-qtest-i386-y) $(check-qtest-x86_64-y) $(check-qtest-sparc64-y) $(check-qtest-sparc-y)
>
> Overlong line.
>
> -- PMM
>
ok.
Paolo Bonzini - Nov. 16, 2012, 10:56 a.m.
Il 16/11/2012 11:31, Wenchao Xia ha scritto:
> 于 2012-11-16 18:23, Peter Maydell 写道:
>> On 16 November 2012 10:12, Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>> wrote:
>>>    Currently make clean only clean tests/tcg and hard to extend.
>>> This patch added command make check-clean, which clean all
>>> generated files used in tests. With this command root Makefile
>>> do not care tests clean method any more, it simply calls the
>>> command to do it, so any more clean script could be added in
>>> tests/Makefile make it easier to extend.
>>>
>>> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>>> ---
>>>   Makefile       |    2 +-
>>>   configure      |    2 +-
>>>   tests/Makefile |    7 +++++++
>>>   3 files changed, 9 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index f40885b..8201e80 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -251,7 +251,7 @@ clean:
>>>          rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
>>>          rm -rf qapi-generated
>>>          rm -rf qga/qapi-generated
>>> -       $(MAKE) -C tests/tcg clean
>>> +       MAKEFILES=./tests/Makefile $(MAKE) check-clean
>>
>> tests/Makefile is directly included by the top level makefile,
>> so there's no need to reinvoke make here. You should be able to
>> just make check-clean a dependency of the clean target here.
>>
>   if make destclean is executed, that tests/Makefile is not include
> any more for a condition in root Makefile, change that condition may
> bring extra trouble, MAKEFILES= is added to work around it.

Does it work if you change

ifneq ($(wildcard config-host.mak),)
include $(SRC_PATH)/tests/Makefile
endif

to

-include $(SRC_PATH)/tests/Makefile

?

Paolo

> 
>>>          for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard; do \
>>>          if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>>>          rm -f $$d/qemu-options.def; \
>>> diff --git a/configure b/configure
>>> index f847ee2..a18e267 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -4163,7 +4163,7 @@ DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
>>>   DIRS="$DIRS roms/seabios roms/vgabios"
>>>   DIRS="$DIRS qapi-generated"
>>>   DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
>>> -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
>>> +FILES="Makefile tests/Makefile tests/tcg/Makefile qdict-test-data.txt"
>>>   FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
>>>   FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
>>>   FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
>>> diff --git a/tests/Makefile b/tests/Makefile
>>> index 9bf0765..a286622 100644
>>> --- a/tests/Makefile
>>> +++ b/tests/Makefile
>>> @@ -94,6 +94,7 @@ check-help:
>>>          @echo " make check-unit           Run qobject tests"
>>>          @echo " make check-block          Run block tests"
>>>          @echo " make check-report.html    Generates an HTML test
>>> report"
>>> +       @echo " make check-clean          Clean the tests"
>>>          @echo
>>>          @echo "Please note that HTML reports do not regenerate if
>>> the unit tests"
>>>          @echo "has not changed."
>>> @@ -148,4 +149,10 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>>>   check-block: $(patsubst %,check-%, $(check-block-y))
>>>   check: check-unit check-qtest
>>>
>>> +check-clean:
>>> +       $(MAKE) -C tests/tcg clean
>>> +       rm -f $(check-unit-y)
>>> +       rm -f $(check-qtest-i386-y) $(check-qtest-x86_64-y)
>>> $(check-qtest-sparc64-y) $(check-qtest-sparc-y)
>>
>> Overlong line.
>>
>> -- PMM
>>
> ok.
> 
> 
>
Wayne Xia - Nov. 16, 2012, 11:01 a.m.
于 2012-11-16 18:56, Paolo Bonzini 写道:
> Il 16/11/2012 11:31, Wenchao Xia ha scritto:
>> 于 2012-11-16 18:23, Peter Maydell 写道:
>>> On 16 November 2012 10:12, Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>>> wrote:
>>>>     Currently make clean only clean tests/tcg and hard to extend.
>>>> This patch added command make check-clean, which clean all
>>>> generated files used in tests. With this command root Makefile
>>>> do not care tests clean method any more, it simply calls the
>>>> command to do it, so any more clean script could be added in
>>>> tests/Makefile make it easier to extend.
>>>>
>>>> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>>>> ---
>>>>    Makefile       |    2 +-
>>>>    configure      |    2 +-
>>>>    tests/Makefile |    7 +++++++
>>>>    3 files changed, 9 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index f40885b..8201e80 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -251,7 +251,7 @@ clean:
>>>>           rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
>>>>           rm -rf qapi-generated
>>>>           rm -rf qga/qapi-generated
>>>> -       $(MAKE) -C tests/tcg clean
>>>> +       MAKEFILES=./tests/Makefile $(MAKE) check-clean
>>>
>>> tests/Makefile is directly included by the top level makefile,
>>> so there's no need to reinvoke make here. You should be able to
>>> just make check-clean a dependency of the clean target here.
>>>
>>    if make destclean is executed, that tests/Makefile is not include
>> any more for a condition in root Makefile, change that condition may
>> bring extra trouble, MAKEFILES= is added to work around it.
>
> Does it work if you change
>
> ifneq ($(wildcard config-host.mak),)
> include $(SRC_PATH)/tests/Makefile
> endif
>
> to
>
> -include $(SRC_PATH)/tests/Makefile
>
> ?
>
> Paolo
>
   yes, but original author seems not include tests/Makefile in
this condition on purpose, so using MAKEFILES to keep it unchanged.

>>
>>>>           for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard; do \
>>>>           if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>>>>           rm -f $$d/qemu-options.def; \
>>>> diff --git a/configure b/configure
>>>> index f847ee2..a18e267 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -4163,7 +4163,7 @@ DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
>>>>    DIRS="$DIRS roms/seabios roms/vgabios"
>>>>    DIRS="$DIRS qapi-generated"
>>>>    DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
>>>> -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
>>>> +FILES="Makefile tests/Makefile tests/tcg/Makefile qdict-test-data.txt"
>>>>    FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
>>>>    FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
>>>>    FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
>>>> diff --git a/tests/Makefile b/tests/Makefile
>>>> index 9bf0765..a286622 100644
>>>> --- a/tests/Makefile
>>>> +++ b/tests/Makefile
>>>> @@ -94,6 +94,7 @@ check-help:
>>>>           @echo " make check-unit           Run qobject tests"
>>>>           @echo " make check-block          Run block tests"
>>>>           @echo " make check-report.html    Generates an HTML test
>>>> report"
>>>> +       @echo " make check-clean          Clean the tests"
>>>>           @echo
>>>>           @echo "Please note that HTML reports do not regenerate if
>>>> the unit tests"
>>>>           @echo "has not changed."
>>>> @@ -148,4 +149,10 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>>>>    check-block: $(patsubst %,check-%, $(check-block-y))
>>>>    check: check-unit check-qtest
>>>>
>>>> +check-clean:
>>>> +       $(MAKE) -C tests/tcg clean
>>>> +       rm -f $(check-unit-y)
>>>> +       rm -f $(check-qtest-i386-y) $(check-qtest-x86_64-y)
>>>> $(check-qtest-sparc64-y) $(check-qtest-sparc-y)
>>>
>>> Overlong line.
>>>
>>> -- PMM
>>>
>> ok.
>>
>>
>>
>

Patch

diff --git a/Makefile b/Makefile
index f40885b..8201e80 100644
--- a/Makefile
+++ b/Makefile
@@ -251,7 +251,7 @@  clean:
 	rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
 	rm -rf qapi-generated
 	rm -rf qga/qapi-generated
-	$(MAKE) -C tests/tcg clean
+	MAKEFILES=./tests/Makefile $(MAKE) check-clean
 	for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard; do \
 	if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
 	rm -f $$d/qemu-options.def; \
diff --git a/configure b/configure
index f847ee2..a18e267 100755
--- a/configure
+++ b/configure
@@ -4163,7 +4163,7 @@  DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas"
 DIRS="$DIRS roms/seabios roms/vgabios"
 DIRS="$DIRS qapi-generated"
 DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace"
-FILES="Makefile tests/tcg/Makefile qdict-test-data.txt"
+FILES="Makefile tests/Makefile tests/tcg/Makefile qdict-test-data.txt"
 FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit"
 FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile"
 FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
diff --git a/tests/Makefile b/tests/Makefile
index 9bf0765..a286622 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -94,6 +94,7 @@  check-help:
 	@echo " make check-unit           Run qobject tests"
 	@echo " make check-block          Run block tests"
 	@echo " make check-report.html    Generates an HTML test report"
+	@echo " make check-clean          Clean the tests"
 	@echo
 	@echo "Please note that HTML reports do not regenerate if the unit tests"
 	@echo "has not changed."
@@ -148,4 +149,10 @@  check-unit: $(patsubst %,check-%, $(check-unit-y))
 check-block: $(patsubst %,check-%, $(check-block-y))
 check: check-unit check-qtest
 
+check-clean:
+	$(MAKE) -C tests/tcg clean
+	rm -f $(check-unit-y)
+	rm -f $(check-qtest-i386-y) $(check-qtest-x86_64-y) $(check-qtest-sparc64-y) $(check-qtest-sparc-y)
+	rm -f tests/*.o
+
 -include $(wildcard tests/*.d)