# Generate a header file that defines the MODULE_* macros for each library and # module we build in glibc. The library names are pulled in from soversions.i # and the additional modules are passed in the BUILDLIST variable. BEGIN { # BUILDLIST is set from the build-list variable in Makeconfig and is a space # separated list of non-library modules that we build in glibc. num = split (buildlist, libs, " ") # Separate the built modules from the libraries. libs[++num] = "LIBS_BEGIN" } # Skip over comments. $1 == "#" { next } # We have only one special case in soversions.i parsing, which is to replace ld # with rtld since that's what we call it throughout the sources. match (FILENAME, ".*soversions.i") { name = $2 if (name == "ld") name = "rtld" # Library names are not duplicated in soversions.i. libs[++num] = name } # Finally, print out the header file. END { printf ("/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT. */\n\n") for (l in libs) { printf ("#define MODULE_%s %d\n", libs[l], l) } }