1# Generate the VMS crtl map 2# Copyright (C) 2011-2015 Free Software Foundation, Inc. 3 4BEGIN { 5 is_first = 1; 6 maxlen=1; 7 maxlen_name="??" 8 prev="" 9 ORS="" 10} 11 12# Remove comment and blank lines. 13/^ *#/ || /^ *$/ { 14 next; 15} 16 17{ 18 # Handle comma 19 if (!is_first) 20 print ",\n" 21 else 22 is_first = 0; 23 24 # Check the map is sorted 25 if ($0 <= prev) 26 { 27 print "Map not sorted!! (with name " $0 ")\n" 28 exit 1 29 } 30 prev = $0 31 32 # Compute the max of the identifier len. 33 l=length($1) 34 if (l > maxlen) 35 { 36 maxlen = l 37 maxlen_name = $1 38 } 39 40 print "{ \"" $1 "\", " 41 if (NF == 1) 42 print "0 }" 43 else 44 { 45 printf "VMS_CRTL_" $2 46 for (i = 3; i <= NF; i++) 47 printf " | VMS_CRTL_" $i 48 printf " }" 49 } 50} 51 52END { 53 print "\n\n" 54 print "#define VMS_CRTL_MAXLEN " maxlen " /*" maxlen_name " */\n" 55} 56