bug-make
[Top][All Lists]
Advanced

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

Re: Checking application of dependencies from make rules without recipes


From: SF Markus Elfring
Subject: Re: Checking application of dependencies from make rules without recipes
Date: Sun, 18 Jun 2017 21:10:45 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0

>>> LANG=C make --no-builtin-rules -f parsing-rule-check1.make
>> make: *** No rule to make target 'ast_c.cmo', needed by 'parsing_c.cma'.  
>> Stop.
> 
> I feel like this is the same question you've already asked,
> and Philip already answered, before.

An other area was eventually easier to explain.


> That means ast_c.cmo doesn't exist,

This description is correct at the moment.


> and make can't come up with a way to build it.

I have got understanding difficulties for the mentioned software behaviour.


> In order to build ast_c.cmo, make could create it (based on your second
> pattern rule) if it can find a way to create ast_c.ml

This one should be treated as an ordinary source file
(for the programming language “OCaml”) and it is usable.


> AND ast_c.cmi.

An “i_compilation” should usually be performed for this file.


> At least one of these files doesn't exist, so it can't just use this rule.

I would expect that the first pattern rule should trigger the desired
compilation for interface descriptions.


> If it's the ast_c.ml file that doesn't exist,

This file is available.


> make gives up immediately since it doesn't know any way to create that file.

This reaction would be fine for an ordinary source file.


> If it's the ast_c.cmi file that doesn't exist,

Such a file was not generated so far.


> make will see if it can be created by using your first pattern rule;
> that means it needs a file ast_c.mli.

This could be appropriate eventually.

I adjusted some make scripts in this software area because of special
implementation details (or open issues). My adjustments are still
incomplete in a few subdirectories.

It seems then that the original make scripts could treat more interface
descriptions as optional somehow.

Would you like to add any more advice to this aspect?


> If that file doesn't exist

This is the case at the moment. I am unsure on how this status will evolve
at such a place.


> and make doesn't know how to build it, so make gives up, and says it
> can't build ast_c.cmo because there are no valid rules that would build it.

This conclusion can be reasonable to some degree.


> To know which of these situations is the case you can either look at the
> contents of your directory, or run make with the "-d" option

I starred at these debug data already for a while.


> and see which file is not able to be built.

It seems that I have got still difficulties to extract desired information
from such a display. I guess that a bigger source file number influences
my view of the discussed software development situation in significant ways.

I am curious if an other representation could make the clarification of
failed dependencies a bit easier (especially for remarkable folder sizes).

Regards,
Markus



reply via email to

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