On 20/06/16 15:50, Michal Marek wrote: > On 2016-05-24 01:02, Kieran Bingham wrote: >> Hi Kbuild / Michal, >> >> I've been working through a problem that Jan has reported whereby if we >> modify a file included by our template for constants.py, the generated >> file is not rebuilt. >> >> The rule/cmd [0] to generate the python constants is >> cmd_gen_constants_py which uses the $(CPP) with $(c_flags) to create the >> output. >> >> One benefit of this is that it already creates the $(depfile) through >> the addition of the flags provided by $(c_flags), however as yet it >> would seem that my efforts to understand how the $(depfile) gets >> included have failed. >> >> From what I can tell, the $(call if_changed...) rule is generating my >> targets .constants.py.cmd, but the .d file is not being utilised. >> >> By swapping $(call if_changed, ) to $(call if_changed_dep,...) I can see >> that my .constants.py.cmd [1] file now has (apparently) correct >> dependency rules being generated. However they still don't take actual >> effect. If I 'touch/modify' one of the files I have added to the >> #includes, then my target is not rebuilt (I have added >> include/linux/kieran.h for testing this specifically without rebuilding >> all other objects) > > Hi Kieran, > > sorry for the late reply. No problem, still useful! > In case this is still relevant: For > if_changed/if_changed_dep to work, you must list the target in the > $(targets) list (without the $(obj) prefix) and add FORCE as a > prerequisite of the rule. Thankyou! - It works! Now my generate rule is only called when it is supposed to be. I'll hopefully get this fix sent in with the rest of my series by the weekend. > Michal Thankyou for your support -- Regards Kieran Bingham -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html