Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-26 Thread Jeff King
On Mon, Aug 25, 2014 at 03:08:50PM -0700, Junio C Hamano wrote: Jonathan Nieder jrnie...@gmail.com writes: Wouldn't it be sufficient to start digging not from * but from ??*? Gah, the * was supposed to be . in my examples (though it doesn't hurt). find ??* \( -name

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-26 Thread Junio C Hamano
Jeff King p...@peff.net writes: Actually as you are not excluding CVS, RCS, etc., and using ??* as the starting point will exclude .git, .hg, etc. at the top, I think we can shorten it even further and say find ??* -name Documentation -prune -o -name \*.h or something. I had

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-26 Thread Jeff King
On Tue, Aug 26, 2014 at 09:54:19AM -0700, Junio C Hamano wrote: Jeff King p...@peff.net writes: Actually as you are not excluding CVS, RCS, etc., and using ??* as the starting point will exclude .git, .hg, etc. at the top, I think we can shorten it even further and say find ??*

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-26 Thread Junio C Hamano
Jeff King p...@peff.net writes: On Tue, Aug 26, 2014 at 09:54:19AM -0700, Junio C Hamano wrote: Jeff King p...@peff.net writes: Actually as you are not excluding CVS, RCS, etc., and using ??* as the starting point will exclude .git, .hg, etc. at the top, I think we can shorten it even

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Junio C Hamano
Jeff King p...@peff.net writes: Since we do not use the value $(LIB_H) unless either COMPUTE_HEADER_DEPENDENCIES is turned on or the user is building po/git.pot (where it comes in via $(LOCALIZED_C), make is smart enough to not even run this find in most cases. However, we do need to stop

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jeff King
On Mon, Aug 25, 2014 at 12:30:51PM -0700, Junio C Hamano wrote: Also interestingly, I notice that it is very clear that it is not LIB_H but ANY_H ;-) Yeah, it has been that way for quite a while. I don't know if it is that big a deal, but it would not be unreasonable to do a patch to rename on

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jonathan Nieder
Jeff King wrote: -LOCALIZED_C := $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H) +LOCALIZED_C = $(C_OBJ:o=c) $(GENERATED_H) Why is LIB_H dropped here? This would mean that po/git.pot stops including strings from macros and static inline functions in headers (e.g., in parse-options.h). The rest looks

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jeff King
On Mon, Aug 25, 2014 at 12:46:41PM -0700, Jonathan Nieder wrote: Jeff King wrote: -LOCALIZED_C := $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H) +LOCALIZED_C = $(C_OBJ:o=c) $(GENERATED_H) Why is LIB_H dropped here? This would mean that po/git.pot stops including strings from macros and static

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jeff King
On Mon, Aug 25, 2014 at 04:00:42PM -0400, Jeff King wrote: On Mon, Aug 25, 2014 at 12:46:41PM -0700, Jonathan Nieder wrote: Jeff King wrote: -LOCALIZED_C := $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H) +LOCALIZED_C = $(C_OBJ:o=c) $(GENERATED_H) Why is LIB_H dropped here? This would

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jonathan Nieder
Jeff King wrote: It is unfortunately easy for our static header list to grow stale, as none of the regular developers make use of it. Instead of trying to keep it up to date, let's invoke find to generate the list dynamically. Yep, I like this. It does mean that people who run make pot have

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Junio C Hamano
Jonathan Nieder jrnie...@gmail.com writes: Jeff King wrote: It is unfortunately easy for our static header list to grow stale, as none of the regular developers make use of it. Instead of trying to keep it up to date, let's invoke find to generate the list dynamically. Yep, I like this.

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Jonathan Nieder
Junio C Hamano wrote: Jonathan Nieder jrnie...@gmail.com writes: Tiny nit: I might use $(shell $(FIND) * \ -name . -o -name '.*' -prune -o \ -name t -prune -o \ -name Documentation -prune -o \ -name '*.h' -print) or

Re: [PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-25 Thread Junio C Hamano
Jonathan Nieder jrnie...@gmail.com writes: Wouldn't it be sufficient to start digging not from * but from ??*? Gah, the * was supposed to be . in my examples (though it doesn't hurt). find ??* \( -name Documentation -o -name .\?\* \) -prune -o -name \*.h Heh. Yeah, that would work.

[PATCH 2/3] Makefile: use `find` to determine static header dependencies

2014-08-21 Thread Jeff King
Most modern platforms will use automatically computed header dependencies to figure out when a C file needs rebuilt due to a header changing. With old compilers, however, we fallback to a static list of header files. If any of them changes, we recompile everything. This is overly conservative, but