mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 00:24:52 -04:00
56 lines
891 B
Awk
56 lines
891 B
Awk
# Generate the VMS crtl map
|
|
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
|
|
|
BEGIN {
|
|
is_first = 1;
|
|
maxlen=1;
|
|
maxlen_name="??"
|
|
prev=""
|
|
ORS=""
|
|
}
|
|
|
|
# Remove comment and blank lines.
|
|
/^ *#/ || /^ *$/ {
|
|
next;
|
|
}
|
|
|
|
{
|
|
# Handle comma
|
|
if (!is_first)
|
|
print ",\n"
|
|
else
|
|
is_first = 0;
|
|
|
|
# Check the map is sorted
|
|
if ($0 <= prev)
|
|
{
|
|
print "Map not sorted!! (with name " $0 ")\n"
|
|
exit 1
|
|
}
|
|
prev = $0
|
|
|
|
# Compute the max of the identifier len.
|
|
l=length($1)
|
|
if (l > maxlen)
|
|
{
|
|
maxlen = l
|
|
maxlen_name = $1
|
|
}
|
|
|
|
print "{ \"" $1 "\", "
|
|
if (NF == 1)
|
|
print "0 }"
|
|
else
|
|
{
|
|
printf "VMS_CRTL_" $2
|
|
for (i = 3; i <= NF; i++)
|
|
printf " | VMS_CRTL_" $i
|
|
printf " }"
|
|
}
|
|
}
|
|
|
|
END {
|
|
print "\n\n"
|
|
print "#define VMS_CRTL_MAXLEN " maxlen " /*" maxlen_name " */\n"
|
|
}
|