What? How can a call to cmcat fail just because I changed a dependency? The point is that you pick something (mlyacc.cm) to break the dependency cycle. Then if you want to make that something, Make will not test what it depends on (because it doesn't know) and will always re-make it. This should be fine.