]>
Commit | Line | Data |
---|---|---|
91adb529 | 1 | # awk script for shlib-versions.v -> soversions.i; see Makeconfig. |
6d864d15 | 2 | |
6d864d15 | 3 | # Obey the first matching DEFAULT line. |
ba90e050 JM |
4 | $1 == "DEFAULT" { |
5 | $1 = ""; | |
6 | default_set[++ndefault_set] = $0; | |
6d864d15 RM |
7 | next |
8 | } | |
9 | ||
10 | # Collect all lib lines before emitting anything, so DEFAULT | |
11 | # can be interspersed. | |
12 | { | |
ba90e050 | 13 | lib = number = $1; |
6d864d15 RM |
14 | sub(/=.*$/, "", lib); |
15 | sub(/^.*=/, "", number); | |
ba90e050 JM |
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 | |
6d864d15 RM |
22 | } |
23 | } | |
24 | ||
25 | END { | |
ba90e050 JM |
26 | for (lib in numbers) { |
27 | if (lib in versions) | |
28 | set = versions[lib]; | |
29 | else { | |
af296fcd | 30 | set = ""; |
ba90e050 JM |
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 | } | |
91adb529 RM |
39 | } |
40 | for (c in lines) { | |
41 | print lines[c] | |
6d864d15 RM |
42 | } |
43 | } |