|  | # 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) | 
|  | } | 
|  | } |