summaryrefslogtreecommitdiff
path: root/adk/tools
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-11-05 19:54:09 +0100
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-11-05 19:54:09 +0100
commitdd3a1b26a482f034e8f762a4b3b848c639452846 (patch)
tree8a6ae5ecce8a42154e87dbab5115553c3c56f917 /adk/tools
parent6af63326081e054e5febc73b3b94ff35256c839d (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.c26
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);