home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip540.zip / tandem / commacs next >
Text File  |  1997-10-06  |  2KB  |  86 lines

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