Makefile.vc 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. ###########################################################################
  2. # #
  3. # makefile for REDUCE 3.7 using CSL #
  4. # #
  5. ###########################################################################
  6. ###########################################################################
  7. # #
  8. # This "makefile" is for Win32 (using Visual C++ from Visual Studio .NET) #
  9. # It has been tested on Visual C++ version 5 too. #
  10. # #
  11. ###########################################################################
  12. # I support use of some (possible) extra variables, passed down
  13. # as "nmake var=val target"
  14. #
  15. # COMMAND_LINE generate command line version not windowed one
  16. # DEMO_MODE demo mode version only
  17. # DEMO_BUILD version used for building the demo system
  18. !ifdef DEMO_BUILD
  19. CSLEXE = csl
  20. EXENAME = demor37b
  21. O = obj-db
  22. !else
  23. !ifdef COMMAND_LINE
  24. CSLEXE = cslc
  25. !ifdef DEMO_MODE
  26. EXENAME = demor37c
  27. O = obj-dc
  28. !else
  29. EXENAME = r37c
  30. O = obj-c
  31. !endif
  32. !else
  33. CSLEXE = csl
  34. !ifdef DEMO_MODE
  35. EXENAME = demor37
  36. O = obj-d
  37. !else
  38. EXENAME = r37
  39. O = obj
  40. !endif
  41. !endif
  42. !endif
  43. MAKE = nmake
  44. CC = cl
  45. !ifdef DEMO_MODE
  46. OPTFLAGS = -Ox2 -G5r -D -MT
  47. !else
  48. OPTFLAGS = -Ox2 -G5r -MT
  49. !endif
  50. MPIFLAGS =
  51. !ifdef COMMAND_LINE
  52. CFLAGS = $(OPTFLAGS) -c -W3 -DWINDOWS_NT=1 -I$(CSLBASE) -DCOMMAND_LINE_VERSION=1 $(MPIFLAGS)
  53. !else
  54. CFLAGS = $(OPTFLAGS) -c -W3 -DWINDOWS_NT=1 -I$(CSLBASE) -DCWIN=1 $(MPIFLAGS)
  55. !endif
  56. CPP = cl
  57. CPPFLAGS = $(CFLAGS)
  58. LINK = cl
  59. LFLAGS =
  60. !ifdef COMMAND_LINE
  61. LIBS = wsock32.lib
  62. TAIL = -link -subsystem:console
  63. !else
  64. LIBS = nafxcw.lib wsock32.lib
  65. TAIL = -link -subsystem:windows
  66. !endif
  67. CSLRES = csl.res
  68. R37RES = r37.res
  69. DEMORES = demored.res
  70. FRONTRES = r37front.res
  71. OUT = -o
  72. OUTOBJ = -Fo
  73. ASM = $(CC)
  74. ASMFLAGS = $(CFLAGS)
  75. ASMSRC = imulvc.c
  76. ASMOBJ = $(O)\imulvc.obj
  77. ASMOBJDEP = imulvc
  78. !ifdef COMMAND_LINE
  79. SYS = sysdos
  80. !else
  81. SYS = syscwin
  82. !endif
  83. WX =
  84. RM = del
  85. MKDIR = mkdir
  86. COPY = copy
  87. STRIP = -echo
  88. # The following lines indicates the place on your disc where the "cslbase"
  89. # directory exists. This is the place where the C sources files for CSL
  90. # live. There are two versions here, the first should use Unix-like
  91. # file name conventions (in particular "/" as a directory separator) while
  92. # the second will (in some cases) be a host-specific translation.
  93. UCSLBASE = ../cslbase
  94. CSLBASE = ..\cslbase
  95. ###########################################################################
  96. ###########################################################################
  97. # #
  98. # This is the main bulk of the "makefile" for building Reduce 3.7 and CSL #
  99. # on MSDOS, Windows and Unix. This part of the file expects a number of #
  100. # symbols to have been defined: #
  101. # #
  102. # CSLBASE = file-path for CSLBASE directory #
  103. # MAKE = name of "make" utility #
  104. # CC = The C compiler to use #
  105. # CFLAGS = Flags for C compiler when compiling CSL #
  106. # LINK = Linker to use #
  107. # LFLAGS = Flags for linker #
  108. # LIBS = Libraries to quote to linker #
  109. # OUT = "-o" or "-out:" See link commands #
  110. # OUTOBJ = "-o" often : where to put object code from C compilation #
  111. # O = location to put object files #
  112. # ASM = The assembler to use #
  113. # ASMFLAGS = Flags for the assembler #
  114. # ASMSRC = Assembly code source file to use #
  115. # ASMOBJ = Object file for above (or NULL if no assembly used) #
  116. # ASMOBJDEP = Ditto, but may not be NULL #
  117. # SYS = name of system-specific file (sysdos or sysnt etc) #
  118. # RM = del for DOS, = rm for Unix #
  119. # MKDIR = mkdir #
  120. # COPY = copy for DOS, = cp for Unix #
  121. # STRIP = echo for DOS, = strip for Unix #
  122. # SYMBOLIC = .SYMBOLIC is using Watcom's "make" utility #
  123. # WX = wx for Windows 3.1, null in all other cases #
  124. # #
  125. # The master version of this file is called "makebase" and is used to #
  126. # create both DOS and Unix makefiles. Use the Codemist "makemake" #
  127. # program to perform the conversion - eg #
  128. # makemake -f makebase -o makemake.386 watcom dos #
  129. # makemake -f makebase -o Makefile.sgi sgi #
  130. # Just "makemake -f makebase" gives list of systems supported #
  131. ###########################################################################
  132. ###########################################################################
  133. ###########################################################################
  134. ###########################################################################
  135. #
  136. # The main final target is r37.img, the image file for full REDUCE.
  137. # If you want to rebuild stage-by-stage (eg while testing), try the
  138. # sequence
  139. # make slowr37.exe compiles and links C coded kernel
  140. # make slowr37.img makes bootstrap REDUCE
  141. # (roughly twice as slow as final one)
  142. # only used for system recompilation.
  143. # make profile runs tests, collects profile information.
  144. # This takes a long time!
  145. # make prof-inst installs profile data
  146. # make c-code Create files u*.c and u*.lsp
  147. # out of hot-spot parts of REDUCE.
  148. ###########################################################################
  149. # Note that only the steps from here downwards are usually needed
  150. #
  151. # make r37.exe final compilation of most of REDUCE
  152. # make r37.img build final image file
  153. # make testall runs test files, output to log directory
  154. # make checkall creates log\checkall.log
  155. #
  156. # (for Windows 95/98/NT only)
  157. # make r37c.exe command-line version
  158. #
  159. ###########################################################################
  160. ###########################################################################
  161. #
  162. # C is another name for CSLBASE, the directory that CSL source files live
  163. # in. I introduce it here mainly because $(C) is so much more compact
  164. # then $(CSLBASE).
  165. #
  166. C = $(CSLBASE)
  167. #
  168. # DOBJS is a list of all the object files that are common to all variants
  169. # on the system built here
  170. #
  171. DOBJS = $(O)\arith01.obj $(O)\arith02.obj $(O)\arith03.obj $(O)\arith04.obj \
  172. $(O)\arith05.obj $(O)\arith06.obj $(O)\arith07.obj $(O)\arith08.obj \
  173. $(O)\arith09.obj $(O)\arith10.obj $(O)\arith11.obj $(O)\arith12.obj \
  174. $(O)\char.obj $(O)\csl.obj $(O)\cslmpi.obj $(O)\eval1.obj $(O)\eval2.obj \
  175. $(O)\eval3.obj $(O)\eval4.obj $(O)\fns1.obj $(O)\fns2.obj $(O)\fns3.obj \
  176. $(O)\print.obj $(O)\read.obj $(O)\restart.obj $(ASMOBJ) \
  177. !ifdef COMMAND_LINE
  178. $(O)\$(SYS).obj
  179. !else
  180. $(O)\$(SYS).obj $(O)\c_applic.obj $(O)\c_text.obj \
  181. $(O)\c_graph.obj $(O)\c_render.obj $(O)\c_viewpt.obj
  182. !endif
  183. CDOBJS = $(O)\arith01.obj,$(O)\arith02.obj,$(O)\arith03.obj,$(O)\arith04.obj,\
  184. $(O)\arith05.obj,$(O)\arith06.obj,$(O)\arith07.obj,$(O)\arith08.obj,\
  185. $(O)\arith09.obj,$(O)\arith10.obj,$(O)\arith11.obj,$(O)\arith12.obj,\
  186. $(O)\char.obj,$(O)\csl.obj,$(O)\cslmpi.obj,$(O)\eval1.obj,$(O)\eval2.obj,\
  187. $(O)\eval3.obj,$(O)\eval4.obj,$(O)\fns1.obj,$(O)\fns2.obj,$(O)\fns3.obj,\
  188. $(O)\print.obj,$(O)\read.obj,$(O)\restart.obj,$(ASMOBJ),\
  189. !ifdef COMMAND_LINE
  190. $(O)\$(SYS).obj
  191. !else
  192. $(O)\$(SYS).obj,$(O)\c_applic.obj,$(O)\c_text.obj,\
  193. $(O)\c_graph.obj,$(O)\c_render.obj,$(O)\c_viewpt.obj
  194. !endif
  195. #
  196. # OBJS adds in the files used when I am not building a demonstration-mode CSL
  197. #
  198. OBJS = $(DOBJS) $(O)\fasl.obj $(O)\gc.obj $(O)\preserve.obj
  199. COBJS = $(CDOBJS),$(O)\fasl.obj,$(O)\gc.obj,$(O)\preserve.obj
  200. #
  201. # UOBJS come from that code that is compiled from Lisp into C
  202. #
  203. UOBJS = $(O)\u01.obj $(O)\u02.obj $(O)\u03.obj $(O)\u04.obj $(O)\u05.obj \
  204. $(O)\u06.obj $(O)\u07.obj $(O)\u08.obj $(O)\u09.obj $(O)\u10.obj \
  205. $(O)\u11.obj $(O)\u12.obj
  206. CUOBJS = $(O)\u01.obj,$(O)\u02.obj,$(O)\u03.obj,$(O)\u04.obj,$(O)\u05.obj,\
  207. $(O)\u06.obj,$(O)\u07.obj,$(O)\u08.obj,$(O)\u09.obj,$(O)\u10.obj,\
  208. $(O)\u11.obj,$(O)\u12.obj
  209. ###########################################################################
  210. ###########################################################################
  211. # This default target may be a dangerous one to use
  212. # since it supposes that all the C code is up to date already.
  213. default: $(SYMBOLIC) \
  214. r37c.exe \
  215. r37.exe r37.img
  216. ###########################################################################
  217. ###########################################################################
  218. $(O):
  219. -$(MKDIR) $(O)
  220. r37.img: r37.exe
  221. ..\util\full37
  222. $(EXENAME).exe: $(O)\bytes.obj $(OBJS) \
  223. $(R37RES) \
  224. $(UOBJS)
  225. $(LINK) $(LFLAGS) $(O)\bytes.obj $(OBJS) $(UOBJS) $(R37RES) $(LIBS) $(OUT)$(EXENAME).exe $(TAIL)
  226. $(STRIP) $(EXENAME).exe
  227. -$(MKDIR) log
  228. csl.res: ..\util\csl.rc $(C)\cwin.rc
  229. rc -i..\cslsrc -i$(C) -focsl.res ..\util\csl.rc
  230. r37.res: ..\util\r37.rc $(C)\cwin.rc
  231. rc -i..\cslsrc -i$(C) -for37.res ..\util\r37.rc
  232. #demored.res: ..\util\demored.rc $(C)\cwin.rc
  233. # rc -i..\cslsrc -i$(C) -fodemored.res ..\util\demored.rc
  234. # The next few targets are a bit dodgy, but are to help with building
  235. # command-line and demo versions.
  236. !ifndef COMMAND_LINE
  237. r37c.exe: $(SYMBOLIC)
  238. $(MAKE) "COMMAND_LINE=YES" r37c.exe
  239. cslc.exe: $(SYMBOLIC)
  240. $(MAKE) "COMMAND_LINE=YES" cslc.exe
  241. !endif
  242. !ifndef DEMO_MODE
  243. demor37.exe: $(SYMBOLIC)
  244. $(MAKE) "DEMO_MODE=YES" demor37.exe
  245. demor37c.exe: $(SYMBOLIC)
  246. $(MAKE) "DEMO_MODE=YES" "COMMAND_LINE=YES" demor37c.exe
  247. !endif
  248. !ifndef DEMO_BUILD
  249. demor37b.exe: $(SYMBOLIC)
  250. $(MAKE) "DEMO_BUILD=YES" demor37b.exe
  251. demor37.img: $(SYMBOLIC)
  252. REM This is much like the command in ..\util\full37
  253. start /wait .\demor37b -o demor37.img -z -Dno_init_file ../util/build37.lsp -- log/demor37.log
  254. !endif
  255. #
  256. # A few targets here may help me tidy up my filespace from time to time
  257. #
  258. clean: $(SYMBOLIC)
  259. -$(RM) slowr37.exe
  260. -$(RM) slowr37.img
  261. -$(RM) r37.exe
  262. -$(RM) r37.img
  263. -$(RM) csl.exe
  264. -$(RM) csl.img
  265. -$(RM) slowr37c.exe
  266. -$(RM) r37c.exe
  267. -$(RM) cslc.exe
  268. -$(RM) *.obj
  269. -$(MKDIR) log
  270. -$(RM) log\*.log
  271. ###########################################################################
  272. $(CSLEXE).exe: $(O)\bytes.obj $(OBJS) \
  273. $(CSLRES) \
  274. $(O)\stubs.obj
  275. $(LINK) $(LFLAGS) $(O)\bytes.obj $(OBJS) $(O)\stubs.obj $(CSLRES) $(LIBS) $(OUT)$(CSLEXE).exe $(TAIL)
  276. $(STRIP) $(CSLEXE).exe
  277. slowr37.exe: $(O)\bytes1.obj $(OBJS) \
  278. $(CSLRES) \
  279. $(O)\stubs.obj
  280. $(LINK) $(LFLAGS) $(O)\bytes1.obj $(OBJS) $(O)\stubs.obj $(CSLRES) $(LIBS) $(OUT)slowr37.exe $(TAIL)
  281. $(STRIP) slowr37.exe
  282. -$(MKDIR) log
  283. slowr37.img: slowr37.exe
  284. ..\util\boot37
  285. profile: slowr37.img $(SYMBOLIC)
  286. ..\util\profile
  287. prof-inst: profile.dat $(SYMBOLIC)
  288. $(COPY) profile.dat ..\csl-c
  289. -$(RM) profile.dat
  290. c-code: slowr37.img $(SYMBOLIC)
  291. ..\util\c-code37
  292. testslow: slowr37.img $(SYMBOLIC)
  293. ..\util\testslow
  294. testall: r37.img $(SYMBOLIC)
  295. ..\util\testrest
  296. checkall: r37.img $(SYMBOLIC)
  297. ..\util\checkall
  298. patchup: r37.img $(SYMBOLIC)
  299. ..\util\patchup
  300. cleanlog: $(SYMBOLIC)
  301. -$(RM) ../../../log/*.rlg
  302. csl.img: csl.exe $(C)\compat.lsp $(C)\compiler.lsp \
  303. $(C)\ccomp.lsp $(C)\extras.lsp
  304. -$(RM) csl.img
  305. $(WX) csl -v -z $(C)\build0.lsp \
  306. -D@cslbase="$(C)" -- log\cslimg.log
  307. #
  308. # "make lispfile"
  309. # recreates compiler.lsp, extras.lsp and ccomp.lsp from
  310. # the corresponding master sources which are held in RLISP
  311. # form. Temporarily builds an RLISP parser on the way.
  312. # NB: only for system maintainance use.
  313. lispfile: csl.exe csl.img $(C)\lispfile.lsp $(SYMBOLIC)
  314. $(WX) csl -v -z $(C)\lispfile.lsp \
  315. -D@cslbase="$(C)" -- log\lispfile.log
  316. signature: $(C)\version.hhh register.key $(SYMBOLIC)
  317. filesign -u $(C)\version.hhh $(C)\version.h Developer or tester
  318. ############################################################################
  319. # Now rules for re-compiling the main collection of CSL source files. I
  320. # write each case out individually since that makes the makefile less
  321. # delicate than one that relies on setting up general rules - and I want this
  322. # file to work on several different systems.
  323. #
  324. $(O)\$(ASMOBJDEP).obj: $(C)\$(ASMSRC) $(O)
  325. $(ASM) $(ASMFLAGS) $(OUTOBJ)$(ASMOBJ) $(C)\$(ASMSRC)
  326. $(O)\arith01.obj: $(C)\arith01.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  327. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  328. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith01.obj $(C)\arith01.c
  329. $(O)\arith02.obj: $(C)\arith02.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  330. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  331. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith02.obj $(C)\arith02.c
  332. $(O)\arith03.obj: $(C)\arith03.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  333. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  334. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith03.obj $(C)\arith03.c
  335. $(O)\arith04.obj: $(C)\arith04.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  336. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  337. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith04.obj $(C)\arith04.c
  338. $(O)\arith05.obj: $(C)\arith05.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  339. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\stream.h $(O)
  340. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith05.obj $(C)\arith05.c
  341. $(O)\arith06.obj: $(C)\arith06.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  342. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  343. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith06.obj $(C)\arith06.c
  344. $(O)\arith07.obj: $(C)\arith07.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  345. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  346. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith07.obj $(C)\arith07.c
  347. $(O)\arith08.obj: $(C)\arith08.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  348. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  349. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith08.obj $(C)\arith08.c
  350. $(O)\arith09.obj: $(C)\arith09.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  351. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  352. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith09.obj $(C)\arith09.c
  353. $(O)\arith10.obj: $(C)\arith10.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  354. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  355. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith10.obj $(C)\arith10.c
  356. $(O)\arith11.obj: $(C)\arith11.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  357. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(O)
  358. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith11.obj $(C)\arith11.c
  359. $(O)\arith12.obj: $(C)\arith12.c $(C)\arith.h $(C)\tags.h $(C)\machine.h \
  360. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  361. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\arith12.obj $(C)\arith12.c
  362. $(O)\bytes.obj: $(C)\bytes1.c $(C)\bytes.c $(C)\tags.h $(C)\machine.h \
  363. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h \
  364. $(C)\bytes.h $(C)\arith.h $(O)
  365. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\bytes.obj $(C)\bytes.c
  366. $(O)\bytes1.obj: $(C)\bytes1.c $(C)\bytes.c $(C)\tags.h $(C)\machine.h \
  367. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h \
  368. $(C)\bytes.h $(C)\arith.h $(O)
  369. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\bytes1.obj $(C)\bytes1.c
  370. #
  371. # The target "bytes1a.o" recompiles bytes1.c, but with the flag set that
  372. # arranges that the number of GET operations performed and the associated
  373. # indicators will be recorded, so that (bytecounts) will display statistics
  374. # about it. This slows things down considerably, but can help when you are in
  375. # the process of deciding which indicators are specified as "fast" ones.
  376. #
  377. $(O)\bytes1a.obj: $(C)\bytes1.c $(C)\bytes.c $(C)\tags.h $(C)\machine.h \
  378. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h \
  379. $(C)\bytes.h $(C)\arith.h $(O)
  380. $(CC) $(CFLAGS) -DRECORD_GET=1 $(OUTOBJ)$(O)\bytes1.obj $(C)\bytes1.c
  381. $(O)\char.obj: $(C)\char.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  382. $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  383. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\char.obj $(C)\char.c
  384. $(O)\csl.obj: $(C)\csl.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  385. $(C)\version.h $(C)\sys.h $(C)\cslerror.h \
  386. $(C)\entries.h $(C)\stream.h $(C)\sockhdr.h $(O)
  387. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\csl.obj $(C)\csl.c
  388. $(O)\r37front.obj: $(C)\r37front.c $(C)\tags.h $(C)\machine.h \
  389. $(C)\externs.h $(C)\version.h $(C)\sys.h \
  390. $(C)\cslerror.h $(C)\entries.h $(C)\stream.h \
  391. $(C)\sockhdr.h $(O)
  392. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\r37front.obj $(C)\r37front.c
  393. !ifndef COMMAND_LINE
  394. # the cwin window manager package is for use with Watcom C or
  395. # Microsoft VC++ only
  396. $(O)\c_applic.obj: $(C)\c_applic.cpp $(C)\cwin.h $(C)\cwin.hpp \
  397. $(C)\cwinres.h
  398. $(CPP) $(CPPFLAGS) $(OUTOBJ)$(O)\c_applic.obj $(C)\c_applic.cpp
  399. $(O)\c_applic1.obj: $(C)\c_applic.cpp $(C)\cwin.h $(C)\cwin.hpp $(C)\cwinres.h
  400. $(CPP) $(CPPFLAGS) -DDEMOVERSION=1 \
  401. $(OUTOBJ)$(O)\c_applic1.obj $(C)\c_applic.cpp
  402. $(O)\c_text.obj: $(C)\c_text.cpp $(C)\cwin.h $(C)\cwin.hpp $(C)\cwinres.h
  403. $(CPP) $(CPPFLAGS) $(OUTOBJ)$(O)\c_text.obj $(C)\c_text.cpp
  404. $(O)\c_graph.obj: $(C)\c_graph.cpp $(C)\cwin.h $(C)\cwin.hpp $(C)\cwinres.h
  405. $(CPP) $(CPPFLAGS) $(OUTOBJ)$(O)\c_graph.obj \
  406. $(C)\c_graph.cpp
  407. $(O)\c_render.obj: $(C)\c_render.cpp $(C)\cwin.h $(C)\cwin.hpp $(C)\cwinres.h
  408. $(CPP) $(CPPFLAGS) $(OUTOBJ)$(O)\c_render.obj $(C)\c_render.cpp
  409. $(O)\c_viewpt.obj: $(C)\c_viewpt.cpp $(C)\cwin.h $(C)\cwin.hpp $(C)\cwinres.h
  410. $(CPP) $(CPPFLAGS) $(OUTOBJ)$(O)\c_viewpt.obj \
  411. $(C)\c_viewpt.cpp
  412. !endif
  413. $(O)\eval1.obj: $(C)\eval1.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  414. $(C)\sys.h $(C)\cslerror.h $(C)\arith.h $(C)\entries.h $(O)
  415. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\eval1.obj $(C)\eval1.c
  416. $(O)\eval2.obj: $(C)\eval2.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  417. $(C)\sys.h $(C)\cslerror.h $(C)\arith.h $(C)\entries.h $(O)
  418. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\eval2.obj $(C)\eval2.c
  419. $(O)\eval3.obj: $(C)\eval3.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  420. $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  421. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\eval3.obj $(C)\eval3.c
  422. $(O)\eval4.obj: $(C)\eval4.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  423. $(C)\sys.h $(C)\cslerror.h $(C)\arith.h $(O)
  424. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\eval4.obj $(C)\eval4.c
  425. $(O)\fasl.obj: $(C)\fasl.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  426. $(C)\sys.h $(C)\cslerror.h $(C)\arith.h $(O)
  427. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\fasl.obj $(C)\fasl.c
  428. $(O)\fns1.obj: $(C)\fns1.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  429. $(C)\sys.h $(C)\cslerror.h $(C)\entries.h $(O)
  430. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\fns1.obj $(C)\fns1.c
  431. $(O)\fns2.obj: $(C)\fns2.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  432. $(C)\sys.h $(C)\cslerror.h $(C)\read.h $(C)\entries.h \
  433. $(C)\sockhdr.h $(O)
  434. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\fns2.obj $(C)\fns2.c
  435. $(O)\fns3.obj: $(C)\fns3.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  436. $(C)\sys.h $(C)\cslerror.h $(C)\read.h $(C)\entries.h $(O)
  437. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\fns3.obj $(C)\fns3.c
  438. $(O)\gc.obj: $(C)\gc.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  439. $(C)\sys.h $(C)\cslerror.h $(O)
  440. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\gc.obj $(C)\gc.c
  441. #
  442. # For each major target I have one file that is system specific - eg
  443. # sysdos.c, sysunix.c, ...
  444. #
  445. $(O)\$(SYS).obj: $(C)\$(SYS).c $(C)\machine.h $(C)\externs.h \
  446. $(C)\sys.h $(C)\fileops.c $(C)\scandir.c $(C)\version.h \
  447. $(C)\filename.c $(O)
  448. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\$(SYS).obj $(C)\$(SYS).c
  449. $(O)\preserve.obj: $(C)\preserve.c $(C)\tags.h $(C)\machine.h $(C)\stream.h \
  450. $(C)\externs.h $(C)\sys.h $(C)\cslerror.h $(C)\read.h \
  451. $(C)\version.h $(O)
  452. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\preserve.obj $(C)\preserve.c
  453. $(O)\print.obj: $(C)\print.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  454. $(C)\sys.h $(C)\cslerror.h $(C)\read.h \
  455. $(C)\arith.h $(C)\entries.h $(C)\stream.h $(C)\sockhdr.h $(O)
  456. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\print.obj $(C)\print.c
  457. $(O)\read.obj: $(C)\read.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  458. $(C)\sys.h $(C)\cslerror.h $(C)\read.h \
  459. $(C)\arith.h $(C)\entries.h $(C)\stream.h $(C)\sockhdr.h $(O)
  460. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\read.obj $(C)\read.c
  461. $(O)\restart.obj: $(C)\restart.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  462. $(C)\sys.h $(C)\cslerror.h $(C)\read.h $(C)\version.h \
  463. $(C)\arith.h $(C)\entries.h $(C)\stream.h $(O)
  464. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\restart.obj $(C)\restart.c
  465. $(O)\stubs.obj: $(C)\stubs.c $(C)\machine.h $(C)\externs.h $(C)\sys.h \
  466. $(C)\tags.h $(C)\cslerror.h $(O)
  467. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\stubs.obj $(C)\stubs.c
  468. $(O)\cslmpi.obj: $(C)\cslmpi.c $(C)\machine.h $(C)\externs.h $(C)\sys.h \
  469. $(C)\mpipack.c $(C)\tags.h $(C)\cslerror.h $(O)
  470. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\cslmpi.obj $(C)\cslmpi.c
  471. ###########################################################################
  472. $(O)\u01.obj: ..\csl-c\u01.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  473. $(C)\cslerror.h $(C)\entries.h $(O)
  474. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u01.obj ..\csl-c\u01.c
  475. $(O)\u02.obj: ..\csl-c\u02.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  476. $(C)\cslerror.h $(C)\entries.h $(O)
  477. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u02.obj ..\csl-c\u02.c
  478. $(O)\u03.obj: ..\csl-c\u03.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  479. $(C)\cslerror.h $(C)\entries.h $(O)
  480. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u03.obj ..\csl-c\u03.c
  481. $(O)\u04.obj: ..\csl-c\u04.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  482. $(C)\cslerror.h $(C)\entries.h $(O)
  483. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u04.obj ..\csl-c\u04.c
  484. $(O)\u05.obj: ..\csl-c\u05.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  485. $(C)\cslerror.h $(C)\entries.h $(O)
  486. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u05.obj ..\csl-c\u05.c
  487. $(O)\u06.obj: ..\csl-c\u06.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  488. $(C)\cslerror.h $(C)\entries.h $(O)
  489. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u06.obj ..\csl-c\u06.c
  490. $(O)\u07.obj: ..\csl-c\u07.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  491. $(C)\cslerror.h $(C)\entries.h $(O)
  492. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u07.obj ..\csl-c\u07.c
  493. $(O)\u08.obj: ..\csl-c\u08.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  494. $(C)\cslerror.h $(C)\entries.h $(O)
  495. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u08.obj ..\csl-c\u08.c
  496. $(O)\u09.obj: ..\csl-c\u09.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  497. $(C)\cslerror.h $(C)\entries.h $(O)
  498. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u09.obj ..\csl-c\u09.c
  499. $(O)\u10.obj: ..\csl-c\u10.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  500. $(C)\cslerror.h $(C)\entries.h $(O)
  501. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u10.obj ..\csl-c\u10.c
  502. $(O)\u11.obj: ..\csl-c\u11.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  503. $(C)\cslerror.h $(C)\entries.h $(O)
  504. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u11.obj ..\csl-c\u11.c
  505. $(O)\u12.obj: ..\csl-c\u12.c $(C)\tags.h $(C)\machine.h $(C)\externs.h \
  506. $(C)\cslerror.h $(C)\entries.h $(O)
  507. $(CC) $(CFLAGS) $(OUTOBJ)$(O)\u12.obj ..\csl-c\u12.c
  508. # end of makefile