# awk script for soversions.i -> gnu/lib-names.h; see Makeconfig. $1 != "DEFAULT" { multi = 1 } # { lib = $2; version = $3; if ($3 ~ /[^0-9]/) { soname = $3; extra = $3; sub(/\.so.*$/, "", extra); } else { soname = lib ".so." $3; extra = ""; } soname = "\"" soname "\""; lib = toupper(lib); extra = toupper(extra); gsub(/-/, "_", lib); gsub(/-/, "_", extra); macros[$1 FS lib "_SO"] = soname; if (extra) macros[$1 FS extra "_SO"] = soname; } END { print "/* This file is automatically generated."; print " It defines macros to allow user program to find the shared"; print " library files which come as part of GNU libc. */"; print "#ifndef __GNU_LIB_NAMES_H"; print "#define __GNU_LIB_NAMES_H 1"; print ""; pfx = multi ? "# define " : "#define "; for (elt in macros) { split(elt, x); line = sprintf("%-40s%s", pfx x[2], macros[elt]); if (x[1] in lines) lines[x[1]] = lines[x[1]] "\n" line; else lines[x[1]] = line; } if (multi) { # Print these in a fixed order so the result is identical # on both sides of the coin. if (!("WORDSIZE32" in lines)) lines["WORDSIZE32"] = lines["DEFAULT"]; if (!("WORDSIZE64" in lines)) lines["WORDSIZE64"] = lines["DEFAULT"]; print "#include \n"; print "#if __WORDSIZE == 32"; cmd = "LC_ALL=C sort"; print lines["WORDSIZE32"] | cmd; close(cmd); print "#else" cmd = "LC_ALL=C sort"; print lines["WORDSIZE64"] | cmd; close(cmd); print "#endif"; } else { cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd); } print ""; print "#endif /* gnu/lib-names.h */" }