My suggesion is that there be a new target: I would suggest cm, which makes the mlyacc.cm file, but NO ONE depend on that target. Thus there is no DWIM'ishness and no circularities, and yet if you do a make cm it will make mlyacc.cm. Isn't this better than the ifeq stuff?