lib-names.awk 648 B

1234567891011121314151617181920212223242526272829303132
  1. # awk script for soversions.i -> gnu/lib-names.h; see Makeconfig.
  2. #
  3. {
  4. split($1, fields, "=")
  5. lib = fields[1];
  6. soname = version = fields[2];
  7. sub(/^.*=/, "", soname);
  8. sub(/^lib.*\.so\./, "", version);
  9. if ($soname !~ /^lib/) {
  10. extra = soname;
  11. sub(/\.so.*$/, "", extra);
  12. }
  13. else {
  14. extra = "";
  15. }
  16. soname = "\"" soname "\"";
  17. lib = toupper(lib);
  18. extra = toupper(extra);
  19. gsub(/-/, "_", lib);
  20. gsub(/-/, "_", extra);
  21. macros[$1 FS lib "_SO"] = soname;
  22. if (extra)
  23. macros[$1 FS extra "_SO"] = soname;
  24. }
  25. END {
  26. for (elt in macros) {
  27. split(elt, x);
  28. printf("%-40s%s\n", "#define " x[2], macros[elt]);
  29. }
  30. }