Dependency not respected possibly because of directory symlink use
I have a small test case where the dependency is apparently not respected; the ultimate target, 'test' does not build when I expect it to or builds too early, before the dependencies have finished building.
The test case is here: https://github.com/jchia/waf-always The initial commit is the one that demonstrates the problem. The next one seems to circumvent it.
Problem in detail: revision.hpp is generated automatically with the 'revision' target. The 'test' binary is supposed to print the git commit hash at the time of the build. After git cloning the repo at https://github.com/jchia/waf-always and checking out to the initial commit, using waf 20.0.20:
- waf configure; waf build -j8 -vvv # empty.cpp fails to build because of missing codegen_include/revision.hpp
- waf build -j8 -vvv # Second attempt succeeds because codegen_include/revision.hpp now exists.
- echo >> nothing; git commit -a --amend --no-edit # Cause git commit hash to change
- waf -j8 -vvv # build/revsion.hpp is regenerated, but empty.cpp & test.cpp do not get recompiled, and test prints the old commit hash
- waf -j8 -vvv # second time works
The above problem does not repro with the second commit, i.e. 30104b838df6547db4189027d9892ce73710f376. The behavior is normal with this commit. So, the issue may be related to symlink directories (but not symlink files).