2004-10-20 Roland McGrath <roland@redhat.com>
authorroland <roland>
Thu, 21 Oct 2004 01:29:26 +0000 (01:29 +0000)
committerroland <roland>
Thu, 21 Oct 2004 01:29:26 +0000 (01:29 +0000)
* Makeconfig ($(common-objpfx)soversions.i): Replace shell loop with
use of ...
* scripts/soversions.awk: ... this new file.  Collect lib info and
match any DEFAULT line before emitting anything, so DEFAULT can come
later in the concatenation of shlib-versions files.

scripts/soversions.awk [new file with mode: 0644]

diff --git a/scripts/soversions.awk b/scripts/soversions.awk
new file mode 100644 (file)
index 0000000..6207088
--- /dev/null
@@ -0,0 +1,38 @@
+# 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 }
+
+# Obey the first matching DEFAULT line.
+$2 == "DEFAULT" {
+  if (!matched_default) {
+    matched_default = 1;
+    $1 = $2 = "";
+    default_setname = $0;
+  }
+  next
+}
+
+# Collect all lib lines before emitting anything, so DEFAULT
+# can be interspersed.
+{
+  lib = number = $2;
+  sub(/=.*$/, "", lib);
+  sub(/^.*=/, "", number);
+  if (lib in numbers) next;
+  numbers[lib] = number;
+  if (NF > 2) {
+    $1 = $2 = "";
+    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];
+  }
+}