Thread (16 messages) flat view 16 messages, 2 authors, 2016-06-15
DORMANTno replies

[PATCH 00/12] Re: Makefile: add missing header dependency rules

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:48:06

Junio C Hamano wrote:
Jonathan Nieder [off-list ref] writes:
quoted
These patches are independent of the jn/makefile topic.  I sent them
before, but I screwed up the sender so nobody received them.  Anyway,
perhaps they could be useful.
I found all of them sensible but it seems to be based on version that is a
bit behind...
Thanks.  Patches 1-5 below are those I sent before, rebased against
maint.  Since last time, remote-curl.o gained a few more dependencies,
which are included.

The remainder of this series is based on a merge of master and
patches 1-5:

 Patch 6 adds another missing header dependency rule.  It is not
 included with the others because it applies to master, not maint.

 Patches 7-12 revisit the topic of generating header dependency
 rules on the fly.  I updated them to produce patches 1-6, so I
 thought, why not get some feedback on their present state?

Patch 7 clumps the header dependency rules together.  I think this
makes them more readable; more importantly, later this will allow
ifdef'ing them out later in one fell swoop.

Patches 8-9 and 11 list all targets that can depend on headers in a
new OBJECTS variable, for use in patches 10 and 12.

Patch 10 generates header dependency rules on the fly.  The resulting
dependency rules contain no useless dependencies (unlike the
hard-coded ones where almost everything depends on $(LIB_H)), so this
might be interesting to people wishing to speed up the
edit-compile-run cycle.

This only works with gcc.  It should be possible to teach the relevant
options to clink.pl if there is demand, but not SCO cc.

Patch 12 is what I am most interested in: it uses the computed
dependencies to check that the hard-coded dependency rules are
correct.  In the long term, maybe we will be able to get rid of the
hard-coded header dep rules altogether; in the short term, I am hoping
this checker can be useful for avoiding problems with the hard-coded
rules without spending too much human time on it.

Enjoy,
Jonathan Nieder (12):
  Makefile: add missing header file dependencies
  Makefile: make sure test helpers are rebuilt when headers change
  Makefile: remove wt-status.h from LIB_H
  Makefile: clean up http-walker.o dependency rules
  Makefile: drop dependency on $(wildcard */*.h)
  Makefile: transport.o depends on branch.h now
  Makefile: rearrange dependency rules
  Makefile: disable default implicit rules
  Makefile: list generated object files in OBJECTS macro
  Makefile: lazily compute header dependencies
  Makefile: list standalone program object files in PROGRAM_OBJS
  Teach Makefile to check header dependencies
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help