Hi to all, I tried to compile firefox on my system, but makedepend took several hours for 'nsIconChannel.cpp'. This delay is caused by the gdk/gtk header files which include each other. I made some changes in 'parse.c' to speed up the operation. This might be useful for others, so I'm attaching the details.
diff -urN makedepend-1.0.2/parse.c makedepend-1.0.2-new/parse.c --- makedepend-1.0.2/parse.c 2009-10-11 06:02:44.000000000 +0200 +++ makedepend-1.0.2-new/parse.c 2010-02-01 18:05:54.000000000 +0100 @@ -257,13 +257,26 @@ return(ret); } +/******************************************************************************/ +static void CleanFlag(struct inclist *file) +{ + if(file->i_flags & DEFCHECKED) { + struct inclist **ip = file->i_list ; + int i ; + + file->i_flags &= ~DEFCHECKED ; + for(i = 0 ; i < file->i_listlen ; i++) { + CleanFlag(ip[i]) ; + } + } +} + struct symtab ** fdefined(char *symbol, struct inclist *file, struct inclist **srcfile) { struct inclist **ip; struct symtab **val; int i; - static int recurse_lvl = 0; if (file->i_flags & DEFCHECKED) return(NULL); @@ -282,8 +295,6 @@ } } else if (val != NULL && srcfile != NULL) *srcfile = file; - recurse_lvl--; - file->i_flags &= ~DEFCHECKED; return(val); } @@ -298,6 +309,7 @@ if (srcfile != NULL) *srcfile = &maininclist; return(val); } + CleanFlag(file) ; if ((val = fdefined(symbol, file, srcfile))) return(val); debug(1,("%s not defined in %s\n", symbol, file->i_file));
_______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg