print_datatables: check and ignore obsoleted providers when printing deps table

This commit is contained in:
Silvan Calarco 2011-10-12 12:02:42 +02:00
parent 4f2abc0fbc
commit 5fa39e3b16

View File

@ -1770,7 +1770,7 @@ print_datatables(struct configTag *ct, int arch) {
char obsoletebuf[1024]; char obsoletebuf[1024];
struct headerList *currheaderlist, *currchild; struct headerList *currheaderlist, *currchild;
struct headerSourceList * currheadersourcelist; struct headerSourceList * currheadersourcelist;
int i,depscnt; int i, depscnt, nonobsoletednumproviders;
snprintf(builddeps_filename,1024,"%sbuilddeps-%s",ct->html_dir,ct->arch[arch]); snprintf(builddeps_filename,1024,"%sbuilddeps-%s",ct->html_dir,ct->arch[arch]);
snprintf(deps_filename,1024,"%sdeps-%s",ct->html_dir,ct->arch[arch]); snprintf(deps_filename,1024,"%sdeps-%s",ct->html_dir,ct->arch[arch]);
@ -1859,7 +1859,11 @@ print_datatables(struct configTag *ct, int arch) {
// write deps file // write deps file
struct providedList* provided = ct->providedlist_idx[arch][0]; struct providedList* provided = ct->providedlist_idx[arch][0];
while (provided) { while (provided) {
if (provided->numproviders > 1) { nonobsoletednumproviders=0;
for (i = 0; i < provided->numproviders; i++) {
if (!provided->provider[i]->obsoleted) nonobsoletednumproviders++;
}
if (nonobsoletednumproviders > 1) {
fprintf(fd,"ifndef "); fprintf(fd,"ifndef ");
fprintf_depstable_filtered_var(fd,provided->name); fprintf_depstable_filtered_var(fd,provided->name);
fprintf(fd,"\n"); fprintf(fd,"\n");
@ -1871,9 +1875,11 @@ print_datatables(struct configTag *ct, int arch) {
fprintf_depstable_filtered_var(fs,provided->name); fprintf_depstable_filtered_var(fs,provided->name);
fprintf(fs,":"); fprintf(fs,":");
for (i = 0; i < provided->numproviders; i++) { for (i = 0; i < provided->numproviders; i++) {
if (!provided->provider[i]->obsoleted) {
fprintf(fd,"%s ",provided->provider[i]->name); fprintf(fd,"%s ",provided->provider[i]->name);
fprintf(fs," _%s",provided->provider[i]->sourceheader->name); fprintf(fs," _%s",provided->provider[i]->sourceheader->name);
} }
}
fprintf(fs,"\n"); fprintf(fs,"\n");
fprintf(fd,"\nendif\n"); fprintf(fd,"\nendif\n");
@ -1885,18 +1891,23 @@ print_datatables(struct configTag *ct, int arch) {
fprintf(fv,"%s= # ",provided->name); fprintf(fv,"%s= # ",provided->name);
for (i = 0; i < provided->numproviders; i++) { for (i = 0; i < provided->numproviders; i++) {
if (!provided->provider[i]->obsoleted) {
fprintf(fv,"%s ",provided->provider[i]->name); fprintf(fv,"%s ",provided->provider[i]->name);
} }
}
fprintf(fv,"\n"); fprintf(fv,"\n");
} else if (provided->numproviders == 1 && (strcmp(provided->name,provided->provider[0]->name))) { } else if (nonobsoletednumproviders == 1) {
for (i = 0; i < provided->numproviders; i++) {
if (!provided->provider[i]->obsoleted) break;
}
if (strcmp(provided->name,provided->provider[i]->name)) {
fprintf_depstable_filtered_var(fd,provided->name); fprintf_depstable_filtered_var(fd,provided->name);
fprintf(fd,": "); fprintf(fd,": ");
fprintf(fd,"%s\n",provided->provider[0]->name); fprintf(fd,"%s\n",provided->provider[i]->name);
fprintf_depstable_filtered_var(fs,provided->name); fprintf_depstable_filtered_var(fs,provided->name);
fprintf(fs,": _%s\n",provided->provider[0]->sourceheader->name); fprintf(fs,": _%s\n",provided->provider[i]->sourceheader->name);
}
} else if (provided->numproviders == 0) { } else {
fprintf_depstable_filtered_var(fd,provided->name); fprintf_depstable_filtered_var(fd,provided->name);
fprintf(fd,": "); fprintf(fd,": ");
fprintf(fd,"__missing_provider_for_"); fprintf(fd,"__missing_provider_for_");