Hello,
On Thu, Nov 30, 2006 at 09:31:19AM +0100, Guillaume Rousse wrote:
Stepan Kasal wrote:
You specified the dependency:
corelib/camlimages.ml <-- Makefile
This is not correct. You should specify the ultimate primary sources
instead of `Makefile'. Prehaps `Makefile.am' is enough?
It was to catch configure runs, so I used config.status instead.
so it looks like this now:
Makefile <-- Makefile.in <-- .depend <-- corelib/camlimages.ml <--
<-- config.status
There is still a problem with this setup, you are breaking the rule
that "distributed files should not depend on non-distributed ones."
Let me explain:
Imagine you release a tarball of your package, and someone unpacks it
and runs the usual
./configure ; make
to build it.
config.status was created, so automake has to be run to refresh
Makefile.in. This is not the expected behaviour: Makefile.in is
supposed to stay unmodified.
This cas cause real-world problems: when someome performs two VPATH
builds from the same source tree, the two rebuilds of Makefile.in
coming from the two builds present a race condition.
I'm afraid it can be easy to avoid this problem, though.
One solution is to enhance Automake so that it does dependency
tracking of ML programs.