summaryrefslogtreecommitdiffstats
path: root/package/config/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'package/config/util.c')
-rw-r--r--package/config/util.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/package/config/util.c b/package/config/util.c
index 21e09a23d..8f65ccac5 100644
--- a/package/config/util.c
+++ b/package/config/util.c
@@ -26,6 +26,29 @@ struct file *file_lookup(const char *name)
return file;
}
+/* write a dependency file as used by kbuild to track dependencies */
+int file_write_dep(const char *name)
+{
+ struct file *file;
+ FILE *out;
+
+ if (!name)
+ name = ".config.cmd";
+ out = fopen(".config.tmp", "w");
+ if (!out)
+ return 1;
+ fprintf(out, "deps_config := \\\n");
+ for (file = file_list; file; file = file->next) {
+ if (file->next)
+ fprintf(out, "\t%s \\\n", file->name);
+ else
+ fprintf(out, "\t%s\n", file->name);
+ }
+ fprintf(out, "\n.config include/config.h: $(deps_config)\n\n$(deps_config):\n");
+ fclose(out);
+ rename(".config.tmp", name);
+ return 0;
+}
/* Allocate initial growable sting */
struct gstr str_new(void)