qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] build-sys: generate tests/.gitignore


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v2] build-sys: generate tests/.gitignore
Date: Thu, 27 Oct 2016 13:36:03 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

On 09/22/2016 04:11 PM, Marc-André Lureau wrote:
> It's too easy to forget about updating the .gitignore, so this is an
> attempt at generating it instead.
> 
> This approach assumes that the files to clean are the one to put in
> the .gitignore.
> 
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> v2:
>  - fix make check-clean
>  - improve adding $(QEMU_IOTESTS_HELPERS-y) in cleanfiles (it needs a 
> patsubst because tests/ is present 2 times)
>  - use quiet-command
>  - fix cleanfiles +=
> 
>  tests/Makefile.include | 26 +++++++++++++---
>  tests/.gitignore       | 82 
> --------------------------------------------------
>  2 files changed, 22 insertions(+), 86 deletions(-)
>  delete mode 100644 tests/.gitignore
> 
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 6052a38..cf81fd7 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -782,8 +782,21 @@ $(patsubst %, check-%, $(check-qapi-schema-y)): 
> check-%.json: $(SRC_PATH)/%.json
>       @perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q 
> $(SRC_PATH)/$*.err -
>       @diff -q $(SRC_PATH)/$*.exit $*.test.exit
>  
> -# Consolidated targets
> +tests-cleanfiles = *.o
> +tests-cleanfiles += .gitignore
> +tests-cleanfiles += qht-bench$(EXESUF)
> +tests-cleanfiles += qapi-schema/*.test.*
> +tests-cleanfiles += test-qapi-event.[ch]
> +tests-cleanfiles += test-qapi-types.[ch]
> +tests-cleanfiles += test-qapi-visit.[ch]
> +tests-cleanfiles += test-qmp-introspect.[ch]
> +tests-cleanfiles += test-qmp-commands.h
> +tests-cleanfiles += test-qmp-marshal.c
> +tests-cleanfiles += $(subst tests/,,$(check-unit-y))
> +tests-cleanfiles += $(subst tests/,,$(check-qtest-y))
> +tests-cleanfiles += $(patsubst tests/%,%,$(QEMU_IOTESTS_HELPERS-y))
>  
> +# Consolidated targets
>  .PHONY: check-qapi-schema check-qtest check-unit check check-clean
>  check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
>  check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
> @@ -792,14 +805,19 @@ check-block: $(patsubst %,check-%, $(check-block-y))
>  check: check-qapi-schema check-unit check-qtest
>  check-clean:
>       $(MAKE) -C tests/tcg 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))
> -
> +     (cd tests && rm -rf $(tests-cleanfiles))

Why the subshell?

>  clean: check-clean
>  
>  # Build the help program automatically
>  
>  all: $(QEMU_IOTESTS_HELPERS-y)
>  
> +ifneq ($(filter-out $(UNCHECKED_GOALS),$(MAKECMDGOALS)),$(if 
> $(MAKECMDGOALS),,fail))
> +$(SRC_PATH)/tests/.gitignore:
> +     $(call quiet-command, echo "$(tests-cleanfiles)" | xargs -n1 | sort > 
> $@, \
> +       " GEN $(@F)")

Incorrect usage of $(call quiet-command), now that 0bdb12c7 has landed.

> +Makefile: $(SRC_PATH)/tests/.gitignore
> +endif
> +
>  -include $(wildcard tests/*.d)
>  -include $(wildcard tests/libqos/*.d)

Otherwise it appears to work, and looks like you've addressed many of my
v1 findings.  I still think that Paolo may be a better GNU make expert
to give a review on this, so I've cc'd him.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]