Indentation fix, cleanup.
[AROS.git] / arch / all-pc / boot / grub2-aros / grub-core / genmoddep.awk
blob2f32465c4094f82f10bd3829d38a649469f303df
1 #! /usr/bin/awk -f
3 # Copyright (C) 2006 Free Software Foundation, Inc.
5 # This genmoddep.awk is free software; the author
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
14 # Read symbols' info from stdin.
15 BEGIN {
16 error = 0
20 if ($1 == "defined") {
21 symtab[$3] = $2;
22 modtab[$2] = "" modtab[$2]
23 } else if ($1 == "undefined") {
24 if ($3 in symtab)
25 modtab[$2] = modtab[$2] " " symtab[$3];
26 else if ($3 != "__gnu_local_gp" && $3 != "_gp_disp") {
27 printf "%s in %s is not defined\n", $3, $2 >"/dev/stderr";
28 error++;
31 else {
32 printf "error: %u: unrecognized input format\n", NR;
33 error++;
37 # Output the result.
38 END {
39 if (error >= 1)
40 exit 1;
42 for (mod in modtab) {
43 # Remove duplications.
44 split(modtab[mod], depmods, " ");
45 for (depmod in uniqmods) {
46 delete uniqmods[depmod];
48 for (i in depmods) {
49 depmod = depmods[i];
50 # Ignore kernel, as always loaded.
51 if (depmod != "kernel" && depmod != mod)
52 uniqmods[depmod] = 1;
54 modlist = ""
55 for (depmod in uniqmods) {
56 modlist = modlist " " depmod;
58 if (mod == "all_video") {
59 continue;
61 printf "%s:%s\n", mod, modlist;
63 modlist = ""
64 while (getline <"video.lst") {
65 modlist = modlist " " $1;
67 printf "all_video:%s\n", modlist;