commacs
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:2k
源码类别:

压缩解压

开发平台:

MultiPlatform

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