Blame scripts/lib-names.awk

Packit 6c4009
# awk script for soversions.i -> gnu/lib-names.h; see Makeconfig.
Packit 6c4009
Packit 6c4009
#
Packit 6c4009
{
Packit 6c4009
  split($1, fields, "=")
Packit 6c4009
  lib = fields[1];
Packit 6c4009
  soname = version = fields[2];
Packit 6c4009
  sub(/^.*=/, "", soname);
Packit 6c4009
  sub(/^lib.*\.so\./, "", version);
Packit 6c4009
  if ($soname !~ /^lib/) {
Packit 6c4009
    extra = soname;
Packit 6c4009
    sub(/\.so.*$/, "", extra);
Packit 6c4009
  }
Packit 6c4009
  else {
Packit 6c4009
    extra = "";
Packit 6c4009
  }
Packit 6c4009
  soname = "\"" soname "\"";
Packit 6c4009
  lib = toupper(lib);
Packit 6c4009
  extra = toupper(extra);
Packit 6c4009
  gsub(/-/, "_", lib);
Packit 6c4009
  gsub(/-/, "_", extra);
Packit 6c4009
  macros[$1 FS lib "_SO"] = soname;
Packit 6c4009
  if (extra)
Packit 6c4009
    macros[$1 FS extra "_SO"] = soname;
Packit 6c4009
}
Packit 6c4009
Packit 6c4009
END {
Packit 6c4009
  for (elt in macros) {
Packit 6c4009
    split(elt, x);
Packit 6c4009
    printf("%-40s%s\n", "#define " x[2], macros[elt]);
Packit 6c4009
  }
Packit 6c4009
}