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: Tue, 27 Jun 2017 11:31:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0

> I can only assume you are referring to this pattern rule:
> 
>> %.cmo: %.ml %.cmi
>>         $(o_compilation) '$<' > $@
> 
> and you're saying that if the .cmi file cannot be created, that make
> should not consider this an error.

I became also curious on how the clarification will evolve for
the request “Checking search retries for implicit make rules”.
https://savannah.gnu.org/bugs/?51311

I began to reconsider my software development approach once more
after the provided feedback.


> It is generally not possible to represent this behavior in makefile syntax.

Will further software extensions become relevant here?


> The best you can do is remove the %.cmi from the pattern rule and
> declare explicit prerequisite rules for those targets that you'd like to
> have a .cmi file prerequisite.

I tried to increase the relevance for compiled interface descriptions there.

Yesterday I published changes for my intermediate development results.
https://github.com/elfring/Coccinelle-20160205/commit/13fd24aff54fd86ded5a3093f927f0fed53d1f99

I started to use static pattern rules at another place. This change triggers
a need to clarify the following situation.


address@hidden:~/Projekte/Coccinelle/20160205/commons> LANG=C make 
--no-builtin-rules V=1
Makefile:215: warning: overriding recipe for target 'commands.cmo'
/home/elfring/Projekte/Coccinelle/20160205/common_rules.make:9: warning: 
ignoring old recipe for target 'commands.cmo'
Makefile:218: warning: overriding recipe for target 'commands.cmx'
/home/elfring/Projekte/Coccinelle/20160205/common_rules.make:12: warning: 
ignoring old recipe for target 'commands.cmx'
make: *** No rule to make target 'commands.cmi', needed by 'commands.cmo'.  
Stop.


1. This error message is appropriate at the moment while it indicates related
   improvement opportunities.

   The mentioned OCaml module “commands” should be compilable without a cmi file
   so far.
   https://lists.gnu.org/archive/html/bug-make/2017-06/msg00092.html

   I specified therefore a corresponding make rule pair.
   
https://github.com/elfring/Coccinelle-20160205/blob/9597598779f3604272621f6d42ead79eaafad2a8/commons/Makefile#L214

   I hoped then that the build process would still succeed because I tried
   to lift the dependency on a special file type. Now it seems that my 
expectations
   do not fit to the current software behaviour again.
   Can this approach work ever in such a design direction?


2. The shown warnings will be displayed so often that I would prefer to suppress
   them occasionally. Is it possible to deactivate them for such cases?

Regards,
Markus



reply via email to

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