X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fconfdata.c;h=d67695d19ac77fdad52cbc4f4f005e8110ffcb58;hb=fa77bcaf0aac039e45715be971cbaa2532130570;hp=6df907afe17ec25bdb79f859091b89c3b31d9c51;hpb=18b696a20bbca64a93dfecae0fdff3fb0dc85166;p=carl9170fw.git diff --git a/config/confdata.c b/config/confdata.c index 6df907a..d67695d 100644 --- a/config/confdata.c +++ b/config/confdata.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -1060,13 +1061,17 @@ static int conf_touch_deps(void) return 0; } -int conf_write_autoconf(void) +int conf_write_autoconf(int overwrite) { struct symbol *sym; const char *name; + const char *autoconf_name = conf_get_autoconfig_name(); FILE *out, *tristate, *out_h, *out_c; int i; + if (!overwrite && is_present(autoconf_name)) + return 0; + sym_clear_all_valid(); conf_write_dep("include/generated/auto.conf.cmd"); @@ -1141,6 +1146,9 @@ int conf_write_autoconf(void) if (rename(".tmpconfig_tristate", name)) return 1; + if (make_parent_dir(autoconf_name)) + return 1; + name = getenv("KCONFIG_CMAKE"); if (!name) name = "config.cmake"; @@ -1149,15 +1157,11 @@ int conf_write_autoconf(void) if (rename(".tmpconfig.cmake", name)) return 1; - name = conf_get_autoconfig_name(); - if (make_parent_dir(name)) - return 1; - /* * This must be the last step, kbuild has a dependency on auto.conf * and this marks the successful completion of the previous steps. */ - if (rename(".tmpconfig", name)) + if (rename(".tmpconfig", autoconf_name)) return 1; return 0;