X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=config%2Fconfdata.c;h=d67695d19ac77fdad52cbc4f4f005e8110ffcb58;hb=26347adf92b2c37b1b3eee55e610539f75dcfa92;hp=f6168f2aaeacda3113fd117ddfc710f41721ae55;hpb=8aac74167ad25956a35b6d5b04cc97cc1ed6ce04;p=carl9170fw.git diff --git a/config/confdata.c b/config/confdata.c index f6168f2..d67695d 100644 --- a/config/confdata.c +++ b/config/confdata.c @@ -1,12 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2002 Roman Zippel - * Released under the terms of the GNU GPL v2.0. */ #include #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;