we use the following logic:
... :
@for f in $? $@; do test -f $$f || exit 0; done; \
echo Touching [EMAIL PROTECTED]; \
touch $@
We have the following chain of dependencies:
gcc/configure: gcc/configure.ac
gcc/cstamp-h.in: gcc/configure.ac
gcc/config.in: gcc/cstamp-h.in
In my particular build, for some reason, gcc/cstamp-h.in is missing
but the other files are there. I now have four gcc_update tasks
running, trying desparately to figure out what to do. It won't touch
gcc/cstamp-h.in becuase of the @for line, but it always thinks it
needs to update gcc/config.in because gcc/cstamp-h.in is missing.
Note that gcc/cstamp-in.h is NOT listed in $?, which is a list of
newer prereqs - but not *missing* prereqs. Perhaps we should use $^,
which is a list of all prereqs? That leaves us not touching
gcc/config.in at all, but at least it doesn't hang.
At the very least, some sanity about how many times we permit
ourselves to run that Makefile would be useful. I mean, if it doesn't
work in the first 345,600 iterations, it's not ever going to work.