On Sunday 28 June 2009 21:21:35 Robert Haas wrote:
> 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'm not convinced by this use case. Why do you want to rebuild vacuum.o
anyway? If you change something, then you probably want to rebuild postgres,
and that works fine without this change.
I'm concerned how this change moves random make rules into a global makefile.
This is exacerbated by your next patch, which among other things moves the
entire catalog list to build the various output files into Makefile.global,
far away from its home.