/* * Record the use of a CONFIG_* word. */ void use_config(const char * name, int len) { char *pc; int i; pc = path_array[paths-1].buffer + path_array[paths-1].len; memcpy(pc, "config/", 7); pc += 7; for (i = 0; i < len; i++) { char c = name[i]; if (isupper(c)) c = tolower(c); if (c == '_') c = '/'; pc[i] = c; } pc[len] = '\0'; if (is_defined_config(pc, len)) return; define_config(pc, len); do_depname(); printf(" \\\n $(wildcard %s.h)", path_array[paths-1].buffer); }
/* * Handle an #include line. */ void handle_include(int32_t start, const char * name, int32_t len) { struct path_struct *path; int32_t i; if (len >= 7 && !memcmp(name, "config/", 7)) define_config(name+7, len-7-2); for (i = start, path = path_array+start; i < paths; ++i, ++path) { memcpy(path->buffer+path->len, name, len); path->buffer[path->len+len] = '\0'; if (access(path->buffer, F_OK) == 0) { do_depname(); addFoundDeps(depname,path->buffer); if((len>2)&&(name[len-2]=='.')&&(name[len-1]=='h')){ /* This is a .h fie */ /* fprintf(stderr,"addPending for .h %s\n",path->buffer);*/ addPendingDeps(path->buffer); }else if((len>4)&&(name[len-4]=='.')&&(name[len-3]=='h')&& (name[len-2]=='p')&&(name[len-1]=='p')){ /* This is a .hpp file */ /* fprintf(stderr,"addPending for .hpp %s\n",path->buffer);*/ addPendingDeps(path->buffer); }else if((len>4)&&(name[len-4]=='.')&&(name[len-3]=='c')&& (name[len-2]=='p')&&(name[len-1]=='p')){ /* This is a .hpp file */ /* fprintf(stderr,"addPending for .hpp %s\n",path->buffer);*/ addPendingDeps(path->buffer); } return; } } }
/* * Record the use of a CONFIG_* word. */ void use_config(const char * name, int len) { char *pc; int i; char config_path[MAX_PATH_LENGTH]="$(wildcard "; pc = path_array[paths-1].buffer + path_array[paths-1].len; memcpy(pc, "config/", 7); pc += 7; for (i = 0; i < len; i++) { char c = name[i]; if (isupper((int)c)) c = tolower((int)c); if (c == '_') c = '/'; pc[i] = c; } pc[len] = '\0'; if (is_defined_config(pc, len)) return; define_config(pc, len); memcpy(config_path+11, path_array[paths-1].buffer, path_array[paths-1].len+len+7); memcpy(config_path+path_array[paths-1].len+len+18, ".h)\0", 4); add_local_include(config_path); }
/* * Record the use of a CONFIG_* word. */ static void use_config(const char *m, int slen) { unsigned int hash = strhash(m, slen); if (is_defined_config(m, slen, hash)) return; define_config(m, slen, hash); print_config(m, slen); }
/* * Record the use of a CONFIG_* word. */ void use_config(char *m, int slen) { char s[PATH_MAX]; char *p; if (is_defined_config(m, slen)) return; define_config(m, slen); memcpy(s, m, slen); s[slen] = 0; for (p = s; p < s + slen; p++) { if (*p == '_') *p = '/'; else *p = tolower((int)*p); } printf(" $(wildcard include/config/%s.h) \\\n", s); }
/* * Record the use of a CONFIG_* word. */ static void use_config(const char *m, int slen) { unsigned int hash = strhash(m, slen); int c, i; if (is_defined_config(m, slen, hash)) return; define_config(m, slen, hash); printf(" $(wildcard include/config/"); for (i = 0; i < slen; i++) { c = m[i]; if (c == '_') c = '/'; else c = tolower(c); putchar(c); } printf(".h) \\\n"); }
/* * Handle an #include line. */ void handle_include(int start, const char * name, int len) { struct path_struct *path; int i; if (len == 14 && !memcmp(name, "linux/config.h", len)) return; if (len >= 7 && !memcmp(name, "config/", 7)) define_config(name+7, len-7-2); for (i = start, path = path_array+start; i < paths; ++i, ++path) { memcpy(path->buffer+path->len, name, len); path->buffer[path->len+len] = '\0'; if (access(path->buffer, F_OK) == 0) { add_local_include(path->buffer); return; } } }
/* * Clear the set of configuration strings. */ void clear_config(void) { len_config = 0; define_config("", 0); }