Sirs,
in trying to debug a failing gcc build, it seems that the
real trouble is that there doesn't seem to be any easy way to figure
out what directory/file[line number] a make command comes from, for
example I see as output:
make[3]: *** No rule to make target `real-install-headers-tar'. Stop.
and I cannot even tell what makefile is being processed in what
directory, farther up in the captured output of make I see:
/bin/sh ../../gcc-4.3.3/gcc/../move-if-change tmp-fixinc_list
fixinc_list
echo timestamp > s-fixinc_list
rm -rf include-fixed; mkdir include-fixed
chmod a+rx include-fixed
and I grep for fixinc_list in */Makefile to find it is in gcc/
Makefile, OK, but I should not have to resort to such antics, make
could be outputting this directory/file information as a normal
operation.
here is where the offending command originates:
$(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
libsubdir=. ; \
as you can see it is virtually impossible for a reader that is not
already intimately familiar with these specific makefiles to be able
to read the "*** No rule to make target `real-install-headers-tar`.
Stop." message and find the corresponding line "$(MAKE) real-$
(INSTALL_HEADERS_DIR) ..." all the macro usage makes it impossible
to search for corresponding strings, the strings don't correspond
unless you know all the macros by heart and do your own reverse-
substitution.
so the only recourse is directory/file[line] information about where
the command came from...
I seem to remember, perhaps it was Sun's make, that did output
directory/file[line] information, and I am now feeling a strong
longing to be back in that environment, we should be doing the same
with gnu's make.
-Peter Lawrence.
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make