carl9170: config: re-add config.cmake
[carl9170fw.git] / config / confdata.c
index 6df907afe17ec25bdb79f859091b89c3b31d9c51..d67695d19ac77fdad52cbc4f4f005e8110ffcb58 100644 (file)
@@ -7,6 +7,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <limits.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -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;