Update of /cvsroot/alsa/alsa-driver/utils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18514
Modified Files: mod-deps.c Log Message: Fixed dependency generation for single cards Index: mod-deps.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/utils/mod-deps.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- mod-deps.c 15 Mar 2004 08:05:20 -0000 1.6 +++ mod-deps.c 18 Mar 2004 09:56:50 -0000 1.7 @@ -47,6 +47,7 @@ struct sel { char *name; /* dependency name */ + int hitflag; struct dep *dep; /* dependency pointer */ struct sel *next; }; @@ -61,6 +62,8 @@ struct dep *next; // bool? int is_bool; + // hitflag? + int hitflag; }; // Prototypes @@ -831,6 +834,42 @@ } } +// acinclude.m4 helpers +static void sel_remove_hitflags(void) +{ + struct dep * dep; + struct sel * nsel; + + for (dep = all_deps; dep; dep = dep->next) { + dep->hitflag = 0; + for (nsel = dep->sel; nsel; nsel = nsel->next) + nsel->hitflag = 0; + } +} + +static void sel_print_acinclude(struct sel *sel) +{ + struct dep * dep; + struct sel * nsel; + + dep = sel->dep; + if (dep == NULL) + return; + if (dep->hitflag) + return; + dep->hitflag = 1; + for (nsel = dep->sel; nsel; nsel = nsel->next) { + if (nsel->hitflag) + continue; + nsel->hitflag = 1; + sel_print_acinclude(nsel); + printf("\t\tCONFIG_%s=\"%c\"\n", nsel->name, + (nsel->dep && nsel->dep->is_bool) ? 'y' : 'm'); + printf("\t\tAC_DEFINE(CONFIG_%s%s)\n", nsel->name, + (nsel->dep && nsel->dep->is_bool) ? "" : "_MODULE"); + } +} + // Output in acinlude.m4 static void output_acinclude(void) { @@ -930,6 +969,22 @@ if (text) { printf("\t%s)\n", text); free(text); + printf("\t\tCONFIG_SND=\"m\"\n"); + printf("\t\tAC_DEFINE(CONFIG_SND_MODULE)\n"); + sel_remove_hitflags(); + for (sel = tempdep->sel; sel; sel = sel->next) + sel_print_acinclude(sel); +#if 0 + for (cond = tempdep->cond; cond; cond = cond->next) { + if (is_always_true(cond->dep) && + strcmp(cond->name, "SND")) + continue; + printf("\t\tCONFIG_%s=\"%c\"\n", cond->name, + (cond->dep && cond->dep->is_bool) ? 'y' : 'm'); + printf("\t\tAC_DEFINE(CONFIG_%s%s)\n", cond->name, + (cond->dep && cond->dep->is_bool) ? "" : "_MODULE"); + } +#endif for (sel = tempdep->sel; sel; sel = sel->next) { if (is_always_true(sel->dep)) continue; ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog