1# awk script for shlib-versions.v -> soversions.i; see Makeconfig.
2
3# Obey the first matching DEFAULT line.
4$1 == "DEFAULT" {
5  $1 = "";
6  default_set[++ndefault_set] = $0;
7  next
8}
9
10# Collect all lib lines before emitting anything, so DEFAULT
11# can be interspersed.
12{
13  lib = number = $1;
14  sub(/=.*$/, "", lib);
15  sub(/^.*=/, "", number);
16  if (lib in numbers) next;
17  numbers[lib] = number;
18  order[lib] = ++order_n;
19  if (NF > 1) {
20    $1 = "";
21    versions[lib] = $0
22  }
23}
24
25END {
26  for (lib in numbers) {
27    if (lib in versions)
28      set = versions[lib];
29    else {
30      set = "";
31      if (ndefault_set >= 1)
32	set = default_set[1];
33    }
34    line = set ? (lib FS numbers[lib] FS set) : (lib FS numbers[lib]);
35    if (!(lib in lineorder) || order[lib] < lineorder[lib]) {
36      lineorder[lib] = order[lib];
37      lines[lib] = "DEFAULT" FS line;
38    }
39  }
40  for (c in lines) {
41    print lines[c]
42  }
43}
44