-# awk script for shlib-versions.v.i -> soversions.i; see Makeconfig.
-
-# Only lines matching `config' (set with -v) are relevant to us.
-config !~ $1 { next }
+# awk script for shlib-versions.v -> soversions.i; see Makeconfig.
# Obey the first matching DEFAULT line.
-$2 == "DEFAULT" {
- if (!matched_default) {
- matched_default = 1;
- $1 = $2 = "";
- default_setname = $0;
- }
+$1 == "DEFAULT" {
+ $1 = "";
+ default_set[++ndefault_set] = $0;
next
}
# Collect all lib lines before emitting anything, so DEFAULT
# can be interspersed.
{
- lib = number = $2;
+ lib = number = $1;
sub(/=.*$/, "", lib);
sub(/^.*=/, "", number);
if (lib in numbers) next;
numbers[lib] = number;
- if (NF > 2) {
- $1 = $2 = "";
+ order[lib] = ++order_n;
+ if (NF > 1) {
+ $1 = "";
versions[lib] = $0
}
}
END {
for (lib in numbers) {
- set = (lib in versions) ? versions[lib] : default_setname;
- if (set)
- print lib, numbers[lib], set;
- else
- print lib, numbers[lib];
+ if (lib in versions)
+ set = versions[lib];
+ else {
+ set = "";
+ if (ndefault_set >= 1)
+ set = default_set[1];
+ }
+ line = set ? (lib FS numbers[lib] FS set) : (lib FS numbers[lib]);
+ if (!(lib in lineorder) || order[lib] < lineorder[lib]) {
+ lineorder[lib] = order[lib];
+ lines[lib] = "DEFAULT" FS line;
+ }
+ }
+ for (c in lines) {
+ print lines[c]
}
}