mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-26 20:51:11 +00:00
35 lines
1.0 KiB
Awk
35 lines
1.0 KiB
Awk
|
# 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)
|
||
|
}
|
||
|
}
|