home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 349_01 / sss.arc / SSSGO.BAT < prev    next >
Encoding:
DOS Batch File  |  1991-04-15  |  6.5 KB  |  254 lines

  1. echo off
  2. goto start
  3. rem                            SSSGO.BAT
  4. rem         Batch file to run simulation for Microsoft languages
  5. rem
  6. rem                     Author: M. A. Pollatschek
  7. rem
  8. rem                         IMPORTANT NOTE
  9. rem
  10. rem THIS PROCEDURE,  ITS USE,  OPERATION  AND SUPPORT  IS PROVIDED  "AS  IS"
  11. rem WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,BUT
  12. rem NOT LIMITED TO,  THE IMPLIED WARRANTIES  OF MERCHANTABILITY AND  FITNESS
  13. rem FOR A  PARTICULAR  PURPOSE.   THE  ENTIRE RISK  AS  TO THE  QUALITY  AND
  14. rem PERFORMANCE OF  THIS  PROGRAM IS  WITH  THE USER.    IN NO  EVENT  SHALL
  15. rem THE AUTHOR AND/OR THE PUBLISHER  BE  LIABLE  FOR ANY  DAMAGES INCLUDING,
  16. rem WITHOUT LIMITATION,  ANY  LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL
  17. rem OR CONSEQUENTIAL  DAMAGES  ARISING  THE  USE  OR  INABILITY  TO USE SUCH
  18. rem PROGRAM,  EVEN  IF  THE AUTHOR AND/OR THE PUBLISHER  BEEN ADVISED OF THE
  19. rem POSSIBILITY  OF SUCH  DAMAGES  OR  FOR  ANY  CLAIM  BY  ANY OTHER PARTY.
  20. :assume
  21. echo                           Assumptions:
  22. echo  
  23. echo * Running from hard disk
  24. echo * CHECKING.EXE, DOT_IN.EXE, %2.* and SSSM.LIB are on current directory
  25. echo   (* = BAS or C or FOR or PAS according to %1)
  26. echo * Language libraries (including LLIBCE.LIB) is on current directory or on
  27. echo   directory written after LIB= in the environment table
  28. echo * The compiler and LINK.EXE are either in the current directory or
  29. echo   on directory written after PATH= in the environment table
  30. echo  
  31. echo                            Remarks:
  32. echo  
  33. echo * LLIBCE.LIB can be constructed from QuickC package from Microsoft,
  34. echo   follow the instruction of Microsoft documentation.  You do NEED
  35. echo   QuickC even if you do not use it otherwise
  36. echo * Should LINK for FORTRAN report errors, try to change order of
  37. echo   libraries: SSS+LLIBFORE+LLIBCE. Note that original LLIBFORE.LIB of
  38. echo   versions 4.00 and 4.01 MUST BE upgraded - see details in QuickC package
  39. echo * The environment table can be seen if you type SET from DOS
  40. goto end
  41. :usage
  42. echo Usage: SSSGO language program
  43. echo  
  44. echo Where language   is one of B C F P QB QC (must be UPPERCASE!)
  45. echo       program    is program base name WITHOUT extension (like EX_0201)
  46. goto end
  47. :start
  48. if "%1" == "" goto usage
  49. if "%2" == "" goto usage
  50. echo Checking files...
  51. if exist CHECKING.EXE goto libch2
  52. echo SSSGO: CHECKING.EXE is needed in current directory. Please, copy it.
  53. echo  
  54. goto assume
  55. :libch2
  56. if exist DOT_IN.EXE goto libch3
  57. echo SSSGO: DOT_IN.EXE is needed in current directory. Please, copy it.
  58. echo  
  59. goto assume
  60. :libch3
  61. if exist LLIBCE.LIB goto lnkchk
  62. Checking LLIBCE.LIB in LIB
  63. if not errorlevel 1 goto lnkchk
  64. echo SSSGO: LLIBCE.LIB is not found.
  65. echo  
  66. goto assume
  67. :lnkchk
  68. if exist LINK.EXE goto extch
  69. Checking LINK.EXE in PATH
  70. if not errorlevel 1 goto extch
  71. echo SSSGO: LINK.EXE is not found.
  72. echo  
  73. goto assume
  74. :extch
  75. dot_in %2
  76. if not errorlevel 1 goto sssch
  77. echo SSSGO: %2 has an extension - it should not
  78. echo  
  79. goto usage
  80. :sssch
  81. if exist SSSM.LIB goto lang
  82. echo SSSGO: SSSM.LIB is not found on current directory
  83. echo  
  84. echo If you have not build it, please do with SSSLIB.BAT
  85. goto end
  86. :lang
  87. if %1 == QC goto qclang
  88. if %1 == QB goto qblang
  89. if %1 == B goto oklangb
  90. if %1 == C goto oklangc
  91. if %1 == F goto oklangf
  92. if %1 == P goto oklangp
  93. echo SSSGO: first argument is wrong or not uppercase
  94. echo  
  95. goto usage
  96. :qclang
  97. if exist QCL.EXE goto qcl1
  98. Checking QCL.EXE in PATH
  99. if not errorlevel 1 goto qcl1
  100. echo SSSGO: QCL.EXE is not found
  101. echo  
  102. goto assume
  103. :qcl1
  104. if exist %2.C goto qcl2
  105. echo SSSGO: %2.C is not found on current directory
  106. goto end
  107. :qcl2
  108. echo on
  109. QCL -c -AL %2.C
  110. echo off
  111. echo Going to link. You may abort with Control-C.
  112. pause
  113. if errorlevel 1 goto nearend
  114. echo on
  115. LINK /NOE %2,,NUL,SSSM+LLIBCE;
  116. echo off
  117. goto tryrun
  118. :qblang
  119. if exist BC.EXE goto bc1
  120. Checking BC.EXE in PATH
  121. if not errorlevel 1 goto bc1
  122. echo SSSGO: BC.EXE is not found
  123. echo  
  124. goto assume
  125. :bc1
  126. if exist %2.BAS goto bc2
  127. echo SSSGO: %2.BAS is not found on current directory
  128. goto end
  129. :bc2
  130. echo on
  131. BC %2/E/X/O/T/C:512;
  132. echo off
  133. echo Going to link. You may abort with Control-C.
  134. pause
  135. if errorlevel 1 goto nearend
  136. if exist BCOM45.LIB goto bc3
  137. Checking BCOM45.LIB in LIB
  138. if not errorlevel 1 goto bc3
  139. echo SSSGO: BCOM45.LIB cannot be found
  140. echo  
  141. goto assume
  142. :bc3
  143. echo on
  144. LINK /EX/NOE %2,,NUL,BCOM45+SSSM+LLIBCE;
  145. echo off
  146. goto tryrun
  147. :oklangb
  148. if exist BL.EXE goto bl1
  149. Checking BL.EXE in PATH
  150. if not errorlevel 1 goto bl1
  151. echo SSSGO: BL.EXE is not found
  152. echo  
  153. goto assume
  154. :bl1
  155. if exist %2.BAS goto bl2
  156. echo SSSGO: %2.BAS is not found on current directory
  157. goto end
  158. :bl2
  159. echo on
  160. BL -c -AL %2.BAS
  161. echo off
  162. echo Going to link. You may abort with Control-C.
  163. pause
  164. if errorlevel 1 goto nearend
  165. echo on
  166. LINK /NOE %2,,NUL,SSSM+LLIBCE;
  167. echo off
  168. goto tryrun
  169. :oklangc
  170. if exist CL.EXE goto cl1
  171. Checking CL.EXE in PATH
  172. if not errorlevel 1 goto cl1
  173. echo SSSGO: CL.EXE is not found
  174. echo  
  175. goto assume
  176. :cl1
  177. if exist %2.C goto cl2
  178. echo SSSGO: %2.C is not found on current directory
  179. goto end
  180. :cl2
  181. echo on
  182. CL -c -AL %2.C
  183. echo off
  184. echo Going to link. You may abort with Control-C.
  185. pause
  186. if errorlevel 1 goto nearend
  187. echo on
  188. LINK /NOE %2,,NUL,SSSM+LLIBCE;
  189. echo off
  190. goto tryrun
  191. :oklangf
  192. if exist FL.EXE goto fl1
  193. Checking FL.EXE in PATH
  194. if not errorlevel 1 goto fl1
  195. echo SSSGO: FL.EXE is not found
  196. echo  
  197. goto assume
  198. :fl1
  199. if exist %2.FOR goto fl2
  200. echo SSSGO: %2.FOR is not found on current directory
  201. goto end
  202. :fl2
  203. echo on
  204. FL -c -AL -FPi %2.FOR
  205. echo off
  206. echo Going to link. You may abort with Control-C.
  207. pause
  208. if errorlevel 1 goto nearend
  209. if exist LLIBFORE.LIB goto fl3
  210. Checking LLIBFORE.LIB in LIB
  211. if not errorlevel 1 goto fl3
  212. echo SSSGO: LLIBFORE.LIB is not found
  213. echo  
  214. goto assume
  215. :fl3
  216. echo on
  217. LINK /EX/NOE/NOD %2,,NUL,SSSM+LLIBCE+LLIBFORE;
  218. echo off
  219. goto tryrun
  220. :oklangp
  221. echo on
  222. if exist PL.EXE goto pl1
  223. Checking PL.EXE in PATH
  224. if not errorlevel 1 goto pl1
  225. echo SSSGO: PL.EXE is not found
  226. echo  
  227. goto assume
  228. :pl1
  229. if exist %2.PAS goto pl2
  230. echo SSSGO: %2.PAS is not found on current directory
  231. goto end
  232. :pl2
  233. PL -c -AL %2.PAS
  234. echo off
  235. echo Going to link. You may abort with Control-C.
  236. pause
  237. if errorlevel 1 goto nearend
  238. echo on
  239. LINK /NOE %2,,NUL,SSSM+LLIBCE;
  240. echo off
  241. :tryrun
  242. echo Going to run %2. You may abort with Control-C.
  243. pause
  244. if errorlevel 1 goto nearend
  245. echo on
  246. %2
  247. echo off
  248. :nearend
  249. echo Going to erase EXE and OBJ (if exist). You can abort now by Contol-C.
  250. pause
  251. if exist %2.EXE erase %2.EXE
  252. if exist %2.OBJ erase %2.OBJ
  253. :end
  254.