Index: kconfig/confdata.c =================================================================== --- kconfig.orig/confdata.c +++ kconfig/confdata.c @@ -241,6 +241,13 @@ static const char *conf_get_autoconfig_n return name ? name : "include/config/auto.conf"; } +static const char *conf_get_autobase_name(void) +{ + char *name = getenv("KCONFIG_SPLITCONFIG"); + + return name ? name : "include/config/"; +} + static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p) { char *p2; @@ -1024,7 +1031,7 @@ static int conf_touch_deps(void) struct symbol *sym; int res, i; - strcpy(depfile_path, "include/config/"); + strcpy(depfile_path, conf_get_autobase_name()); depfile_prefix_len = strlen(depfile_path); name = conf_get_autoconfig_name(); @@ -1102,7 +1109,10 @@ int conf_write_autoconf(int overwrite) if (!overwrite && is_present(autoconf_name)) return 0; - conf_write_dep("include/config/auto.conf.cmd"); + char autoconfcmd_path[PATH_MAX]; + snprintf(autoconfcmd_path, sizeof(autoconfcmd_path), "%s%s", + conf_get_autobase_name(), "auto.conf.cmd"); + conf_write_dep(autoconfcmd_path); if (conf_touch_deps()) return 1;