Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 30602
b: refs/heads/master
c: 14cdd3c
h: refs/heads/master
v: v3
  • Loading branch information
Roman Zippel authored and Sam Ravnborg committed Jun 9, 2006
1 parent 5ad4067 commit c142369
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 250725aa13f5c9595e5bc265ebed8471e816d8b4
refs/heads/master: 14cdd3c402bf7c66f0bcd76e290f0770a54a4b21
6 changes: 4 additions & 2 deletions trunk/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ CROSS_COMPILE ?=
# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)

KCONFIG_CONFIG ?= .config

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
Expand Down Expand Up @@ -437,13 +439,13 @@ ifeq ($(dot-config),1)
-include include/config/auto.conf

# To avoid any implicit rule to kick in, define an empty command
.config include/config/auto.conf.cmd: ;
$(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;

# If .config is newer than include/config/auto.conf, someone tinkered
# with it and forgot to run make oldconfig.
# if auto.conf.cmd is missing then we are probarly in a cleaned tree so
# we execute the config step to be sure to catch updated Kconfig files
include/config/auto.conf: .config include/config/auto.conf.cmd
include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig

else
Expand Down
46 changes: 29 additions & 17 deletions trunk/scripts/kconfig/confdata.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ static void conf_warning(const char *fmt, ...)
static const char *conf_filename;
static int conf_lineno, conf_warnings, conf_unsaved;

const char conf_def_filename[] = ".config";

const char conf_defname[] = "arch/$ARCH/defconfig";

static void conf_warning(const char *fmt, ...)
Expand All @@ -36,6 +34,13 @@ static void conf_warning(const char *fmt, ...)
conf_warnings++;
}

const char *conf_get_configname(void)
{
char *name = getenv("KCONFIG_CONFIG");

return name ? name : ".config";
}

static char *conf_expand_value(const char *in)
{
struct symbol *sym;
Expand Down Expand Up @@ -91,7 +96,7 @@ int conf_read_simple(const char *name, int def)
} else {
struct property *prop;

name = conf_def_filename;
name = conf_get_configname();
in = zconf_fopen(name);
if (in)
goto load;
Expand Down Expand Up @@ -381,24 +386,32 @@ int conf_write(const char *name)
if (!stat(name, &st) && S_ISDIR(st.st_mode)) {
strcpy(dirname, name);
strcat(dirname, "/");
basename = conf_def_filename;
basename = conf_get_configname();
} else if ((slash = strrchr(name, '/'))) {
int size = slash - name + 1;
memcpy(dirname, name, size);
dirname[size] = 0;
if (slash[1])
basename = slash + 1;
else
basename = conf_def_filename;
basename = conf_get_configname();
} else
basename = name;
} else
basename = conf_def_filename;
basename = conf_get_configname();

sprintf(newname, "%s.tmpconfig.%d", dirname, (int)getpid());
out = fopen(newname, "w");
sprintf(newname, "%s%s", dirname, basename);
env = getenv("KCONFIG_OVERWRITECONFIG");
if (!env || !*env) {
sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
out = fopen(tmpname, "w");
} else {
*tmpname = 0;
out = fopen(newname, "w");
}
if (!out)
return 1;

sym = sym_lookup("KERNELVERSION", 0);
sym_calc_value(sym);
time(&now);
Expand Down Expand Up @@ -498,19 +511,18 @@ int conf_write(const char *name)
}
}
fclose(out);
if (!name || basename != conf_def_filename) {
if (!name)
name = conf_def_filename;
sprintf(tmpname, "%s.old", name);
rename(name, tmpname);

if (*tmpname) {
strcat(dirname, name ? name : conf_get_configname());
strcat(dirname, ".old");
rename(newname, dirname);
if (rename(tmpname, newname))
return 1;
}
sprintf(tmpname, "%s%s", dirname, basename);
if (rename(newname, tmpname))
return 1;

printf(_("#\n"
"# configuration written to %s\n"
"#\n"), tmpname);
"#\n"), newname);

sym_change_count = 0;

Expand Down
2 changes: 0 additions & 2 deletions trunk/scripts/kconfig/lkc.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,6 @@ int zconf_lineno(void);
char *zconf_curname(void);

/* confdata.c */
extern const char conf_def_filename[];

char *conf_get_default_confname(void);

/* kconfig_load.c */
Expand Down

0 comments on commit c142369

Please sign in to comment.