chmod a-x **/glslnoise.c
[mesa-demos.git] / vms / analyze_map.com
blobd024ffcf90c92f6d171763753dd0670adabf3d8f
1 $! Analyze Map for OpenVMS AXP
2 $!
3 $! Originally found in the distribution of gv
4 $!       http://wwwthep.physik.uni-mainz.de/~plass/gv/
5 $!
6 $! 1-Jul-1999 : modified to be used with $BSS$ & $READONLY sections in the
7 $!              map-file by J. Jansen (joukj@hrem.stm.tudelft.nl)
8 $!
9 $ SET SYMBOL/GENERAL/SCOPE=(NOLOCAL,NOGLOBAL)
10 $ SAY := "WRITE_ SYS$OUTPUT"
11
12 $ IF F$SEARCH("''P1'") .EQS. ""
13 $ THEN
14 $    SAY "  ANALYZE_MAP.COM:  Error, no mapfile provided"
15 $    EXIT_
16 $ ENDIF
17 $ IF "''P2'" .EQS. ""
18 $ THEN
19 $    SAY "  ANALYZE_MAP.COM:  Error, no output file provided"
20 $    EXIT_
21 $ ENDIF
23 $ LINK_TMP  = F$PARSE(P2,,,"DEVICE")+F$PARSE(P2,,,"DIRECTORY")+F$PARSE(P2,,,"NAME")+".TMP"
25 $ SAY "  checking PSECT list in ''P2'"
26 $ OPEN_/READ IN 'P1'
27 $ LOOP_PSECT_SEARCH:
28 $    READ_/END=EOF_PSECT IN REC
29 $ LOOP_PSECT_SEARCH0:
30 $    if F$EXTRACT(0,5,REC) .eqs. "$DATA" .or. F$EXTRACT(0,5,REC) .eqs. -
31        "$BSS$" .or. f$extract(0,10,rec) .eqs. "$READONLY$" then goto do_data
32 $    if F$EXTRACT(0,14,REC) .eqs. "$READONLY_ADDR" then goto do_readonly
33 $    goto LOOP_PSECT_SEARCH
34 $ do_data:
35 $ LAST = ""
36 $ LOOP_PSECT:
37 $    READ_/END=EOF_PSECT IN REC
38 $    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,5,REC) .nes. "$DATA" -
39        .and. F$EXTRACT(0,5,REC) .nes. "$BSS$" .and.  f$extract(0,10,rec) -
40        .nes. "$READONLY$" then goto LOOP_PSECT_SEARCH0
41 $    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,  WRT,NOVEC" .nes. REC
42 $    then 
43 $       J = F$LOCATE(" ",REC)
44 $       S = F$EXTRACT(0,J,REC)
45 $       IF S .EQS. LAST THEN GOTO LOOP_PSECT
46 $       P$_'S= 1
47 $       LAST = S
48 $    endif
49 $    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,NOWRT,NOVEC" .nes. REC
50 $    then 
51 $       J = F$LOCATE(" ",REC)
52 $       S = F$EXTRACT(0,J,REC)
53 $       IF S .EQS. LAST THEN GOTO LOOP_PSECT
54 $       P$_'S= 1
55 $       LAST = S
56 $    endif
57 $    GOTO LOOP_PSECT
58
59 $ do_readonly:
60 $ LAST = ""
61 $ LOOP_PSECT3:
62 $    READ_/END=EOF_PSECT IN REC
63 $    if F$EXTRACT(0,1,REC) .eqs. "-" .or. F$EXTRACT(0,3,REC) .eqs. "NL:" then -
64        goto loop_psect3
65 $    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,14,REC) .nes. -
66        "$READONLY_ADDR" then goto LOOP_PSECT_SEARCH0
67 $    if REC - "OCTA" .nes. REC
68 $    then 
69 $       J = F$LOCATE(" ",REC)
70 $       S = F$EXTRACT(0,J,REC)
71 $       IF S .EQS. LAST THEN GOTO LOOP_PSECT3
72 $       P$_'S= 1
73 $       LAST = S
74 $    endif
75 $    GOTO LOOP_PSECT3
77 $ EOF_PSECT:
78 $    CLOSE_ IN
80 $ SAY "  appending list of UNIVERSAL procedures to ''P2'"
81 $ SEARCH_/NOHIGH/WINDOW=(0,0) 'P1' " R-"/OUT='LINK_TMP
82 $ OPEN_/READ IN 'LINK_TMP
83 $ OPEN_/write OUT 'P2'
84 $ WRITE_ OUT "!"
85 $ WRITE_ OUT "! ### UNIVERSAL procedures and global definitions extracted from ''P1'"
86 $ WRITE_ OUT "!"
87 $ write_ OUT "case_sensitive=YES"
88 $ LOOP_UNIVERSAL:
89 $    READ_/END=EOF_UNIVERSAL IN REC
90 $    J = F$LOCATE(" R-",REC)
91 $    S = F$EXTRACT(J+3,F$length(rec),REC)
92 $    J = F$LOCATE(" ",S)
93 $    S = F$EXTRACT(0,J,S)
94 $    PP$_'S= 1
95 $    IF F$TYPE(P$_'S').EQS.""
96 $    THEN
97 $       WRITE_ OUT "symbol_vector = ("+S+"      = PROCEDURE)"
98 $    ELSE
99 $       WRITE_ OUT "symbol_vector = ("+S+"      = DATA)"
100 $    ENDIF
101 $    GOTO LOOP_UNIVERSAL
102 $ EOF_UNIVERSAL:
103 $    CLOSE_ IN
104 $    CLOSE_ OUT
106 $ SAY "  creating PSECT list in ''P2'"
107 $ OPEN_/READ IN 'P1'
108 $ OPEN_/append OUT 'P2'
109 $ WRITE_ OUT "!"
110 $ WRITE_ OUT "! ### PSECT list extracted from ''P1'"
111 $ WRITE_ OUT "!" 
112 $ LOOP_PSECT_SEARCH1:
113 $    READ_/END=EOF_PSECT1 IN REC
114 $    if F$EXTRACT(0,5,REC) .nes. "$DATA" .and. F$EXTRACT(0,5,REC) .nes. -
115        "$BSS$" .and.  f$extract(0,10,rec) .nes. "$READONLY$" then goto -
116        LOOP_PSECT_SEARCH1
117 $ LAST = ""
118 $ LOOP_PSECT1:
119 $    READ_/END=EOF_PSECT1 IN REC
120 $    if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,5,REC) .nes. "$DATA" -
121        .and. F$EXTRACT(0,5,REC) .nes. "$BSS$" .and.  f$extract(0,10,rec) -
122        .nes. "$READONLY$" then goto LOOP_PSECT_SEARCH1
123 $    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,  WRT,NOVEC" .nes. REC
124 $    then 
125 $       J = F$LOCATE(" ",REC)
126 $       S = F$EXTRACT(0,J,REC)
127 $       IF S .EQS. LAST THEN GOTO LOOP_PSECT1
128 $       IF F$TYPE(PP$_'S').nes."" then WRITE_ OUT "symbol_vector = (" +  S + " = PSECT)"
129 $       P$_'S= 1
130 $       LAST = S
131 $    endif
132 $    if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE,NOWRT,NOVEC" .nes. REC
133 $    then 
134 $       J = F$LOCATE(" ",REC)
135 $       S = F$EXTRACT(0,J,REC)
136 $       IF S .EQS. LAST THEN GOTO LOOP_PSECT1
137 $       IF F$TYPE(PP$_'S').nes."" then WRITE_ OUT "symbol_vector = (" +  S + " = PSECT)"
138 $       P$_'S= 1
139 $       LAST = S
140 $    endif
141 $    GOTO LOOP_PSECT1
143 $ EOF_PSECT1:
144 $    CLOSE_ IN
145 $    CLOSE_ OUT 
146 $    if f$search("''LINK_TMP'") .nes. "" then DELETE_/NOLOG/NOCONFIRM 'LINK_TMP';*
148 $ EXIT_