#define mkdir(x,y) mkdir(x)
#define UNLINK_IF_NECESSARY(x) unlink(x)
#else
-#define UNLINK_IF_NECESSARY(X)
+#define UNLINK_IF_NECESSARY(X)
#endif
static void conf_warning(const char *fmt, ...)
FILE *out, *out_h;
time_t now;
int i, l;
+ char tmpname[128], tmpname_h[128];
sym_clear_all_valid();
return 1;
#endif
- out = fopen(".tmpconfig", "w");
+ sprintf(tmpname, ".tmpconfig.%d", (int)getpid());
+ out = fopen(tmpname, "w");
if (!out)
return 1;
- out_h = fopen(".tmpconfig.h", "w");
+ sprintf(tmpname_h, ".tmpconfig.h.%d", (int)getpid());
+ out_h = fopen(tmpname_h, "w");
if (!out_h) {
fclose(out);
return 1;
for_all_symbols(i, sym) {
sym_calc_value(sym);
- if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
+ if (!sym->name)
continue;
+ if (!(sym->flags & SYMBOL_WRITE)) {
+ if (sym->type == S_BOOLEAN || sym->type == S_HEX
+ || sym->type == S_INT)
+ fprintf(out_h, "#define CONFIG_%s 0\n",
+ sym->name);
+ continue;
+ }
switch (sym->type) {
case S_BOOLEAN:
case S_TRISTATE:
if (!name)
name = "include/linux/autoconf.h";
UNLINK_IF_NECESSARY(name);
- if (rename(".tmpconfig.h", name))
+ if (rename(tmpname_h, name))
return 1;
name = getenv("KCONFIG_AUTOCONFIG");
if (!name)
* and this marks the successful completion of the previous steps.
*/
UNLINK_IF_NECESSARY(name);
- if (rename(".tmpconfig", name))
+ if (rename(tmpname, name))
return 1;
return 0;