# Script to generate <abi-versions.h> header file from Versions.all list.
# See include/shlib-compat.h comments for explanation.

BEGIN {
  print "/* This file is automatically generated by abi-versions.awk.";
  print "   It defines symbols used by shlib-compat.h, which see.  */";
  print "\n#ifndef _ABI_VERSIONS_H\n#define _ABI_VERSIONS_H";
}

NF == 2 && $2 == "{" {
  thislib = $1;
  gsub(/[^A-Za-z0-9_ 	]/, "_"); libid = $1;
  printf "\n/* start %s */\n", thislib;
  n = 0;
  start = 0;
  next;
}
$1 == "}" {
  printf "/* end %s */\n", thislib;
  next;
}

$2 == "=" {
  old = $1; new = $3;
  gsub(/[^A-Za-z0-9_ 	]/, "_");
  oldid = $1; newid = $3;

  printf "#define ABI_%s_%s\tABI_%s_%s\n", libid, oldid, libid, newid;
  printf "#define VERSION_%s_%s\t%s\n", libid, oldid, new;

  next;
}

{
  vers = $1;
  gsub(/[^A-Za-z0-9_ 	]/, "_");
  versid = $1;

  printf "#define ABI_%s_%s\t%d\t/* support %s */\n", libid, versid, ++n, vers;
  printf "#define VERSION_%s_%s\t%s\n", libid, versid, vers;
  next;
}

END {
  print "\n#endif /* abi-versions.h */";
}
