File: make-crtlmap.awk

package info (click to toggle)
gcc-arm-none-eabi 15%3A8-2019-q3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 571,828 kB
  • sloc: ansic: 2,937,651; cpp: 881,644; ada: 597,189; makefile: 65,528; asm: 56,499; xml: 46,621; exp: 24,747; sh: 19,684; python: 7,256; pascal: 4,370; awk: 3,497; perl: 2,695; yacc: 316; ml: 285; f90: 234; lex: 198; objc: 194; haskell: 119
file content (55 lines) | stat: -rw-r--r-- 891 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Generate the VMS crtl map
#	Copyright (C) 2011-2018 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"
}