[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v2 0/5] Baby steps towards saner headers
From: |
John Snow |
Subject: |
Re: [Qemu-devel] [PATCH RFC v2 0/5] Baby steps towards saner headers |
Date: |
Thu, 30 Jun 2016 12:19:18 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 |
On 06/30/2016 02:30 AM, Markus Armbruster wrote:
> John Snow <address@hidden> writes:
>
>> On 06/28/2016 04:40 AM, Markus Armbruster wrote:
>>> Sascha Silbe <address@hidden> writes:
>>>
>>>> Dear Paolo,
>>>>
>>>> Paolo Bonzini <address@hidden> writes:
>>>>
>>>>>> After applying your series on top of f12103af and running "./configure"
>>>>>> in a clean working directory, I get the following errors for "make
>>>>>> check-source":
>>>>>>
>>>>>> $ make check-source
>>>>>> egrep: config-host.h: No such file or directory
>>>>>> egrep: qmp-commands.h: No such file or directory
>>>> [...]
>>>>>> GEN aarch64-softmmu/config-devices.mak.tmp
>>>>>> GEN aarch64-softmmu/config-devices.mak
>>>>>> [...]
>>>>>> GEN tests/test-qmp-introspect.h
>>>>>> make: *** No rule to make target `tests/headers/audio/audio.o', needed
>>>>>> by `check-headers'. Stop.
>>>>>
>>>>> Hi Sascha,
>>>>>
>>>>> these are all generated headers. In general, "make check" must be run
>>>>> after "make", and I suppose the same holds for "make check-headers".
>>>>
>>>> Still no dice. The egrep error messages don't occur when running "make
>>>> check-source" after a full "make" run, but the audio.o error still
>>>> happens:
>>>>
>>>> $ make check-source
>>>> make: *** No rule to make target `tests/headers/audio/audio.o', needed by
>>>> `check-headers'. Stop.
>>>
>>> Works fine in my build tree, fails in a fresh clone, can't yet say why.
>>> Thanks for reporting!
>>>
>>
>> I tried to manually exclude audio/audio.h, but it goes on to barf on the
>> next header in audio/. Not sure why your formula doesn't like that
>> directory for us.
>
> "make -d tests/headers/audio/audio.c" immediately pinpoints the cause:
>
> [Lots of output about remaking makefiles...]
> Updating goal targets....
> Considering target file 'tests/headers/audio/audio.c'.
> File 'tests/headers/audio/audio.c' does not exist.
> Looking for an implicit rule for 'tests/headers/audio/audio.c'.
> Trying pattern rule with stem 'audio/audio'.
> Trying rule prerequisite 'tests/header-test-template.c'.
> Trying pattern rule with stem 'audio/audio'.
> Trying rule prerequisite 'tests/header-test-template.c'.
> Looking for a rule with intermediate file 'tests/header-test-template.c'.
> Avoiding implicit rule recursion.
> No implicit rule found for 'tests/headers/audio/audio.c'.
> Finished prerequisites of target file 'tests/headers/audio/audio.c'.
> Must remake target 'tests/headers/audio/audio.c'.
> make: *** No rule to make target 'tests/headers/audio/audio.c'. Stop.
>
> I forgot to commit tests/header-test-template.c. Fixup posted.
>
>> (I *hate* Makefiles ...)
>
> Possibly for the wrong reasons ;-)
>
My reason is:
"Thus, programs must be written for people to read, and only
incidentally for machines to execute."
Makefiles appear to be trying their hardest to do the opposite.
Thanks for the fixup!
--js
- Re: [Qemu-devel] [PATCH RFC v2 2/5] tests: New make target check-source, (continued)
Re: [Qemu-devel] [PATCH RFC v2 0/5] Baby steps towards saner headers, Sascha Silbe, 2016/06/27