summaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kconfig/util.c')
-rw-r--r--scripts/kconfig/util.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index c6f6e21b809f..703ee4904613 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -34,8 +34,6 @@ struct file *file_lookup(const char *name)
34/* write a dependency file as used by kbuild to track dependencies */ 34/* write a dependency file as used by kbuild to track dependencies */
35int file_write_dep(const char *name) 35int file_write_dep(const char *name)
36{ 36{
37 struct symbol *sym, *env_sym;
38 struct expr *e;
39 struct file *file; 37 struct file *file;
40 FILE *out; 38 FILE *out;
41 39
@@ -54,21 +52,7 @@ int file_write_dep(const char *name)
54 fprintf(out, "\n%s: \\\n" 52 fprintf(out, "\n%s: \\\n"
55 "\t$(deps_config)\n\n", conf_get_autoconfig_name()); 53 "\t$(deps_config)\n\n", conf_get_autoconfig_name());
56 54
57 expr_list_for_each_sym(sym_env_list, e, sym) { 55 env_write_dep(out, conf_get_autoconfig_name());
58 struct property *prop;
59 const char *value;
60
61 prop = sym_get_env_prop(sym);
62 env_sym = prop_get_symbol(prop);
63 if (!env_sym)
64 continue;
65 value = getenv(env_sym->name);
66 if (!value)
67 value = "";
68 fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
69 fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
70 fprintf(out, "endif\n");
71 }
72 56
73 fprintf(out, "\n$(deps_config): ;\n"); 57 fprintf(out, "\n$(deps_config): ;\n");
74 fclose(out); 58 fclose(out);
@@ -165,3 +149,14 @@ char *xstrdup(const char *s)
165 fprintf(stderr, "Out of memory.\n"); 149 fprintf(stderr, "Out of memory.\n");
166 exit(1); 150 exit(1);
167} 151}
152
153char *xstrndup(const char *s, size_t n)
154{
155 char *p;
156
157 p = strndup(s, n);
158 if (p)
159 return p;
160 fprintf(stderr, "Out of memory.\n");
161 exit(1);
162}