compile: we are _too_ lazy
$ less tests/demo/operators.cmd
clang++-mp-3.9 -I /Users/akim/src/lrde/2/_build/39s -I /Users/akim/src/lrde/2 -DNDEBUG -isystem /opt/local/include -I/opt/gostai/include -Qunused-arguments -O3 -g -std=c++1z -L /Users/akim/src/lrde/2/_build/39s/lib/.libs -L/opt/local/lib -L/opt/gostai/lib/vcsn -lboost_filesystem-mt -lboost_system-mt _build/39s/lib/.libs/liblal_char_q.dylib
$ less tests/demo/operators.d
tests/demo/operators.55865.o: tests/demo/operators.cc \
/Users/akim/src/lrde/2/vcsn/dyn/algos.hh \
/Users/akim/src/lrde/2/vcsn/algos/fwd.hh \
/Users/akim/src/lrde/2/vcsn/concepts/automaton.hh \
vcsn compile refuses to update the output although I did change my sources. There are two problems here:
-
the source file is on the same line, so we ignore algos.hh -
the source file is a dependency, we must not ignore it
So of course this is a problem for vcsn-compile
which completely ignores the source file, and that's a good thing, otherwise it would keep on regenerating the context, since the *.cc file is always remade. But then, we should probably make sure that translate.cc
doesn't update the mtime of the generated source. That's easy with a move-if-diff approach.
Also, note that the *.d and *.cmd files are visible to the user. It should not.