Hi,
I think that our dependencies for generated header files (gram.h,
fmgroids.h, probes.h) are not as good as they could be. What we do
right now is make src/backend/Makefile rebuild these before recursing
through its subdirectories. This works OK for a top-level make, but
if you run make further down in the tree (like under
src/backend/commands) it won't necessarily rebuild everything that it
should.
The attached patch moves some of this logic from src/backend/Makefile
to src/Makefile.global.in. That way, if you --enable-depend and then
do something like "touch src/include/catalog/pg_proc.h" and then "cd
src/backend/commands; make vacuum.o", it rebuilds fmgroids.h and then
recompiles vacuum.c. Under HEAD, it just tells you that vacuum.o is
up to date.
I have tested this on vpath and non-vpath builds, with and without
--enable-depend.
...Robert