Update of /cvsroot/alsa/alsa-kernel/scripts
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11538
Modified Files:
mod-deps.c
Log Message:
Removed MAKEFILE target
Index: mod-deps.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/scripts/mod-deps.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- mod-deps.c 10 Nov 2003 17:37:54 -0000 1.16
+++ mod-deps.c 3 Mar 2004 10:08:08 -0000 1.17
@@ -29,10 +29,9 @@
#define WARNINGS 1 // Output warnings to stderr
// Output methods
-#define METHOD_MAKEFILE 1
-#define METHOD_ACINCLUDE 2
-#define METHOD_MAKECONF 3
-#define METHOD_INCLUDE 4
+#define METHOD_ACINCLUDE 1
+#define METHOD_MAKECONF 2
+#define METHOD_INCLUDE 3
// Dependency type
typedef enum {
@@ -43,8 +42,6 @@
typedef struct depStruct dep;
typedef struct subdepStruct {
- int nummacros;
- char **macronames;
dep *dep;
} subdep;
@@ -58,8 +55,6 @@
char **depnames;
dep **deps;
struct depStruct *link;
- int nummacros;
- char **macronames;
int hitflag;
int printflag;
int options;
@@ -80,23 +75,19 @@
static int read_file(char *filename);
static void parse_dir(char *line, char **dir);
static void add_dep(char *line, const char *dir, short type);
-static void parse_makefile_outdesc(char *line);
static dep *alloc_mem_for_dep(Type type);
static char *get_word(char *line, char *word);
static dep *find_dep(char *parent, char *depname);
-static int make_list_of_deps_for_dep(dep * dependency, subdep **list);
static void del_all_from_list(void);
int main(int argc, char *argv[]);
static void usage(char *programname);
-static void output_makefile(const char *dir, int all);
static char *convert_to_config_uppercase(const char *pre, const char *line);
// static char *convert_to_escape(const char *line);
static char *get_card_name(const char *line);
// Globals
static dep *Deps = NULL; // All other modules
-static makefileMacro *makefileMacros = NULL; // All makefile macros
static int read_file(char *filename)
{
@@ -144,8 +135,6 @@
if (buffer[0] == '%') {
if (!strncmp(buffer, "%dir ", 5))
parse_dir(buffer + 5, &dir);
- if (!strncmp(buffer, "%makefile ", 10))
- parse_makefile_outdesc(buffer + 10);
continue;
} else if (buffer[0] == '|')
add_dep(buffer + 1, dir, TYPE_TOPLEVEL); // Toplevel
modules (skip |)
@@ -207,24 +196,6 @@
new_dep->name = strdup(word); // Fill in name of dependency
while (get_word(line, word)) {
- if (word[0] == '@') { /* macro */
- if (strcmp(word, "@pnponly") == 0) {
- new_dep->options |= OPT_PNP_ONLY;
- continue;
- }
- new_dep->macronames = realloc(new_dep->macronames, sizeof(char
*) * (new_dep->nummacros + 1));
- if (new_dep->macronames == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->macronames[new_dep->nummacros] = strdup(word);
- if (new_dep->macronames[new_dep->nummacros] == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->nummacros++;
- continue;
- }
new_dep->depnames = realloc(new_dep->depnames, sizeof(char *) *
(numdeps + 1));
new_dep->deps = realloc(new_dep->deps, sizeof(dep *) * (numdeps + 1));
if (new_dep->depnames == NULL || new_dep->deps == NULL) {
@@ -243,123 +214,6 @@
return;
}
-static void add_makefile_text(char **dst, const char *src)
-{
- int len = *dst ? strlen(*dst) : 0;
- char *tmp;
-
- tmp = malloc(len + strlen(src) + 2);
- if (tmp == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- if (*dst) {
- strcpy(tmp, *dst);
- free(*dst);
- } else {
- tmp[0] = 0;
- }
- strcat(tmp, src);
- strcat(tmp, "\n");
- *dst = tmp;
-}
-
-// Parse makefile output description
-static void parse_makefile_outdesc(char *line)
-{
- static enum {
- NONE = 0,
- HEADER = 1,
- FOOTER = 2,
- } command = NONE;
- static makefileMacro *macro = NULL;
- char *word;
-
- word = malloc(strlen(line) + 1);
- if (word == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- get_word(line, word);
- if (macro == NULL) {
- if (!strcmp(word, "group")) {
- get_word(line, word);
- if (word[0] == '\0') {
- fprintf(stderr, "macro group has null name\n");
- exit(EXIT_FAILURE);
- }
- macro = (makefileMacro *) calloc(1, sizeof(makefileMacro));
- if (macro == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macro->name = strdup(word);
- if (macro->name == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- return;
- } else {
- fprintf(stderr, "Unknown command '%s' for makefile macro
section\n", word);
- exit(EXIT_FAILURE);
- }
- }
- if (command == NONE) {
- if (!strcmp(word, "endgroup")) {
- get_word(line, word);
- if (word[0] == '\0') {
- fprintf(stderr, "macro endgroup has null name\n");
- exit(EXIT_FAILURE);
- }
- if (strcmp(macro->name, word)) {
- fprintf(stderr, "endgroup name does not match group
name\n");
- exit(EXIT_FAILURE);
- }
- macro->link = makefileMacros;
- makefileMacros = macro;
- macro = NULL;
- return;
- } else if (!strcmp(word, "header")) {
- command = HEADER;
- } else if (!strcmp(word, "footer")) {
- command = FOOTER;
- } else if (!strcmp(word, "indent")) {
- get_word(line, word);
- macro->indent = atoi(word);
- } else if (!strcmp(word, "ignore_in")) {
- get_word(line, word);
- add_makefile_text(¯o->ignore_in, word);
- } else {
- fprintf(stderr, "unknown command %s (none scope)\n", word);
- exit(EXIT_FAILURE);
- }
- } else if (!strcmp(word, "line")) {
- if (command == HEADER)
- add_makefile_text(¯o->header, line);
- else if (command == FOOTER)
- add_makefile_text(¯o->footer, line);
- else {
- fprintf(stderr, "wrong line command usage\n");
- exit(EXIT_FAILURE);
- }
- } else if (!strcmp(word, "endheader")) {
- if (command != HEADER) {
- fprintf(stderr, "wrong endheader command usage\n");
- exit(EXIT_FAILURE);
- }
- command = NONE;
- } else if (!strcmp(word, "endfooter")) {
- if (command != FOOTER) {
- fprintf(stderr, "wrong endfooter command usage\n");
- exit(EXIT_FAILURE);
- }
- command = NONE;
- } else {
- fprintf(stderr, "wrong %s command (%i scope)\n", word, command);
- exit(EXIT_FAILURE);
- }
-}
-
static dep *alloc_mem_for_dep(Type type)
{
dep * firstdep = Deps, * ndep;
@@ -448,24 +302,6 @@
return NULL;
}
-// Find the macro named "depname"
-static makefileMacro *find_makefileMacro(char *macroname)
-{
- makefileMacro *macro = makefileMacros;
-
- if (!macroname)
- return NULL;
- if (macroname[0] == '-')
- return NULL;
- while (macro) {
- // fprintf(stderr, "macroname = '%s', name = '%s'\n", macroname,
macro->name);
- if (!strcmp(macroname, macro->name))
- return macro;
- macro = macro->link;
- }
- return NULL;
-}
-
// Resolve all dependencies
static void resolve_dep(dep * parent)
{
@@ -478,34 +314,6 @@
}
}
-// add a new macro to subdep
-static void add_macro_to_subdep(subdep *subdep, const char *macroname, int add)
-{
- char *str;
- int i;
-
- for (i = 0; i < subdep->nummacros; i++)
- if (!strcmp(subdep->macronames[i], macroname) ||
- (subdep->macronames[i][0] == '-' &&
- !strcmp(subdep->macronames[i] + 1, macroname)))
- return;
- subdep->macronames = realloc(subdep->macronames, sizeof(char *) *
(subdep->nummacros + 1));
- if (add) {
- str = strdup(macroname);
- } else {
- str = malloc(strlen(macroname)+2);
- if (str) {
- str[0] = '-';
- strcpy(str+1, macroname);
- }
- }
- if (subdep->macronames == NULL || str == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- subdep->macronames[subdep->nummacros++] = str;
-}
-
// Fill list[] with all deps for dependency
static int make_list_of_deps_for_dep1(dep * parent, dep * dependency, subdep **list,
int num)
{
@@ -538,52 +346,13 @@
}
new_dep = &((*list)[num++]);
new_dep->dep = dep;
- new_dep->nummacros = 0;
- new_dep->macronames = NULL;
- for (j = 0; j < dependency->nummacros; j++)
- add_macro_to_subdep(new_dep,
dependency->macronames[j], 1);
- for (j = 0; j < dep->nummacros; j++)
- add_macro_to_subdep(new_dep,
dep->macronames[j], 1);
num = make_list_of_deps_for_dep1(dependency, dep,
list, num);
- } else {
- for (j = 0; j < dependency->nummacros; j++)
- add_macro_to_subdep(old_dep,
dependency->macronames[j], 0);
- for (j = 0; j < dep->nummacros; j++)
- add_macro_to_subdep(old_dep,
dep->macronames[j], 0);
}
}
}
return num;
}
-// Clear all print flags
-static void clear_printflags(void)
-{
- dep *temp_dep = Deps;
-
- while (temp_dep) {
- temp_dep->printflag = 0;
- if (temp_dep->printed) {
- free(temp_dep->printed);
- temp_dep->printed = NULL;
- }
- temp_dep = temp_dep->link;
- }
-}
-
-// Fill list[] with all deps for dependency
-static int make_list_of_deps_for_dep(dep * dependency, subdep **list)
-{
- dep * temp_dep = Deps;
-
- while (temp_dep) {
- temp_dep->hitflag = 0;
- temp_dep = temp_dep->link;
- }
- *list = NULL;
- return make_list_of_deps_for_dep1(NULL, dependency, list, 0);
-}
-
// Free memory for all deps in Toplevel and Deps
static void del_all_from_list(void)
{
@@ -598,12 +367,7 @@
free(list->depnames[idx]);
free(list->depnames);
}
- if (list->macronames) {
- for (idx = 0; idx < list->nummacros; idx++)
- if (list->macronames[idx])
- free(list->macronames[idx]);
- free(list->macronames);
- }
+
if (list->name)
free(list->name);
if (list->deps)
@@ -613,283 +377,6 @@
}
}
-// Free subdep list memory
-static void free_subdep_list(subdep *list, int num)
-{
- int idx;
-
- if (list == NULL)
- return;
- for (idx = 0; idx < num; idx++) {
- int mac;
- subdep *sdep = &list[idx];
-
- if (sdep->macronames) {
- for (mac = 0; mac < sdep->nummacros; mac++)
- if (sdep->macronames[mac])
- free(sdep->macronames[mac]);
- free(sdep->macronames);
- }
- }
- free(list);
-}
-
-// Print spaces
-static void print_indent(int indent)
-{
- while (indent >= 8) {
- printf("\t");
- indent -= 8;
- }
- while (indent-- > 0)
- printf(" ");
-}
-
-// Check ignore_in
-static int check_ignore_in(makefileMacro *macro, const char *dir)
-{
- char *str;
-
- if (macro == NULL)
- return 1;
- str = macro->ignore_in;
- while (str) {
- if (strlen(str) < strlen(dir))
- return 0;
- if (!strncmp(str, dir, strlen(dir)) && (str[strlen(dir)] == '\0' ||
str[strlen(dir)] == '\n'))
- return 1;
- while (*str && *str != '\n')
- str++;
- if (*str == '\n')
- str++;
- }
- return 0;
-}
-
-// Add to printed
-static void add_printed(dep *tempdep, const char *name)
-{
- if (!tempdep->printed) {
- tempdep->printed = strdup(name);
- } else {
- tempdep->printed = realloc(tempdep->printed, strlen(tempdep->printed)
+ strlen(name) + 2);
- strcat(tempdep->printed, " ");
- strcat(tempdep->printed, name);
- }
-}
-
-// Is printed?
-static int is_printed(dep *tempdep, const char *name)
-{
- char *str = tempdep->printed;
-
- if (str == NULL)
- return 0;
- while (*str) {
- if (!strncmp(str, name, strlen(name)) &&
- (str[strlen(name)] == ' ' || str[strlen(name)] == '\0'))
- return 1;
- while (*str && *str != ' ')
- str++;
- if (*str == ' ')
- str++;
- }
- return 0;
-}
-
-// Output in Makefile.in format
-static void output_makefile1(const char *dir, int all)
-{
- dep *tempdep;
- subdep *list;
- char *text;
- int num, idx, midx, vidx, lidx, first, mfirst, macroloop, indent;
- int nummacros = 0, indir = 0;
- makefileMacro **macros = NULL;
-
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (!all && tempdep->type != TYPE_TOPLEVEL)
- continue;
- if (tempdep->printflag)
- continue;
- indir = !dir || !strcmp(dir, tempdep->dir);
- for (midx = 0; midx < tempdep->nummacros; midx++) {
- makefileMacro *macro =
find_makefileMacro(tempdep->macronames[midx++]);
- if (check_ignore_in(macro, dir))
- continue;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (macros[vidx] == macro)
- break;
- }
- if (vidx >= nummacros) {
- macros = (makefileMacro **)realloc(macros,
sizeof(makefileMacro *) * (nummacros + 1));
- if (macros == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macros[nummacros++] = macro;
- }
- if (macro != NULL)
- goto __out1_1;
- }
- first = 1;
- num = make_list_of_deps_for_dep(tempdep, &list);
- for (idx = 0; idx < num; idx++) {
- subdep *ldep = &list[idx];
- if (dir && strcmp(dir, ldep->dep->dir))
- continue;
- for (midx = 0; midx < ldep->nummacros; midx++) {
- makefileMacro *macro;
- macro = find_makefileMacro(ldep->macronames[midx++]);
- if (check_ignore_in(macro, dir))
- continue;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (macros[vidx] == macro)
- break;
- }
- if (vidx >= nummacros) {
- macros = (makefileMacro **)realloc(macros,
sizeof(makefileMacro *) * (nummacros + 1));
- if (macros == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macros[nummacros++] = macro;
- }
- if (macro != NULL)
- goto __out1;
- }
- if (is_printed(tempdep, ldep->dep->name))
- goto __out1;
- if (first) {
- text = convert_to_config_uppercase("CONFIG_",
tempdep->name);
- printf("obj-$(%s) +=", text);
- free(text);
- tempdep->printflag = 1;
- first = 0;
- if (indir)
- printf(" %s.o", tempdep->name);
- }
- add_printed(tempdep, ldep->dep->name);
- printf(" %s.o", ldep->dep->name);
- }
- __out1:
- free_subdep_list(list, num);
- if (!first)
- printf("\n");
- if (first && indir) {
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("obj-$(%s) += %s.o\n", text, tempdep->name);
- free(text);
- tempdep->printflag = 1;
- }
- }
- __out1_1:
- if (nummacros == 0)
- macroloop = 0;
- else {
- macroloop = 1;
- for (idx = 1; idx < nummacros; idx++)
- macroloop <<= 1;
- }
- for (lidx = 1; lidx <= macroloop; lidx++) {
- indent = 0;
- mfirst = 1;
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (!all && tempdep->type != TYPE_TOPLEVEL)
- continue;
- indir = !dir || !strcmp(dir, tempdep->dir);
- first = 1;
- for (midx = 0; midx < tempdep->nummacros; midx++) {
- makefileMacro *macro =
find_makefileMacro(tempdep->macronames[midx]);
- if (macro == NULL)
- goto __ok2_2;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (!(lidx & (1 << vidx)))
- continue;
- if (macro == macros[vidx])
- goto __ok2_2;
- }
- goto __out2_2;
- }
- __ok2_2:
- num = make_list_of_deps_for_dep(tempdep, &list);
- for (idx = 0; idx < num; idx++) {
- subdep *ldep = &list[idx];
- if (!ldep->nummacros)
- continue;
- if (dir && strcmp(dir, ldep->dep->dir))
- continue;
- for (midx = 0; midx < ldep->nummacros; midx++) {
- makefileMacro *macro =
find_makefileMacro(ldep->macronames[midx]);
- if (macro == NULL)
- goto __ok2;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (!(lidx & (1 << vidx)))
- continue;
- if (macro == macros[vidx])
- goto __ok2;
- }
- goto __out2;
- }
- __ok2:
- if (is_printed(tempdep, ldep->dep->name))
- goto __out2;
- if (first) {
- if (mfirst) {
- for (vidx = 0; vidx < nummacros;
vidx++) {
- makefileMacro *macro;
- if (!(lidx & (1 << vidx)))
- continue;
- macro = macros[vidx];
- if (macro->header) {
- print_indent(indent);
- printf(macro->header);
- }
- indent += macro->indent;
- }
- mfirst = 0;
- }
- text = convert_to_config_uppercase("CONFIG_",
tempdep->name);
- print_indent(indent);
- printf("obj-$(%s) +=", text);
- free(text);
- first = 0;
- if (!tempdep->printflag && indir)
- printf(" %s.o", tempdep->name);
- }
- add_printed(tempdep, ldep->dep->name);
- printf(" %s.o", ldep->dep->name);
- }
- __out2:
- free_subdep_list(list, num);
- if (!first)
- printf("\n");
- }
- __out2_2:
- if (!mfirst) {
- for (vidx = 0; vidx < nummacros; vidx++) {
- makefileMacro *macro;
- if (!(lidx & (1 << vidx)))
- continue;
- macro = macros[vidx];
- indent -= macro->indent;
- if (macro->footer) {
- print_indent(indent);
- printf(macro->footer);
- }
- }
- }
- }
-}
-
-// Output in Makefile.in format
-static void output_makefile(const char *dir, int all)
-{
- printf("# Toplevel Module Dependency\n");
- clear_printflags();
- output_makefile1(dir, all);
-}
-
// Print out ALL deps for firstdep (Cards, Deps)
void output_card_list(dep *firstdep, int space, int size)
{
@@ -1153,16 +640,14 @@
// Main function
int main(int argc, char *argv[])
{
- int method = METHOD_MAKEFILE;
- int argidx = 1, all = 0;
- char *filename, *dir = NULL;
+ int method = METHOD_ACINCLUDE;
+ int argidx = 1;
+ char *filename;
// Find out which method to use
if (argc < 2)
usage(argv[0]);
- if (strcmp(argv[argidx], "--makefile") == 0)
- method = METHOD_MAKEFILE;
- else if (strcmp(argv[argidx], "--acinclude") == 0)
+ if (strcmp(argv[argidx], "--acinclude") == 0)
method = METHOD_ACINCLUDE;
else if (strcmp(argv[argidx], "--makeconf") == 0)
method = METHOD_MAKECONF;
@@ -1172,24 +657,6 @@
usage(argv[0]);
argidx++;
- if (method == METHOD_MAKEFILE) {
- // Select directory
- if (argc > argidx && strcmp(argv[argidx], "--dir") == 0) {
- if (argc > ++argidx)
- dir = argv[argidx++];
- else
- dir = NULL;
- } else
- dir = NULL;
-
- // Select all dependencies
- if (argc > argidx && strcmp(argv[argidx], "--all") == 0) {
- argidx++;
- all = 1;
- } else
- all = 0;
- }
-
// Check the filename
if (argc > argidx)
filename = argv[argidx++];
@@ -1207,9 +674,6 @@
// Use method
switch (method) {
- case METHOD_MAKEFILE:
- output_makefile(dir, all);
- break;
case METHOD_ACINCLUDE:
output_acinclude();
break;
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog