From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 28 May 2001 23:30:26 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 28 May 2001 23:30:16 -0400 Received: from gw-yyz.somanetworks.com ([216.126.67.39]:51163 "EHLO somanetworks.com") by vger.kernel.org with ESMTP id ; Mon, 28 May 2001 23:30:05 -0400 Date: Mon, 28 May 2001 23:30:04 -0400 From: Mark Frazer To: Linux Kernel Subject: ctags as generated by make tags Message-ID: <20010528233004.E3107@somanetworks.com> Mail-Followup-To: Linux Kernel Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Organization: Detectable, well, not really Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Anyone have any good tips on getting tags to generate nicely? I'm having some problems with some tags for macros and such being declared in several places since ctags doesn't honour any CPP #if'ing. I've currently got my Makefile doing this, which seems to give me some sanity as the redefinitions tend to be made by drivers and such. I'm basically walking the include tree by depth without doing any sorting of tags and then doing a stable sort on the final tags file. --- Makefile.old Mon May 28 22:44:01 2001 +++ Makefile Mon May 28 23:19:07 2001 @@ -334,10 +334,28 @@ # Exuberant ctags works better with -I tags: dummy - CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \ + CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "--sort=no -I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \ ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && \ - find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \ + find include -type f -name '*.h' -mindepth 2 -maxdepth 2 \ + | grep -v include/asm- | grep -v include/config \ + | xargs -r ctags $$CTAGSF -a && \ + find include -type f -name '*.h' -mindepth 3 -maxdepth 3 \ + | grep -v include/asm- | grep -v include/config \ + | xargs -r ctags $$CTAGSF -a && \ + find include -type f -name '*.h' -mindepth 4 -maxdepth 4 \ + | grep -v include/asm- | grep -v include/config \ + | xargs -r ctags $$CTAGSF -a && \ + find include -type f -name '*.h' -mindepth 5 -maxdepth 5 \ + | grep -v include/asm- | grep -v include/config \ + | xargs -r ctags $$CTAGSF -a && \ find $(SUBDIRS) init -name '*.c' | xargs ctags $$CTAGSF -a + mv tags tags.unsorted + LC_ALL=C sort -k 1,1 -s tags.unsorted > tags + rm tags.unsorted + +# +#find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \ +# ifdef CONFIG_MODULES ifdef CONFIG_MODVERSIONS Anyone else doing anything smarter?