Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6725 | siemargl | 1 | ?section CC ROUTINE |
2 | #FRAME |
||
3 | [#PUSH file stem src obj htime file prev time stime otime |
||
4 | comp out options sup buf col locn group |
||
5 | ] |
||
6 | |||
7 | [#IF [#ARGUMENT /VALUE file/ WORD /SPACE/ END]] |
||
8 | [#IF [#EMPTYV file] |THEN| |
||
9 | #OUTPUT Syntax: CC |
||
10 | #RESET FRAMES |
||
11 | #RETURN |
||
12 | ] |
||
13 | |||
14 | [#IF NOT [#FILEINFO /EXISTENCE/ [file]] |
||
15 | |THEN| |
||
16 | #OUTPUT [file] does not exist ! |
||
17 | #RESET FRAMES |
||
18 | #RETURN |
||
19 | ] |
||
20 | |||
21 | #PUSH #DEFAULTS vol subvol |
||
22 | #SETMANY vol subvol src, [#FILEINFO /VOLUME, SUBVOL, FILE/ [file]] |
||
23 | VOLUME [vol].[subvol] |
||
24 | |||
25 | #SETV stem file |
||
26 | #CHARDEL stem [#CHARCOUNT stem] |
||
27 | #SET obj [stem]O |
||
28 | #SETV stem src |
||
29 | #CHARDEL stem [#CHARCOUNT stem] |
||
30 | |||
31 | [#IF [#ARGUMENT /VALUE out/ DEVICE END]] |
||
32 | [#IF [#EMPTYV out] |THEN| #SET out $T.#C] |
||
33 | |||
34 | #SETMANY col group, [#FILEINFO /VOLUME, SUBVOL/ [out]] |
||
35 | #SET locn [group].[stem] |
||
36 | #SET sup [#LOOKUPPROCESS /ANCESTOR/ [col]] |
||
37 | |||
38 | #SET options [#REST] |
||
39 | |||
40 | == Find newest Header file |
||
41 | #SET htime 0 |
||
42 | #SET file [#FILENAMES /MAXIMUM 1/ *H] |
||
43 | [#LOOP |WHILE| NOT [#EMPTYV file] |
||
44 | |DO| |
||
45 | #SET time [#FILEINFO /MODIFICATION/ [file]] |
||
46 | [#IF time > htime |THEN| #SETV htime time] |
||
47 | |||
48 | #SETV prev file |
||
49 | #SET file [#FILENAMES /MAXIMUM 1, PREVIOUS [prev]/ *H] |
||
50 | ] |
||
51 | |||
52 | #SET stime [#FILEINFO /MODIFICATION/ [src]] |
||
53 | #SET otime [#FILEINFO /MODIFICATION/ [obj]] |
||
54 | |||
55 | #SET comp 0 |
||
56 | |||
57 | [#IF otime < htime |
||
58 | |THEN| |
||
59 | #OUTPUT Header file(s) changed since object [obj] compiled |
||
60 | #SET comp -1 |
||
61 | ] |
||
62 | |||
63 | [#IF otime < stime |
||
64 | |THEN| |
||
65 | #OUTPUT Source file [src] changed since object [obj] compiled |
||
66 | #SET comp -1 |
||
67 | ] |
||
68 | |||
69 | [#IF comp |
||
70 | |THEN| |
||
71 | SPOOLCOM /OUTV buf/ OPEN [sup];JOB (OWNER, LOC [locn]),STATUS,DELETE ! |
||
72 | #SET buf |
||
73 | #OUTPUT Compiling [src]... [options] |
||
74 | C /IN [src], OUT [out].[stem]/[obj];SYMBOLS,HIGHPIN [options] |
||
75 | [#CASE [tacl^completioncode] |
||
76 | | 0 | |
||
77 | #OUTPUT Compiled OK: [src] |
||
78 | SPOOLCOM /OUTV buf/ OPEN [sup];JOB (OWNER, LOC [locn]),STATUS,DELETE ! |
||
79 | #SET _completion:completioncode 0 |
||
80 | | 1 | |
||
81 | #OUTPUT [src]: Compile Warnings |
||
82 | SPOOLCOM /OUTV buf/ OPEN [sup];JOB (OWNER, LOC [locn]),STATUS |
||
83 | #OUTPUTV buf |
||
84 | |OTHERWISE| |
||
85 | #OUTPUT [src]: Compile FAILED ! |
||
86 | SPOOLCOM /OUTV buf/ OPEN [sup];JOB (OWNER, LOC [locn]),STATUS |
||
87 | #OUTPUTV buf |
||
88 | ] |
||
89 | |ELSE| |
||
90 | #OUTPUT Object file [obj] is up to date |
||
91 | #SET _completion:completioncode 0 |
||
92 | ] |
||
93 | |||
94 | #UNFRAME>> |