cleanup/simplify kconfig changes for O= builds
authorPeter Korsgaard <jacmet@sunsite.dk>
Sun, 20 Jun 2010 11:43:36 +0000 (13:43 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 21 Jun 2010 20:11:31 +0000 (22:11 +0200)
No functional change.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/config/confdata.c
package/config/lkc.h
package/config/util.c

index fe1fc2e8e667daced99c35ec440ab72fcbbcfac9..51a3d9a6f594543bf52445a0ffab4a39497a87ec 100644 (file)
@@ -404,6 +404,9 @@ int conf_write(const char *name)
        int use_timestamp = 1;
        char *env;
 
+       if (!name)
+               name = conf_get_configname();
+
        dirname[0] = 0;
        if (name && name[0]) {
                struct stat st;
@@ -423,17 +426,8 @@ int conf_write(const char *name)
                                basename = conf_get_configname();
                } else
                        basename = name;
-       } else {
-               char *slash;
-
+       } else
                basename = conf_get_configname();
-               if((slash = strrchr(basename, '/'))) {
-                       int size = slash - basename + 1;
-                       memcpy(dirname, basename, size);
-                       dirname[size] = 0;
-                       basename = slash + 1;
-               }
-       }
 
        sprintf(newname, "%s%s", dirname, basename);
        env = getenv("KCONFIG_OVERWRITECONFIG");
@@ -697,51 +691,31 @@ int conf_write_autoconf(void)
        FILE *out, *out_h;
        time_t now;
        int i, l;
-       char buf[PATH_MAX+1];
-       char buf2[PATH_MAX+1];
+       char dir[PATH_MAX+1], buf[PATH_MAX+1];
+       char *s;
 
-       sym_clear_all_valid();
+       strcpy(dir, conf_get_configname());
+       s = strrchr(dir, '/');
+       if (s)
+               s[1] = 0;
+       else
+               dir[0] = 0;
 
-       name = conf_get_configname();
-       str = strrchr(name, '/');
+       sym_clear_all_valid();
 
-       memset(buf, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf, name, str - name + 1);
-       }
-       strcat(buf, ".config.cmd");
+       sprintf(buf, "%s.config.cmd", dir);
        file_write_dep(buf);
 
-       memset(buf, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf, name, str - name + 1);
-       }
-       strcat(buf, ".auto.deps");
-       write_make_deps(buf);
-
        if (conf_split_config())
                return 1;
 
-       memset(buf, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf, name, str - name + 1);
-       }
-       strcat(buf, ".tmpconfig");
-       memset(buf2, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf2, name, str - name + 1);
-       }
-       strcat(buf2, ".tmpconfig.h");
-
+       sprintf(buf, "%s.tmpconfig", dir);
        out = fopen(buf, "w");
        if (!out)
                return 1;
 
-       out_h = fopen(buf2, "w");
+       sprintf(buf, "%s.tmpconfig.h", dir);
+       out_h = fopen(buf, "w");
        if (!out_h) {
                fclose(out);
                return 1;
@@ -823,13 +797,15 @@ int conf_write_autoconf(void)
        name = getenv("KCONFIG_AUTOHEADER");
        if (!name)
                name = "include/linux/autoconf.h";
-       if (rename(buf2, name))
+       sprintf(buf, "%s.tmpconfig.h", dir);
+       if (rename(buf, name))
                return 1;
        name = conf_get_autoconfig_name();
        /*
         * This must be the last step, kbuild has a dependency on auto.conf
         * and this marks the successful completion of the previous steps.
         */
+       sprintf(buf, "%s.tmpconfig", dir);
        if (rename(buf, name))
                return 1;
 
index e5661c0e85b3e92f6d4543c0fb97f612f1835783..f379b0bf8c9e7b8d45a6bd9a7f689af7165fcec6 100644 (file)
@@ -102,7 +102,6 @@ void menu_set_type(int type);
 /* util.c */
 struct file *file_lookup(const char *name);
 int file_write_dep(const char *name);
-int write_make_deps(const char *name);
 
 struct gstr {
        size_t len;
index a1e9dea21542bdabd82cd07642e0e0798ed9b983..c3821407d578624cd1cb4905816d659527dd40a6 100644 (file)
@@ -51,25 +51,27 @@ static char* br2_symbol_printer(const char * const in)
 }
 
 /* write dependencies of the infividual config-symbols */
-int write_make_deps(const char *name)
+static int write_make_deps(const char *name)
 {
-       const char *str;
-       char buf[PATH_MAX+1];
+       char *str;
+       char dir[PATH_MAX+1], buf[PATH_MAX+1], buf2[PATH_MAX+1];
        struct menu *menu;
        struct symbol *sym;
        struct property *prop, *p;
        unsigned done;
+       const char * const name_tmp = "..make.deps.tmp";
        FILE *out;
        if (!name)
                name = ".auto.deps";
 
-       str = strrchr(name, '/');
-       memset(buf, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf, name, str - name + 1);
-       }
-       strcat(buf, "..make.deps.tmp");
+       strcpy(dir, conf_get_configname());
+       str = strrchr(dir, '/');
+       if (str)
+               str[1] = 0;
+       else
+               dir[0] = 0;
+
+       sprintf(buf, "%s%s", dir, name_tmp);
        out = fopen(buf, "w");
        if (!out)
                return 1;
@@ -129,7 +131,8 @@ next:
                }
        }
        fclose(out);
-       rename(buf, name);
+       sprintf(buf2, "%s%s", dir, name);
+       rename(buf, buf2);
        printf(_("#\n"
                 "# make dependencies written to %s\n"
                 "# ATTENTION buildroot devels!\n"
@@ -141,8 +144,8 @@ next:
 /* write a dependency file as used by kbuild to track dependencies */
 int file_write_dep(const char *name)
 {
-       const char *str;
-       char buf[PATH_MAX+1];
+       char *str;
+       char buf[PATH_MAX+1], buf2[PATH_MAX+1], dir[PATH_MAX+1];
        struct symbol *sym, *env_sym;
        struct expr *e;
        struct file *file;
@@ -151,14 +154,14 @@ int file_write_dep(const char *name)
        if (!name)
                name = ".kconfig.d";
 
-       str = strrchr(name, '/');
-       memset(buf, 0, PATH_MAX+1);
-       if(str)
-       {
-               strncpy(buf, name, str - name + 1);
-       }
-       strcat(buf, "..config.tmp");
+       strcpy(dir, conf_get_configname());
+       str = strrchr(dir, '/');
+       if (str)
+               str[1] = 0;
+       else
+               dir[0] = 0;
 
+       sprintf(buf, "%s..config.tmp", dir);
        out = fopen(buf, "w");
        if (!out)
                return 1;
@@ -190,7 +193,9 @@ int file_write_dep(const char *name)
 
        fprintf(out, "\n$(deps_config): ;\n");
        fclose(out);
-       rename(buf, name);
+       sprintf(buf2, "%s%s", dir, name);
+       rename(buf, buf2);
+       return write_make_deps(NULL);
 }