Subversion Repositories Kolibri OS

Rev

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