X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fbasic%2Ffixdep.c;h=6bc7e7cfccf64a6c600ac4251dace743985eb3b4;hb=refs%2Fheads%2Fvserver;hp=7f42c5d8a5a2f70bde413c21241fee3a1376d08e;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index 7f42c5d8a..6bc7e7cfc 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -28,9 +28,11 @@ * the dependency on linux/autoconf.h by a dependency on every config * option which is mentioned in any of the listed prequisites. * - * To be exact, split-include populates a tree in include/config/, - * e.g. include/config/his/driver.h, which contains the #define/#undef - * for the CONFIG_HIS_DRIVER option. + * kconfig populates a tree in include/config/ with an empty file + * for each config symbol and when the configuration is updated + * the files representing changed config options are touched + * which then let make pick up the changes and the files that use + * the config symbols are rebuilt. * * So if the user changes his CONFIG_HIS_DRIVER option, only the objects * which depend on "include/linux/config/his/driver.h" will be rebuilt, @@ -130,6 +132,9 @@ void usage(void) exit(1); } +/* + * Print out the commandline prefixed with cmd_ := + */ void print_cmdline(void) { printf("cmd_%s := %s\n\n", target, cmdline); @@ -212,23 +217,23 @@ void use_config(char *m, int slen) if (*p == '_') *p = '/'; else - *p = tolower((unsigned char)*p); + *p = tolower((int)*p); } printf(" $(wildcard include/config/%s.h) \\\n", s); } -void parse_config_file(signed char *map, size_t len) +void parse_config_file(char *map, size_t len) { int *end = (int *) (map + len); /* start at +1, so that p can never be < map */ int *m = (int *) map + 1; - signed char *p, *q; + char *p, *q; for (; m < end; m++) { - if (*m == INT_CONF) { p = (signed char *) m ; goto conf; } - if (*m == INT_ONFI) { p = (signed char *) m-1; goto conf; } - if (*m == INT_NFIG) { p = (signed char *) m-2; goto conf; } - if (*m == INT_FIG_) { p = (signed char *) m-3; goto conf; } + if (*m == INT_CONF) { p = (char *) m ; goto conf; } + if (*m == INT_ONFI) { p = (char *) m-1; goto conf; } + if (*m == INT_NFIG) { p = (char *) m-2; goto conf; } + if (*m == INT_FIG_) { p = (char *) m-3; goto conf; } continue; conf: if (p > map + len - 7) @@ -242,6 +247,8 @@ void parse_config_file(signed char *map, size_t len) continue; found: + if (!memcmp(q - 7, "_MODULE", 7)) + q -= 7; use_config(p+7, q-p-7); } } @@ -291,9 +298,9 @@ void do_config_file(char *filename) void parse_dep_file(void *map, size_t len) { - signed char *m = map; - signed char *end = m + len; - signed char *p; + char *m = map; + char *end = m + len; + char *p; char s[PATH_MAX]; p = strchr(m, ':');