David Gibson <da...@gibson.dropbear.id.au> writes: > Currently the Makefile creates TAGS for emacs with the command: > find "$(SRC_PATH)" -name '*.[hc]' -print0 | xargs -0 etags > That works only if xargs ends up invoking etags just once. If xargs runs > etags several times, as it will if there are enough files, then the later > invocations will overwrite the output from the earlier invocations. This > patch uses the etags --append option to fix the bug. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- > Makefile | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 2262410..bb576da 100644 > --- a/Makefile > +++ b/Makefile > @@ -331,7 +331,8 @@ test speed: all > > .PHONY: TAGS > TAGS: > - find "$(SRC_PATH)" -name '*.[hc]' -print0 | xargs -0 etags > + rm -f $@ > + find "$(SRC_PATH)" -name '*.[hc]' -print0 | xargs -0 etags --append > > cscope: > rm -f ./cscope.*
Slightly more portable: find "$(SRC_PATH)" -name '*.[hc]' -exec etags --append {} +