I am not sure if autotools can detect
such changes and do a rebuild automatically.
It can.
How? I only see boost directory is included, no other special
treatment. Do you mean make tracks boost dependency in each local .dep
folder, does it check time stamps of /usr/include?
autotools do that well. It is slow, but it is correct. The only cases where
I needed to rerun autogen.sh and configure manually where some
larger reorganizations involving renamed and new files.
I had so many more rebuild just because of mysterious time stamp
change, so I do not really know if your claim is true. Anyway, I doubt
if make is that good at dependency checking. Quoting from
http://freshmeat.net/articles/view/1702/
1. Make doesn't really support dynamic many-to-one relationships.
It does support many-to-one, but not if the "many" part changes from
one build to the next. For example, Make will not detect if a new
dependency has been added if that dependency is new in the list but
old on disk (older than the target, according to its timestamp). By
the way, make also lacks support for dynamic one-to-many, which makes
it inappropriate for Java builds (with Java, a single file can produce
a variable number of outputs).
2. Make doesn't really support using automatic dependencies and
updating those automatic dependencies in one run. This forces you to
make multiple Make calls for a complete build. (Did you ever wonder
why the ubiquitous sequence "make depend; make; make install" has
never been folded into just one Make call?)
This article also points out many more problems of autotools, and I am
not at a level of proficiency to judge them.
Yes, but if scons removes parts from the dependency tree because of
speed then this makes it unsuable for developer use.
My understanding was that boost is close to system include files and
will not be touched often. After all, if we tweak local boost files,
what if users use system boost headers?
Bo