qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

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