diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-11-05 19:54:09 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-11-05 19:54:09 +0100 |
commit | dd3a1b26a482f034e8f762a4b3b848c639452846 (patch) | |
tree | 8a6ae5ecce8a42154e87dbab5115553c3c56f917 /adk/tools | |
parent | 6af63326081e054e5febc73b3b94ff35256c839d (diff) |
fix depmaker bug, we need to skip the dependency but do not break out of the function, problem reported by Oliver
Diffstat (limited to 'adk/tools')
-rw-r--r-- | adk/tools/depmaker.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/adk/tools/depmaker.c b/adk/tools/depmaker.c index 620bdb9e9..8fc16c6de 100644 --- a/adk/tools/depmaker.c +++ b/adk/tools/depmaker.c @@ -70,7 +70,7 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym, char *key, *value, *dep, *key_sym, *pkgdeps, *depvar; char temp[MAXLINE]; - int i; + int i, skip; string[strlen(string)-1] = '\0'; if ((key = strtok(string, ":=")) == NULL) { @@ -120,6 +120,7 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym, exit(EXIT_FAILURE); } + skip=0; value = strtok(NULL, "=\t"); dep = strtok(value, " "); while (dep != NULL) { @@ -162,24 +163,27 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym, if (snprintf(key_sym, MAXLINE, "ADK_HOST_BUILD_%s", depvar) < 0) perror("Can not create string variable."); - if (check_symbol(key_sym) != 0) { - free(key_sym); - free(depvar); - break; - } + if (check_symbol(key_sym) != 0) + skip=1; + free(key_sym); free(depvar); } } if (*prefixp == 0) { *prefixp = 1; - if (snprintf(temp, MAXLINE, "%s-compile: %s-compile", package, dep) < 0) - perror("Can not create string variable."); + if (skip == 0) { + if (snprintf(temp, MAXLINE, "%s-compile: %s-compile", package, dep) < 0) + perror("Can not create string variable."); + strncat(pkgdeps, temp, strlen(temp)); + } } else { - if (snprintf(temp, MAXLINE, " %s-compile", dep) < 0) - perror("Can not create string variable."); + if (skip == 0) { + if (snprintf(temp, MAXLINE, " %s-compile", dep) < 0) + perror("Can not create string variable."); + strncat(pkgdeps, temp, strlen(temp)); + } } - strncat(pkgdeps, temp, strlen(temp)); dep = strtok(NULL, " "); } return(pkgdeps); |