home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / old / ckermit4f / ckvker.com < prev    next >
Text File  |  2020-01-01  |  7KB  |  202 lines

  1. $    SAVE_VERIFY = 'F$VERIFY(0) + F$VERIFY(0'CKVKER_VERIFY' .GT. 0)
  2. $!    ON CONTROL_Y THEN GOTO ABNORMAL_EXIT
  3. $    ON WARNING THEN GOTO ABNORMAL_EXIT
  4. $!
  5. $    delete = "delete"
  6. $    tmp = f$envirement("procedure")
  7. $    ckv_proc_loc =    f$parse(tmp,,,"DEVICE") + -
  8.             f$parse(tmp,,,"DIRECTORY")
  9. $    if p1 .nes. "BATCH" then goto interactive
  10. $    f = f$search("''ckv_proc_loc'CKVKER.COM")
  11. $    if f .eqs. "" then goto interactive
  12. $    name =     f$parse(f,,,"name")
  13. $    log_file = F$PARSE(name + ".LOG")
  14. $    com_file = ckv_proc_loc + name + ".COM"
  15. $    submit/keep/noprint/log='log_file' -
  16. 'com_file'/para=("''f$environment("default")'","''p2'","''p3'","''p4'","''p5'","''p6'","''p7'","''p8'")
  17. $    write sys$output "Submitting file ''com_file'"
  18. $    exit
  19. $interactive:
  20. $    if f$mode() .nes. "BATCH" then goto no_batch
  21. $! running in batch
  22. $    if p1 .eqs. "" then exit
  23. $    set def 'p1'
  24. $no_batch:
  25. $!
  26. $    define/nolog cms$lib dua2:[ckermit.cms]
  27. $    define/nolog c$include sys$disk:[],dua2:[ckermit.ref]
  28. $    ckv_build_class == "V1"
  29. $    vms_version = f$edit(f$getsyi("version"),"COMPRESS")
  30. $    vms_version = "VMS_V" + f$extract(1,1,vms_version) + f$extract(3,1,vms_version)
  31. $    objlib = "wermit"
  32. $    alternate = ""
  33. $    vckd_disk = "dua1:"
  34. $    vckd_library = "''vckd_disk'[sys0.syslib]"
  35. $    vckd_vaxc = "''vckd_disk'[sys0.sysexe]vaxc.exe"
  36. $    vckd_linker = "''vckd_disk'[sys0.sysexe]linker.exe"
  37. $!
  38. $    if p3 .nes. "ALTERNATE" then goto no_alternate_build
  39. $    alternate = "_v4"
  40. $    vms_version = "VMS_V46"
  41. $    define vaxc 'vckd_vaxc'
  42. $    define linker 'vckd_linker'
  43. $    define sys$library 'vckd_library'
  44. $    objlib = objlib + alternate
  45. $no_alternate_build:
  46. $    if vms_version .eqs. "VMS_V41" then vms_version = "VMS_V40"
  47. $    if vms_version .eqs. "VMS_V43" then vms_version = "VMS_V42"
  48. $    if vms_version .eqs. "VMS_V45" then vms_version = "VMS_V44"
  49. $    if vms_version .eqs. "VMS_V47" then vms_version = "VMS_V46"
  50. $    if vms_version .eqs. "VMS_V51" then vms_version = "VMS_V50"
  51. $!
  52. $! Define command to be used in conditionally compiling C sources.
  53. $!
  54. $    IF "''CCMAKE'" .EQS. "" THEN CCMAKE = "@''ckv_proc_loc'CKVMAK.COM"
  55. $!
  56. $! Determine which version of the C compiler is being used,
  57. $! and define version-specific stuff.
  58. $!
  59. $    CC_VER_OPTS = "/DEFINE=(""DEBUG"",""TLOG"",""VAXC030"",""''VMS_VERSION'"")"    !V3 options
  60. $    C_LIBRARY = "SYS$LIBRARY:VAXCRTL.OLB"        !V3 lib
  61. $    IF F$SEARCH("SYS$LIBRARY:VAXCPAR.OLB") .NES. "" THEN GOTO FOUND_LIB
  62. $!
  63. $    CC_VER_OPTS = "/DEFINE=(""DEBUG"",""TLOG"",""''VMS_VERSION'"")"    !V2 options
  64. $    C_LIBRARY = "SYS$LIBRARY:VAXCRTL.OLB"        !V2 lib
  65. $    IF F$SEARCH(C_LIBRARY) .NES. "" THEN GOTO FOUND_LIB
  66. $!
  67. $    CC_VER_OPTS = ""                !V1 options
  68. $    C_LIBRARY = "SYS$LIBRARY:CRTLIB.OLB"        !V1 lib
  69. $    IF F$SEARCH(C_LIBRARY) .NES. "" THEN GOTO FOUND_LIB
  70. $!
  71. $    WRITE SYS$OUTPUT "Unable to locate C Run-Time Library."
  72. $    GOTO ABNORMAL_EXIT
  73. $FOUND_LIB:
  74. $    WRITE SYS$OUTPUT "Using ",C_LIBRARY," as the C Run-Time Library."
  75. $!
  76. $! Define CC options to be used, if not explicitly supplied.
  77. $!
  78. $    IF f$type(CC_OPTIONS) .EQS. "" -
  79.       THEN CC_OPTIONS = "/DEBUG=TRACE/OPTIMIZE/NOLIST" + CC_VER_OPTS
  80. $    if f$type(cc_options) .nes. "" -
  81.       then cc_options = f$edit(cc_options,"upcase")
  82. $    WRITE SYS$OUTPUT "Using CC options of ",CC_OPTIONS,"."
  83. $!
  84. $    CCMAKE CKCFN2.C "" 'CC_OPTIONS' 'objlib'
  85. $    CCMAKE CKCFNS.C "" 'CC_OPTIONS' 'objlib'
  86. $    CCMAKE CKCMAI.C "" 'CC_OPTIONS' 'objlib'
  87. $!
  88. $    ckv_wart_present = (f$search("ckcpro.w") .nes. "")
  89. $    if .not. ckv_wart_present then -
  90.         cms fet/nohist/nolog ckcpro.w/gen='ckv_build_class' ""
  91. $    IF F$SEARCH("CKWART''alternate'.EXE") .EQS. ""    THEN GOTO DO_WART
  92. $!    IF F$SEARCH("CKCPRO.C") .EQS. ""    THEN GOTO DO_WART
  93. $!    IF F$SEARCH("CKCPRO.OBJ") .EQS. ""    THEN GOTO DO_WART
  94. $    if f$search("ckwart''alternate'.olb") .eqs. "" then -
  95.         libr/cre/obj ckwart'alternate'.olb
  96. $!    library/ext=ckcpro/output=ckcpro.obj ckwart'alternate'
  97. $!    SRC_TIME = F$FILE_ATTRIBUTES("CKCPRO.W", "CDT") ! get creation time
  98. $!    OUT_TIME = F$FILE_ATTRIBUTES("CKCPRO.OBJ", "CDT") ! for both files.
  99. $!    IF F$CVTIME(SRC_TIME) .GES. F$CVTIME(OUT_TIME) THEN GOTO DO_WART
  100. $    @'ckv_proc_loc'ckvcdt ckcpro.w 'objlib' ckv$flag
  101. $    if ckv$flag then goto do_wart
  102. $!    delete ckcpro.obj;
  103. $    WRITE SYS$OUTPUT "CKCPRO.OBJ", " is up to date."
  104. $    GOTO DONE_WART
  105. $DO_WART:
  106. $    IF F$SEARCH("CKWART''alternate'.EXE") .NES. "" THEN GOTO GOT_WART
  107. $    CCMAKE CKWART.C "" 'CC_OPTIONS' ckwart'alternate'
  108. $    WRITE SYS$OUTPUT "Linking WART..."
  109. $    LINK/EXECUTABLE=CKWART'alternate'/MAP=ckwart'alternate' -
  110.       ckwart'alternate'/lib/include=(CKWART),'C_LIBRARY'/LIBRARY
  111. $GOT_WART:
  112. $    WRITE SYS$OUTPUT "Executing WART..."
  113. $    WART = "$SYS$DISK:[]CKWART''alternate'"
  114. $    WART CKCPRO.W CKCPRO.C
  115. $    CCMAKE CKCPRO.C "" 'CC_OPTIONS' 'objlib'
  116. $    if .NOT. ckv_wart_present .and. f$search("ckcpro.w") .nes. "" then -
  117.         delete ckcpro.w;*
  118. $!    delete ckcpro.c;*
  119. $DONE_WART:
  120. $!
  121. $    CCMAKE CKUCMD.C "" 'CC_OPTIONS' 'objlib'
  122. $    CCMAKE CKUDIA.C "" 'CC_OPTIONS' 'objlib'
  123. $    CCMAKE CKUSCR.C "" 'CC_OPTIONS' 'objlib'
  124. $    CCMAKE CKUUS2.C "" 'CC_OPTIONS' 'objlib'
  125. $    CCMAKE CKUUS3.C "" 'CC_OPTIONS' 'objlib'
  126. $    CCMAKE CKUUSR.C "" 'CC_OPTIONS' 'objlib'
  127. $    CCMAKE CKVCON.C "" 'CC_OPTIONS' 'objlib'
  128. $    CCMAKE CKVFIO.C "" 'CC_OPTIONS' 'objlib'
  129. $    CCMAKE CKVTIO.C "" 'CC_OPTIONS' 'objlib'
  130. $    WRITE SYS$OUTPUT "Linking WERMIT..."
  131. $    LINK'p2'/MAP=wermit'alternate'/sym/EXECUTABLE=WERMIT'alternate' -
  132.       'objlib'/library/include=(CKCFN2,CKCFNS,CKCMAI,CKCPRO,CKUCMD,CKUDIA, -
  133.       CKUSCR,CKUUS2,CKUUS3,CKUUSR,CKVCON,CKVFIO,CKVTIO), -
  134.       'C_LIBRARY'/LIBRARY
  135. $    GOTO NORMAL_EXIT
  136. $!
  137. $! Abnormal exit.
  138. $!
  139. $ABNORMAL_EXIT:
  140. $    STATUS = $STATUS            !save failure status
  141. $    IF STATUS THEN STATUS = "%X08000002"    !force error if neccessary
  142. $    GOTO EXIT
  143. $!
  144. $! Normal exit.
  145. $!
  146. $NORMAL_EXIT:
  147. $    STATUS = $STATUS            !save success status
  148. $!
  149. $! Exit.
  150. $!
  151. $EXIT:
  152. $    deas cms$lib
  153. $    if f$trnlnm("sys$library","lnm$process") .nes. "" then deassign sys$library
  154. $    if f$trnlnm("linker","lnm$process") .nes. "" then deassign linker
  155. $    if f$trnlnm("vaxc","lnm$process") .nes. "" then deassign vaxc
  156. $    EXIT ('STATUS' .OR. %X10000000) + F$VERIFY(SAVE_VERIFY) * 0
  157. $!
  158. $! CKVKER.COM    1.0 (003) 12-Feb-1989
  159. $!
  160. $! Build Kermit modules.
  161. $!
  162. $! Note: this command file implements a very limited "make" capability.
  163. $! If you change ckwart.c, you must delete ckwart.exe
  164. $! If you change any header files, you must delete all .obj files.
  165. $!
  166. $! IF YOU HAVE TROUBLE COMPILING OR RUNNING SOME OF THE GENERATED CODE,
  167. $! TRY COMPILING WITHOUT OPTIMIZATION.
  168. $!
  169. $! input:
  170. $!    CKVKER_VERIFY    If defined and positive, causes verification
  171. $!            of this command file.
  172. $!    CC_OPTIONS    Optional list of qualifiers for use when compiling
  173. $!            (e.g., "/list/debug=all", "/define=xxx", etc.).
  174. $!            Remember to enclose symbol names, etc. in quotes
  175. $!            so that DCL won't convert them to uppercase.
  176. $!
  177. $!    @ckvker    [batch] [link_qual] [alternate]
  178. $!
  179. $!    @ckvker    "BATCH" "/DEBUG" "ALTERNATE"
  180. $!        Will build wermit in batch, with the image linked
  181. $!        with the debugger for V4
  182. $!
  183. $!    @ckvker    "BATCH"
  184. $!        Will build wermit in batch without the debugger
  185. $!        for current version.
  186. $!
  187. $! Modifications:
  188. $!
  189. $!    12-Feb-89    Add C V3 support.
  190. $!                MAB
  191. $!
  192. $!    25-Jun-85    Allow external specification of CC options, and
  193. $!            provide some defaults.
  194. $!                            -- Dan Schullman
  195. $!
  196. $!    24-Jun-85    Automatically determine C Run-Time library to use.
  197. $!            Save and restore verification, and exit on errors.
  198. $!            Display additional "progress" information.
  199. $!            Avoid use of LNK$LIBRARY in case user had it defined.
  200. $!            Use CCMAKE to compile CKCPRO and CKWART.
  201. $!                            -- Dan Schullman
  202.