#976: Cactus ignors (since r4839 ie #768) changes to param.ccl when recompiling -----------------------+---------------------------------------------------- Reporter: rhaas | Owner: Type: defect | Status: review Priority: critical | Milestone: Component: Cactus | Version: Resolution: | Keywords: -----------------------+----------------------------------------------------
Comment (by eschnett):
The m{: } (matching colon-space) is there to ensure that only the first rule matches, which is the one that happens to have the .o file as target. Since we now explicitly match the .o file name, we don't need this if condition any more.
To avoid misunderstandings, this is the new definition that I propose: {{{ # Define how to do dependencies. # Correct the dependency target (i.e. the item on the LHS of a make # rule). The name of the object file is wrong, and the dependency file # (.d file) is missing. To simplify things, we don't try to match the # object file name -- we assume that any file ending in .o is the # object file. ifeq ($(strip $(PERL_BACKUP_NECESSARY)),) define DEPENDENCY_FIXER $(PERL) -pi -e 's{^\Q$(basename $(basename $@)).o:\E}{$(basename $@).o $(basename $@).d:}' $@ endef else define DEPENDENCY_FIXER $(PERL) -pi.bak -e 's{^\Q$(basename $(basename $@)).o:\E}{$(basename $@).o $(basename $@).d:}' $@ rm $@.bak endef endif }}}
I also suggest to add a new line to "force-reconfigure" to ensure that these changes are immediately picked up: {{{ 15 Jul 2012: Correct error in determining make dependencies }}}