"Tanaka Akira" <akr / m17n.org> wrote in message
news:hvo8zbxxbzj.fsf / coulee.a02.aist.go.jp...
> In article <3c21c7cf$0$55593$edfadb0f / dspool01.news.tele.dk>,
>   "MikkelFJ" <mikkelj-anti-spam / post1.dknet.dk> writes:

> I think the depend tag is very interesting.  Because it is very
> different to usual pre-scanning approach.  I think using compiler
> knowledge is correct way.

I many not understand the tag correctly.
But as I understand it, you are referring to the problem of only recompiling
those targets that are out of date.
The additional problem of deciding what other files to include in the build
process as a result of a dependency is different.
Maybe I'm just asking too much - but in fact this is the main reason that I
am looking for a better build tool.
I know Ruby isn't a compiled, but to stay with a known language - or think
of it is document generation - then it would suffer to specify a main.rb
file. The scanner would detect the require 'helper' and also make helper.rb
a dependecy that needs to be compiled. It is just pattern like *.rb. This
battern is created by a scanner tool.

For a practical example, many ocaml files e.g. main.ml also has a main.mli,
then you you have helper.ml and helper.mli.
You don't want to write all this in your build script if you can avoid it.
Likewise, you don't want to manually specify all the *.o or *.obj object
files the needs to be linked from compiled C source.

SCons does some interesting that the average compiler does not:
It makes a signature of files and it also makes a signature of the
commandline to build that file. If either one changes, it forces a rebuild.
I don't know how many times my Visual Studio have incorrectly linked out of
date targets - but enough to convince me that the compiler isn't good enough
to do this by itself.

I will look into your links when I get the time.

Btw: I may stay on this discussion a little longer - then its Christmas etc.
but I'd like to continue on this thread if there are still issues in the
next year.

MikkelFJ