home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c065 / 2.ddi / MATH.ZIP / MATHREPL.BAT < prev    next >
Encoding:
DOS Batch File  |  1990-06-07  |  7.0 KB  |  276 lines

  1. echo off
  2.  
  3. if /%1==/ goto HELP
  4. if /%2==/ goto HELP
  5. if /%3==/ goto HELP
  6. if /%4==/ goto HELP
  7.  
  8. if %1==SMALL    goto modelOK
  9. if %1==small    goto modelOK
  10. if %1==MEDIUM   goto modelOK
  11. if %1==medium   goto modelOK
  12. if %1==COMPACT  goto modelOK
  13. if %1==compact  goto modelOK
  14. if %1==LARGE    goto modelOK
  15. if %1==large    goto modelOK
  16. if %1==HUGE     goto modelOK
  17. if %1==huge     goto modelOK
  18. if %1==ALL      goto modelOK
  19. if %1==all      goto modelOK
  20.  
  21. :HELP
  22. echo 
  23. echo This batch file will recompile the specified module for the
  24. echo selected memory model, and replace the resultant object module
  25. echo in the SMALL, COMPACT, MEDIUM, LARGE, or HUGE library file
  26. echo in the specified library directory.
  27. echo 
  28. echo The "model" parameter specifies which memory model should be used.
  29. echo When ALL is specified, the file is recompiled and replaced for all
  30. echo memory models.
  31. echo 
  32. echo Usage:     mathrepl  model  filename  extension  lib-dir      [TCC switches]
  33. echo 
  34. echo Examples:  mathrepl  ALL    realcvt   cas        \turboc\lib
  35. echo            mathrepl  LARGE  ldexp     cas        \turboc\lib  -N
  36. echo 
  37. echo Note that you should not include the trailing "\" in the destination
  38. echo library directory specification!
  39. echo 
  40. goto DONE
  41.  
  42. :modelOK
  43.  
  44. if %3==asm goto ASMfile
  45. if %3==ASM goto ASMfile
  46.  
  47. if %1==MEDIUM   goto DOmd1
  48. if %1==medium   goto DOmd1
  49. if %1==COMPACT  goto DOcp1
  50. if %1==compact  goto DOcp1
  51. if %1==LARGE    goto DOlg1
  52. if %1==large    goto DOlg1
  53. if %1==HUGE     goto DOhg1
  54. if %1==huge     goto DOhg1
  55.  
  56. :DOsm1
  57. echo *** Compiling SMALL model version ***
  58. tcc -ms -c %5 %6 %7 %8 %9 %2.%3
  59. if errorlevel 1 goto TCerror
  60. tlib /E /0 %4\MATHS -+%2
  61. if errorlevel 1 goto TLerror
  62. if %1==SMALL    goto REMOVE
  63. if %1==small    goto REMOVE
  64.  
  65. :DOmd1
  66. echo *** Compiling MEDIUM model version ***
  67. tcc -mm -c %5 %6 %7 %8 %9 %2.%3
  68. if errorlevel 1 goto TCerror
  69. tlib /E /0 %4\MATHM -+%2
  70. if errorlevel 1 goto TLerror
  71. if %1==MEDIUM   goto REMOVE
  72. if %1==medium   goto REMOVE
  73.  
  74. :DOcp1
  75. echo *** Compiling COMPACT model version ***
  76. tcc -mc -c %5 %6 %7 %8 %9 %2.%3
  77. if errorlevel 1 goto TCerror
  78. tlib /E /0 %4\MATHC -+%2
  79. if errorlevel 1 goto TLerror
  80. if %1==COMPACT  goto REMOVE
  81. if %1==compact  goto REMOVE
  82.  
  83. :DOlg1
  84. echo *** Compiling LARGE model version ***
  85. tcc -ml -c %5 %6 %7 %8 %9 %2.%3
  86. if errorlevel 1 goto TCerror
  87. tlib /E /0 %4\MATHL -+%2
  88. if errorlevel 1 goto TLerror
  89. if %1==LARGE    goto REMOVE
  90. if %1==large    goto REMOVE
  91.  
  92. :DOhg1
  93. echo *** Compiling HUGE model version ***
  94. tcc -mh -c %5 %6 %7 %8 %9 %2.%3
  95. if errorlevel 1 goto TCerror
  96. tlib /E /0 %4\MATHH -+%2
  97. if errorlevel 1 goto TLerror
  98.  
  99. goto REMOVE
  100.  
  101. :ASMfile
  102. if %2==flags87 goto ASMind1
  103. if %2==FLAGS87 goto ASMind1
  104. if %2==ftol    goto ASMind2
  105. if %2==FTOL    goto ASMind2
  106. if %2==emuvars goto ASMdep
  107. if %2==EMUVARS goto ASMdep
  108.  
  109. echo ********************************************************************
  110. echo Error: unknown source file "%2.%3" !!!
  111. echo ********************************************************************
  112. goto DONE
  113.  
  114. :ASMdep
  115. if %1==MEDIUM   goto DOmd2
  116. if %1==medium   goto DOmd2
  117. if %1==COMPACT  goto DOcp2
  118. if %1==compact  goto DOcp2
  119. if %1==LARGE    goto DOlg2
  120. if %1==large    goto DOlg2
  121. if %1==HUGE     goto DOhg2
  122. if %1==huge     goto DOhg2
  123.  
  124. :DOsm2
  125. echo *** Assembling SMALL   model version ***
  126. tasm %2 /D__COMPACT__ /D__BSS__ /E /DLDATA=0 %5 %6 %7 %8 %9
  127. if errorlevel 1 goto ASMerror
  128. tlib /E /0 %4\MATHS -+%2
  129. if errorlevel 1 goto TLerror
  130. if %1==SMALL    goto REMOVE
  131. if %1==small    goto REMOVE
  132.  
  133. :DOmd2
  134. echo *** Assembling MEDIUM  model version ***
  135. tasm %2 /D__COMPACT__ /D__BSS__ /E /DLDATA=0 %5 %6 %7 %8 %9
  136. if errorlevel 1 goto ASMerror
  137. tlib /E /0 %4\MATHM -+%2
  138. if errorlevel 1 goto TLerror
  139. if %1==MEDIUM   goto REMOVE
  140. if %1==medium   goto REMOVE
  141.  
  142. :DOcp2
  143. echo *** Assembling COMPACT model version ***
  144. tasm %2 /D__COMPACT__ /D__BSS__ /E /DLDATA=1 %5 %6 %7 %8 %9
  145. if errorlevel 1 goto ASMerror
  146. tlib /E /0 %4\MATHC -+%2
  147. if errorlevel 1 goto TLerror
  148. if %1==COMPACT  goto REMOVE
  149. if %1==compact  goto REMOVE
  150.  
  151. :DOlg2
  152. echo *** Assembling LARGE   model version ***
  153. tasm %2 /D__COMPACT__ /D__BSS__ /E /DLDATA=1 %5 %6 %7 %8 %9
  154. if errorlevel 1 goto ASMerror
  155. tlib /E /0 %4\MATHL -+%2
  156. if errorlevel 1 goto TLerror
  157. if %1==LARGE    goto REMOVE
  158. if %1==large    goto REMOVE
  159.  
  160. :DOhg2
  161. echo *** Assembling HUGE    model version ***
  162. tasm %2 /D__COMPACT__ /D__BSS__ /E /DLDATA=1 %5 %6 %7 %8 %9
  163. if errorlevel 1 goto ASMerror
  164. tlib /E /0 %4\MATHH -+%2
  165. if errorlevel 1 goto TLerror
  166.  
  167. goto REMOVE
  168.  
  169. :ASMind1
  170. tasm flags87 /i..\include /t /MX /D__COMPACT__ /D__BSS__ %5 %6 %7 %8 %9
  171. goto ASMind
  172.  
  173. :ASMind2
  174. tasm ftol /i..\include /t /MX /D__COMPACT__ /D__BSS__ /DFCall %5 %6 %7 %8 %9, fftol.obj
  175. tasm ftol /i..\include /t /MX /D__COMPACT__ /D__BSS__ /DNCall %5 %6 %7 %8 %9, nftol.obj
  176.  
  177. :ASMind
  178. if errorlevel 1 goto ASMerror
  179.  
  180. if %1==MEDIUM   goto TLmd
  181. if %1==medium   goto TLmd
  182. if %1==COMPACT  goto TLcp
  183. if %1==compact  goto TLcp
  184. if %1==LARGE    goto TLlg
  185. if %1==large    goto TLlg
  186. if %1==HUGE     goto TLhg
  187. if %1==huge     goto TLhg
  188.  
  189. :TLsm
  190. if %2==ftol goto SKIPsm1
  191. if %2==FTOL goto SKIPsm1
  192. tlib /E /0 %4\MATHS -+%2
  193. goto SKIPsm2
  194. :SKIPsm1
  195. tlib /E /0 %4\MATHS -+n%2
  196. tlib /E /0 %4\MATHS -+f%2
  197. :SKIPsm2
  198. if errorlevel 1 goto TLerror
  199. if %1==SMALL    goto REMOVE
  200. if %1==small    goto REMOVE
  201. :TLmd
  202. if %2==ftol goto SKIPmm1
  203. if %2==FTOL goto SKIPmm1
  204. tlib /E /0 %4\MATHM -+%2
  205. goto SKIPmm2
  206. :SKIPmm1
  207. tlib /E /0 %4\MATHM -+n%2
  208. tlib /E /0 %4\MATHM -+f%2
  209. :SKIPmm2
  210. if errorlevel 1 goto TLerror
  211. if %1==MEDIUM   goto REMOVE
  212. if %1==medium   goto REMOVE
  213. :TLcp
  214. if %2==ftol goto SKIPcm1
  215. if %2==FTOL goto SKIPcm1
  216. tlib /E /0 %4\MATHC -+%2
  217. goto SKIPcm2
  218. :SKIPcm1
  219. tlib /E /0 %4\MATHC -+n%2
  220. tlib /E /0 %4\MATHC -+f%2
  221. :SKIPcm2
  222. if errorlevel 1 goto TLerror
  223. if %1==COMPACT  goto REMOVE
  224. if %1==compact  goto REMOVE
  225. :TLlg
  226. if %2==ftol goto SKIPlm1
  227. if %2==FTOL goto SKIPlm1
  228. tlib /E /0 %4\MATHL -+%2
  229. goto SKIPlm2
  230. :SKIPlm1
  231. tlib /E /0 %4\MATHL -+n%2
  232. tlib /E /0 %4\MATHL -+f%2
  233. :SKIPlm2
  234. if errorlevel 1 goto TLerror
  235. if %1==LARGE    goto REMOVE
  236. if %1==large    goto REMOVE
  237. :TLhg
  238. if %2==ftol goto SKIPhm1
  239. if %2==FTOL goto SKIPhm1
  240. tlib /E /0 %4\MATHH -+%2
  241. goto SKIPhm2
  242. :SKIPhm1
  243. tlib /E /0 %4\MATHH -+n%2
  244. tlib /E /0 %4\MATHH -+f%2
  245. :SKIPhm2
  246. if errorlevel 1 goto TLerror
  247. goto REMOVE
  248.  
  249. :TCerror
  250. echo ********************************************************************
  251. echo Compilation errors !!
  252. echo ********************************************************************
  253. goto REMOVE
  254.  
  255. :TLerror
  256. echo ********************************************************************
  257. echo Librarian errors !!
  258. echo ********************************************************************
  259.  
  260. :ASMerror
  261. echo ********************************************************************
  262. echo Assembly errors !!
  263. echo ********************************************************************
  264. goto DONE
  265.  
  266. :REMOVE
  267. if %2==ftol goto SKIPrm
  268. if %2==FTOL goto SKIPrm
  269. if exist %2.obj del %2.obj
  270. goto DONE
  271. :SKIPrm
  272. if exist n%2.obj del n%2.obj
  273. if exist f%2.obj del f%2.obj
  274.  
  275. :DONE
  276.